Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Inferenz-Engine

Entdecken Sie, wie Inferenz-Engines KI antreiben, indem sie Echtzeitvorhersagen liefern, Modelle optimieren und plattformübergreifende Bereitstellung ermöglichen.

Eine Inferenzmaschine ist eine spezialisierte Softwarekomponente zur Ausführung von trainierten Modelle des maschinellen Lernens auszuführen und Vorhersagen aus neuen Daten. Im Gegensatz zu Trainingsframeworks, die sich auf das Lernen von Mustern aus großen Datensätzen konzentrieren, ist eine Inferenz-Engine ausschließlich für die Betriebsphase optimiert, die als Modell-Einsatz. Ihr primäres Ziel ist es, diese Modelle so effizient wie möglich auszuführen, die Inferenzlatenz und Maximierung des Durchsatzes auf Zielhardware, sei es ein leistungsstarker Cloud-Server oder ein ressourcenbeschränktes Edge-KI-Gerät.

Wie eine Inferenzmaschine funktioniert

Der Übergang von einem trainierten Modell zu einer einsatzbereiten Anwendung erfordert in der Regel eine Inferenzmaschine, die als die Laufzeitumgebung. Sobald ein Modell in einem Framework wie PyTorch oder TensorFlowist es oft schwerfällig und enthält Datenstrukturen Strukturen, die für das Lernen nützlich, aber für die Vorhersage unnötig sind. Eine Inferenzmaschine beseitigt diesen Overhead und wendet rigorose Optimierungen auf den Berechnungsgraphen an.

Wichtige Optimierungstechniken umfassen:

  • Ebenenfusion: Die Engine kombiniert mehrere Schichten (z. B. Faltung, Stapelnormalisierung und Aktivierung) in einer einzigen Operation. Dies reduziert den Speicherzugriff und beschleunigt die Ausführung.
  • Präzisionsreduzierung: Durch Modellquantisierung konvertiert das System Gewichte vom hochpräzisen 32-Bit-Gleitkommaformat (FP32) in Formate mit geringerer Genauigkeit wie INT8 oder FP16. Diese reduziert die Modellgröße und die Nutzung der Speicherbandbreite drastisch, ohne die Genauigkeit.
  • Kernel Auto-Tuning: Motoren wie NVIDIA TensorRT wählen automatisch die effizientesten Algorithmen und Hardware-Kernel für die jeweilige GPU verwendet wird.
  • Speicherverwaltung: Effiziente Strategien zur Wiederverwendung von Speicher minimieren den Overhead bei der Zuweisung und Speicherzuweisung und -freigabe während der Laufzeit, was für Echtzeit-Inferenz.

Gemeinsame Inferenz-Engines

Die verschiedenen Engines sind auf bestimmte Hardware-Ökosysteme und Leistungsziele zugeschnitten:

  • NVIDIA TensorRT: Ein hochleistungsfähiger Deep-Learning-Inferenzoptimierer und eine Laufzeitumgebung für NVIDIA . Er wird häufig in Rechenzentren und bei Automobilanwendungen eingesetzt. Sie können einfach Ultralytics in TensorRT exportieren, um maximale Geschwindigkeit.
  • Intel OpenVINO: Die Open Visual Inference und Optimierung neuronaler Netze Toolkit optimiert Modelle für Intel , einschließlich CPUs und integrierte GPUs. Es ermöglicht einen "write once, einmal schreiben, überall einsetzen"-Ansatz innerhalb des Intel .
  • ONNX : Eine von Microsoft entwickelte plattformübergreifende Engine, die die ONNX Format unterstützt. Sie ermöglicht Modellen die in einem Framework trainiert wurden, effizient auf verschiedenen Hardware-Backends laufen.
  • TensorFlow Lite: Entwickelt für mobile und IoT-Geräte, TensorFlow Lite ermöglicht Inferenzen mit niedriger Latenz auf Android, iOS und eingebetteten Systemen.

Anwendungsfälle in der Praxis

Inferenz-Engines sind das unsichtbare Rückgrat moderner KI-Anwendungen und ermöglichen es ihnen, sofort auf die Welt zu reagieren.

  1. Autonomes Fahren: In der Automobilindustrie stützen sich die Fahrzeuge auf Computer Vision, um sicher zu navigieren. sicher zu navigieren. Eine Inferenzmaschine, die auf dem Bordcomputer des Fahrzeugs läuft, verarbeitet Videoübertragungen, um Objekterkennung für Fußgänger, andere Fahrzeuge und Verkehrsschilder. Die Verwendung eines Modells wie YOLO11, stellt der Motor sicher, dass diese Vorhersagen innerhalb von Millisekunden erfolgen, so dass das Auto in Echtzeit autonom bremsen oder lenken kann. Echtzeit.
  2. Intelligente Fertigung: Produktionslinien nutzen Inferenzmaschinen für die automatische Qualitätskontrolle. Hochgeschwindigkeitskameras erfassen Bilder von Produkten auf einem Förderband, und eine Inferenzmaschine verarbeitet diese Bilder, um um Defekte wie Risse oder Fehlausrichtungen detect . Dieses System mit hohem Durchsatz verhindert, dass fehlerhafte Produkte ausgeliefert werden und reduziert die Kosten für manuelle Kontrollen.

Inferenzmaschine vs. Trainingsrahmen

Es ist wichtig, zwischen den Werkzeugen zu unterscheiden, die für die Erstellung von Modellen verwendet werden, und denen, mit denen sie ausgeführt werden.

  • Trainings-Frameworks (z. B. PyTorch, Keras): Diese sind auf Flexibilität und Experimentierfreude ausgelegt. Sie unterstützen Backpropagation, Gradienten-Updates und dynamische Graphen, die für das Lernen unerlässlich sind, aber aber rechenintensiv sind.
  • Inferenz-Engines (z.B. TensorRT, ONNX Runtime): Diese sind auf Geschwindigkeit und Effizienz ausgelegt. Sie behandeln das Modell als einen statischen Satz von Operationen, die so schnell wie möglich ausgeführt werden sollen. Sie unterstützen normalerweise nicht Training oder das Lernen neuer Muster.

Exportieren für Inferenz

Um eine bestimmte Inferenzmaschine zu verwenden, müssen Sie oft Ihr trainiertes Modell in ein kompatibles Format exportieren. Für Wenn Sie beispielsweise ein YOLO11 in das ONNX exportieren, können Sie es mit ONNX Runtime ausführen oder in andere Engines importieren.

from ultralytics import YOLO

# Load a trained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format for use with ONNX Runtime
# This creates 'yolo11n.onnx' optimized for inference
model.export(format="onnx")

Durch den Einsatz einer Inferenz-Engine können Entwickler das volle Potenzial ihrer KI-Modelle ausschöpfen und sicherstellen, dass sie reibungslos in Produktionsumgebungen von Cloud-Clustern bis hin zu batteriebetriebenen Edge-Geräten.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten