Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Halbpräzision

Entdecken Sie, wie Half-Precision (FP16) KI durch schnellere Berechnungen, reduzierten Speicherbedarf und effiziente Modellbereitstellung beschleunigt.

Halbpräzision ist ein binäres Fließkomma-Computerzahlenformat, das 16 Bits im Computerspeicher belegt und allgemein als allgemein als FP16 bezeichnet. In dem sich schnell entwickelnden Bereich des Deep Learning dient dieses Format als leistungsfähige Alternative zum standardmäßigen 32-Bit-Single-Precision-Format (FP32), das traditionell für numerische Berechnungen verwendet wird. Durch Durch die Verringerung der Anzahl der Bits, die für die Darstellung jeder Zahl erforderlich sind, senkt die halbe Präzision den Speicherbedarf Bandbreite und Speicherbedarf für Modellgewichte und Modellgewichte und Aktivierungen. Diese Effizienz ermöglicht es Forschern und Ingenieuren das Training größerer neuronale Netze trainieren oder Modelle auf Hardware mit Hardware mit begrenzten Ressourcen einzusetzen, ohne die Genauigkeit der Vorhersagen.

Die Mechanik der Halbpräzision

Der Standard IEEE 754 definiert die Struktur von Gleitkommazahlen Zahlen, wobei FP16 1 Bit für das Vorzeichen, 5 Bit für den Exponenten und 10 Bit für den Bruch (Mantisse) vorsieht. Diese kompakte Darstellung steht im Gegensatz zu FP32, das 8 Bits für den Exponenten und 23 für den Bruch verwendet. Die Hauptvorteil der Verwendung von FP16 in Computer Vision und anderen KI-Aufgaben ist die Beschleunigung der mathematischen Operationen. Moderne Hardware-Beschleuniger, wie z. B. NVIDIA Tensor Cores, sind speziell darauf ausgelegt um Matrixmultiplikationen in halber Genauigkeit mit deutlich höherer Geschwindigkeit durchzuführen als Operationen in einfacher Genauigkeit.

Die geringere Anzahl von Bits bedeutet jedoch einen geringeren Dynamikbereich und eine geringere Präzision. Dies kann möglicherweise zu folgenden Problemen führen numerischer Instabilität führen, wie zum Beispiel verschwindende Gradienten, bei denen Zahlen zu klein werden zu klein werden, als dass der Computer sie eindeutig von Null unterscheiden könnte. Um dies abzumildern, verwenden die Entwickler oft gemischte Präzisionsstrategien, die dynamisch die während des Trainings dynamisch zwischen FP16 und FP32 wechseln, um die Stabilität zu erhalten und gleichzeitig die Geschwindigkeit der halben Genauigkeit zu nutzen.

Real-World-Anwendungen in AI

Halbpräzision ist in modernen KI-Workflows allgegenwärtig, insbesondere in Szenarien, die einen hohen Durchsatz oder eine geringe Latenzzeit erfordern.

  1. Edge AI-Einsatz: Beim Einsatz von Modellen auf Edge-KI-Geräte wie Drohnen, Smart-Kameras oder Mobiltelefone oder Mobiltelefonen sind Speicherplatz und Akkulaufzeit die wichtigsten Faktoren. Die Konvertierung eines Modells wie YOLO11 in FP16 reduziert die Modellgröße um etwa 50 %, so dass es in den begrenzten Arbeitsspeicher von eingebetteten Systemen wie dem NVIDIA Jetson oder Raspberry Pi. Dies ermöglicht eine schnellere Inferenzlatenz und ermöglicht Echtzeit Echtzeit-Reaktionsfähigkeit in Anwendungen wie der autonomen Navigation.
  2. Groß angelegte Modellschulung: Training großer Architekturen, wie z.B. Large Language Models (LLMs) oder Foundation Vision Modelle, erfordert die Verarbeitung von Terabytes an Daten. Die Verwendung von FP16 ermöglicht Rechenzentren die Verdoppelung der Stapelgröße passt in GPU zu verdoppeln, wodurch sich die Trainingszyklen. Diese Effizienz ist entscheidend für schnelle Experimente und Iterationen auf Architekturen der nächsten Generation Architekturen der nächsten Generation wie dem kommenden YOLO26.

Implementierung der Halbpräzision mit Ultralytics

Rahmenwerke wie PyTorch und Bibliotheken wie ultralytics machen es einfach, die halbe Genauigkeit zu nutzen. Das folgende Beispiel zeigt, wie man Export eines YOLO11 in die TensorRT Format unter Verwendung von FP16, einer eine gängige Praxis zur Optimierung der Inferenzgeschwindigkeit auf NVIDIA .

from ultralytics import YOLO

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

# Export the model to TensorRT engine with half-precision enabled
# The 'half=True' argument ensures weights are converted to FP16
model.export(format="engine", half=True)

Unterscheidung verwandter Begriffe

Um die halbe Genauigkeit zu verstehen, muss man sie von verwandten Optimierungstechniken unterscheiden, die im Glossar beschrieben sind:

  • Halbpräzision vs. Gemischte Präzision: Während sich Halbpräzision speziell auf das 16-Bit-Datenformat bezieht, ist gemischte Präzision eine Trainingstechnik, die FP16 für schwere Berechnungen und FP32 für empfindliche Akkumulationen (wie Gewichtsaktualisierungen) kombiniert, um Informationsverluste zu vermeiden. Informationen zu verhindern.
  • Halbpräzision vs. Modell-Quantisierung: Bei der Halbpräzision wird die Gleitkommadarstellung beibehalten und lediglich die Bitbreite verringert. Bei der Quantisierung werden typischerweise konvertiert Gewichte in Ganzzahlformate wie INT8 (8-Bit-Ganzzahlen), was eine noch höhere Komprimierung und Geschwindigkeit bietet erfordert aber sorgfältige Kalibrierungstechniken wie Quantisierungsgerechtes Training (QAT) um eine Verschlechterung der Genauigkeit zu vermeiden.
  • Halbpräzision vs. Bfloat16: Bfloat16 (Brain Floating Point) ist ein alternatives 16-Bit-Format, das häufig auf TPUs verwendet wird. Es behält den 8-Bit-Exponenten von FP32 bei, um den dynamischen Bereich beizubehalten, opfert aber die Präzision im Bruchteil, wodurch es Dadurch ist es für das Training im Allgemeinen stabiler als das standardmäßige IEEE FP16, ohne dass eine Verlustskalierung erforderlich ist.

Wenn Entwickler diese Formate beherrschen, können sie sicherstellen, dass ihre Modellbereitstellungsstrategien für die spezifischen spezifischen Hardware- und Leistungsanforderungen ihrer Projekte optimiert werden.

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