Entdecken Sie, wie eine Inferenz-Engine Machine-Learning-Modelle wie Ultralytics für den Echtzeit-Einsatz optimiert. Informieren Sie sich noch heute über Tipps zur Leistungssteigerung für Edge-KI.
Eine Inferenz-Engine ist eine spezialisierte Softwarekomponente, die dafür entwickelt wurde, trainierte Machine-Learning-Modelle auszuführen und Vorhersagen aus neuen Daten zu generieren. Im Gegensatz zur Trainingsphase, die sich auf das Erlernen von Mustern durch rechenintensive Prozesse wie Backpropagation konzentriert, ist eine Inferenz-Engine streng für die als Modellbereitstellung bekannte Betriebsphase optimiert. Ihr primäres Ziel ist es, Berechnungen so effizient wie möglich durchzuführen, die Inferenzlatenz zu minimieren und den Durchsatz auf der Zielhardware zu maximieren, unabhängig davon, ob es sich um einen skalierbaren Cloud-Server oder ein batteriebetriebenes Edge-AI-Gerät handelt. Durch den Wegfall des für das Training erforderlichen Overheads ermöglichen diese Engines den Einsatz komplexer neuronaler Netze in Echtzeitanwendungen .
Der Übergang von einer Trainingsumgebung zu einer Inferenz-Engine umfasst in der Regel mehrere Optimierungsschritte zur Straffung der Modellstruktur. Da das Modell nicht mehr lernen muss, kann die Engine die für Gradientenaktualisierungen erforderlichen Daten verwerfen und so die Modellgewichte effektiv einfrieren. Zu den gängigen Techniken, die von Inferenz-Engines verwendet werden, gehören die Schichtfusion, bei der mehrere Operationen in einem einzigen Schritt kombiniert werden, um den Speicherzugriff zu reduzieren, und die Modellquantisierung, bei der Gewichte von hochpräzisen Gleitkommaformaten in Ganzzahlen mit geringerer Präzision (z. B. INT8) umgewandelt werden.
Diese Optimierungen ermöglichen es fortschrittlichen Architekturen wie Ultralytics , mit unglaublich hoher Geschwindigkeit zu laufen, ohne dass dabei die Genauigkeit wesentlich beeinträchtigt wird. Verschiedene Engines sind oft auf bestimmte Hardware-Ökosysteme zugeschnitten, um maximale Leistung zu erzielen:
Inferenz-Engines sind die stillen Treiber hinter vielen modernen KI-Anwendungen und ermöglichen es Computersichtsystemen, sofort auf ihre Umgebung zu reagieren.
Es ist hilfreich, zwischen der Software, die zur Erstellung des Modells verwendet wird, und der Engine, die zu dessen Ausführung verwendet wird, zu unterscheiden. Ein Trainingsframework (wie PyTorch oder TensorFlow) bietet die Werkzeuge zum Entwerfen von Architekturen, zum Berechnen von Verlusten und zum Aktualisieren von Parametern über überwachtes Lernen. Es priorisiert Flexibilität und Debugging-Fähigkeiten.
Im Gegensatz dazu übernimmt die Inferenz-Engine das fertige Artefakt aus dem Trainings-Framework und priorisiert Ausführungsgeschwindigkeit und Speichereffizienz. Zwar kann man die Inferenz auch innerhalb eines Trainings-Frameworks ausführen, doch ist dies selten so effizient wie die Verwendung einer dedizierten Engine, insbesondere für die Bereitstellung auf Mobiltelefonen oder eingebetteten Geräten über Tools wie TensorFlow oder Apple Core ML.
Die ultralytics Das Paket abstrahiert einen Großteil der Komplexität von Inferenz-Engines, sodass Benutzer
nahtlos Vorhersagen ausführen können. Im Hintergrund übernimmt es die Vorverarbeitung von Bildern und die Ausführung des Modells.
Für Benutzer, die eine Skalierung anstreben, bietet das Ultralytics vereinfacht den
Prozess des Trainings und Exportierens von Modellen in optimierte Formate, die mit verschiedenen Inferenz-Engines kompatibel sind.
Das folgende Beispiel zeigt, wie ein vortrainiertes YOLO26-Modell geladen und eine Inferenz für ein Bild durchgeführt wird:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image from a URL
# The 'predict' method acts as the interface to the inference process
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()