ML Suite v1.4 war vor kurzem freigegeben. Dieses Update bringt viele Upgrades und neue Funktionen. Es startet auch den Cloud-to-Edge-Vereinheitlichungsprozess, wobei die ML Suite jetzt die Decent_q-Quantisierung verwendet, während die Unterstützung für den xfDNN-Quantisierer eingestellt wird. Version 1.4 bringt auch Docker-Unterstützung zurück, um einfachere Proof-of-Concept-Evaluierungen im Rechenzentrum zu ermöglichen und Verbesserungen an den Laufzeit-APIs bereitzustellen.
ML Suite v1.4 hat auch die Unterstützung für xDNNv2 eingestellt und unterstützt jetzt nur noch xDNNV3-Overlays.
Plattformunterstützung
ML Suite v1.4 unterstützt zunächst die folgenden Plattformen:
- AWS
- Nimbix
- AlveoU200
- AlveoU250
- VCU1525
Demnächst:
- AlveoU280
Einführung von Decent_q-Unterstützung
Die ML Suite verwendete zuvor den xfDNN-Quantisierer. Dieser auf Python basierende Quantisierer führte eine Rekalibrierungs-Quantisierungsstrategie durch, und obwohl es schnell war, ein 32-Bit-Modell auf int8 zu quantisieren, produzierte er in einigen Fällen int8-Modelle mit einem Genauigkeitsverlust von mehr als 1-2% gegenüber dem Basismodell.
Decent_q wurde hauptsächlich für die DPU (Teil der Edge AI Platform) und eingebettete Anwendungsfälle verwendet, ist aber jetzt in der ML Suite verfügbar – mit dem Ziel des xDNN-Overlays. Es liefert weniger Genauigkeitsverlust von 32-Bit-Modellen. Das folgende Diagramm zeigt einige gängige Modelle und den Genauigkeitsunterschied zwischen dem Originalmodell und dem quantisierten int8-Modell.
Netzwerke |
Float32-Basislinie |
8-Bit-Quantisierung |
||||
Top1 |
Top5 |
Top1 |
ΔOben1 |
Top5 |
ΔOben5 |
|
Inception_v1 |
66.90% |
87.68% |
66.62% |
-0.28% |
87.58% |
-0.10% |
Inception_v2 |
72.78% |
91.04% |
72.40% |
-0.38% |
90.82% |
-0.23% |
Inception_v3 |
77.01% |
93.29% |
76.56% |
-0.45% |
93.00% |
-0.29% |
Inception_v4 |
79.74% |
94.80% |
79.42% |
-0.32% |
94.64% |
-0.16% |
ResNet-50 |
74.76% |
92.09% |
74.59% |
-0.17% |
91.95% |
-0.14% |
VGG16 |
70.97% |
89.85% |
70.77% |
-0.20% |
89.76% |
-0.09% |
Inception-ResNet-v2 |
79.95% |
95.13% |
79.45% |
-0.51% |
94.97% |
-0.16% |
ML Suite und xFDNN wurden aktualisiert, um Decent_q nativ zu unterstützen und erfordern keine zusätzlichen Schritte zum Quantisieren und Bereitstellen eines Modells. ML Suite V1.4 unterstützt nur Decent_q für Caffe-Modelle. Tensorflow wird in der nächsten Version erscheinen.
Verbesserte Modellunterstützung
ML Suite enthielt traditionell nur grundlegende Referenzmodelle, um Benutzern zu helfen, einige Beispiele und Jupyter-Notebook-Tutorials durchzugehen. Version v1.4 verfügt über einen neuen Satz anwendungsspezifischer Modelle, um neuen KI/ML-Benutzern die Möglichkeit zu geben, ihrer Endanwendung näher zu kommen und unsere KI/ML-Fähigkeiten in Endanwendungen zu präsentieren. Die neu aktivierten Modelle werden unten angezeigt.
Anwendung |
Funktion |
Algorithmus |
Gesicht |
Gesichtserkennung |
SSD, Densebox |
Lokalisierung von Wahrzeichen |
Koordinatenregression |
|
Gesichtserkennung |
ResNet + Triplet / A-Softmax-Verlust |
|
Erkennung von Gesichtsattributen |
Klassifizierung und Regression |
|
Fußgänger |
Fußgängererkennung (Mengenvolumen) |
SSD |
Posenschätzung |
Koordinatenregression |
|
Personen-Re-Identifikation |
ResNet + Verlustfusion |
|
Videoanalyse |
Objekterkennung |
SSD, RefineDet |
Erkennung von Fußgängerattributen |
GoogleNet |
|
Erkennung von Fahrzeugattributen |
GoogleNet |
|
Erkennung von Autologos |
Dichte Box |
|
Erkennung von Autologos |
GoogleNet + Verlustfusion |
|
Kennzeichenerkennung |
Modifizierte DenseBox |
|
Kennzeichenerkennung |
GoogleNet + Multi-Task-Lernen |
Neben diesen neuen Anwendungsmodellen werden auch Referenzmodelle für Resnet50, Inception v1/3/4, SSD, yolov2 enthalten sein.
xfDNN-Laufzeitverbesserungen – Unterstützung für pycaffe
Die xFDNN-Laufzeit unterstützt jetzt pycaffe. Dieser Zusatz erleichtert die Bereitstellung benutzerdefinierter Modelle mit Layern, die in xDNN nicht vollständig unterstützt werden. Mit dem Hinzufügen des xfDNN-Untergraphen teilt xfDNN den Graphen jetzt automatisch auf und trennt die xDNN- und CPU-Teile. Die Layer, die auf der CPU ausgeführt werden, werden mit den APIs von pycaffe ausgeführt. Wenn der Compiler ausgeführt wird, werden die Ausgaben in das xfDNN-Subgraph-Tool eingespeist, das das Netzwerk analysiert und Subgraphen erstellt, wenn nicht unterstützte Layer gefunden werden, damit sie durch pycaffe auf der CPU ausgeführt werden können. Diese neue Funktion wird es Benutzern erleichtern, mehr Netzwerke bereitzustellen und die manuelle Ausführung von CPU-Schichten wie Softmax oder FC zu vermeiden.
Im Code sieht das einfach so aus:
Quantisieren (prototxt, Kaffeemodell)
Kompilieren()
Ausschneiden (Prototxt)
Infer
Dieser Flow umfasst auch Flags, die nur auf der CPU ausgeführt werden, was einen FPGA/CPU-Genauigkeits- und Geschwindigkeitsvergleich für Benchmarking/Evaluierung und Einzelbild- und Streaming-Image-Unterstützung ermöglicht.
Erste Schritte mit ML Suite 1.4 im GitHub Seite
Quelle: https://forums.xilinx.com/t5/AI-and-Machine-Learning-Blog/Ml-Suite-v1-4-Released/ba-p/978398