Optimieren Sie die KI-Leistung mit niedriger Inferenzlatenz. Erfahren Sie mehr über Schlüsselfaktoren, reale Anwendungen und Techniken zur Verbesserung von Echtzeitreaktionen.
Die Inferenzlatenz ist die Zeitspanne, die zwischen einem Modell des maschinellen Lernens (ML) eine Eingabe erhält und der Erzeugung einer entsprechenden Ausgabe vergeht. Diese Kennzahl, die normalerweise in Millisekunden (ms) gemessen wird, ist ein entscheidender Faktor für die Reaktionsfähigkeit von Künstliche Intelligenz (KI) Systeme. Für Entwickler und Ingenieure, die an Computer Vision (CV)-Projekten arbeiten, ist die Minimierung der ist die Minimierung der Latenzzeit oft genauso wichtig wie die Maximierung der Genauigkeit, Dies gilt insbesondere für Anwendungen, die mit Menschen oder physischen Maschinen interagieren. Hohe Latenzzeiten führen zu träge Leistung, wohingegen eine niedrige Latenz ein nahtloses Benutzererlebnis schafft und eine sofortige Entscheidungsfindung ermöglicht, ein Konzept, das für moderne intelligente Systeme.
Im Bereich der Modellentwicklung bestimmt die Geschwindigkeit die Geschwindigkeit, mit der ein System Daten verarbeitet, über seine Eignung für bestimmte Aufgaben. Niedrige Inferenzlatenz ist der Eckpfeiler der Echtzeit-Inferenz, bei der die Vorhersagen Vorhersagen innerhalb eines strengen Zeitbudgets erfolgen müssen, um verwertbar zu sein. Eine Verzögerung von einigen hundert Millisekunden könnte beispielsweise für ein Empfehlungssystem auf einer Shopping-Website akzeptabel Shopping-Website akzeptabel sein, aber für sicherheitskritische Systeme könnte sie katastrophal sein. Das Verständnis für die spezifischen Latenzanforderungen eines Projekts zu einem frühen Zeitpunkt im Entwicklungszyklus ermöglicht es den Teams, geeignete Modellarchitekturen und Hardwarekonfigurationen auszuwählen, um die Zuverlässigkeit zu gewährleisten.
Mehrere variable Komponenten tragen zur Gesamtzeit bei, die für einen einzigen Inferenzdurchgang benötigt wird:
Die praktischen Auswirkungen der Latenzzeit lassen sich am besten anhand konkreter Anwendungsfälle verstehen, bei denen Geschwindigkeit nicht verhandelbar ist.
Es ist wichtig, zwischen "Latenz" und "Durchsatz" zu unterscheiden, da sie oft in umgekehrtem Verhältnis zueinander stehen Optimierungsziele sind.
Diese Kompromiss zwischen Latenz und Durchsatz müssen die Entwickler ihre Inferenz-Pipelines auf die spezifischen Anforderungen der Einsatzumgebung abstimmen.
Sie können die Leistung der Ultralytics mit dem integrierten Benchmark-Modus bewerten. Dieses Tool liefert detaillierte Metriken zur Inferenzgeschwindigkeit in verschiedenen Formaten wie ONNX oder TorchScript.
from ultralytics import YOLO
# Load a standard YOLO11 model
model = YOLO("yolo11n.pt")
# Benchmark the model on CPU to measure latency
# Results will display inference time per image in milliseconds
model.benchmark(data="coco8.yaml", imgsz=640, device="cpu")
Um eine möglichst geringe Latenzzeit zu erreichen, verwenden Entwickler oft eine Inferenzmaschine ein, die auf ihre Hardware abgestimmt ist. Für Einsatz eines Modells auf einem NVIDIA Jetson Gerät mit TensorRT kann erhebliche Geschwindigkeitssteigerungen im Vergleich zur Ausführung von rohem PyTorch Code. In ähnlicher Weise kann die Verwendung von Intel OpenVINO kann die Leistung auf CPU beschleunigen. Diese Tools optimieren den Berechnungsgraphen, führen Schichten zusammen und verwalten den Speicher effizienter effizienter als Standard-Trainingsframeworks.