Lernen mit ONNX für den Handel - Seite 14

 

ESP-Tutorial – Gewusst wie: Entwerfen eines Beschleunigers in Keras/Pytorch/ONNX



ESP-Tutorial – Gewusst wie: Entwerfen eines Beschleunigers in Keras/Pytorch/ONNX

Das Tutorial stellt ein Tool namens Chalice for ML vor, das automatisch einen Beschleuniger aus einem Keras/Pytorch/ONNX-Modell generieren kann. Anschließend zeigt das Tutorial, wie der Beschleuniger in ESP (Early Stage Prototyper) integriert wird. Der Referent zeigt auch, wie man einen Beschleuniger in Keras/Pytorch/ONNX entwirft, und geht durch die Schritte zum Importieren eines Beschleunigers, Hinzufügen einer Testbench, Generieren von RTL und Erstellen von zwei Versionen des Beschleunigers. Das Video behandelt auch das Kompilieren von Linux und das Erstellen einer Linux-Benutzerbereichsanwendung für den Beschleuniger. Schließlich endet das Tutorial mit Ressourcen zum weiteren Lernen.

  • 00:00:00 In diesem Abschnitt des Tutorials stellt der Moderator ein Tool namens Chalice for ML vor, das automatisch einen Beschleuniger aus einem Keras/Pytorch/ONNX-Modell generieren kann. Der Ablauf wird anhand der Verwendung von HLS 4 ML demonstriert, um einen Beschleuniger aus einem vorgefertigten Keras-Modell zu generieren, das im ESP für das GitHub-Repository von NXP bereitgestellt wird. Der generierte Beschleuniger wird dann mithilfe eines interaktiven Skripts in ESP integriert und getestet. Der Moderator betont, dass Benutzer die Anleitungen zu den Voraussetzungen durchgehen und ihre Umgebung einrichten sollten, bevor sie versuchen, dem Tutorial zu folgen. Das Tutorial bietet auch vorgefertigte Materialien, mit denen Benutzer experimentieren können, ohne alle Schritte durchlaufen zu müssen.

  • 00:05:00 In diesem Abschnitt des Tutorials erklärt der Ausbilder, wie der in den vorherigen Schritten entworfene Beschleuniger in ESP (Early Stage Prototyper) integriert wird. Die dreistellige hexadezimale ID für den Beschleuniger wird zugewiesen, wobei zu beachten ist, dass die Zahl nicht größer als 1024 in Dezimalzahl sein sollte. Anschließend wird die Datenbitbreite des Beschleunigers definiert, die im aktuellen Anwendungsfall 32 Bit beträgt, und die Größe der Ein- und Ausgabedatei bestimmt. Abschließend demonstriert der Ausbilder die Ausführung einer High-Level-Synthese für den MLP-Dreischichtbeschleuniger und zeigt, wie HLS mit ESP ausgeführt wird. Alle Schritte sind dieselben wie für andere Leitfäden für System C- oder C++-Beschleuniger, und der Projektordner „HLS für MLP“ wird ESP mit allen erforderlichen Dateien zum Umschließen und Verbinden des Beschleunigers mit dem Rest des ESP-Systems hinzugefügt.

  • 00:10:00 In diesem Abschnitt des Videos demonstriert der Sprecher die Schritte zum Entwerfen eines Beschleunigers in Keras/Pytorch/ONNX. Sie zeigen zunächst, wie man einen Beschleuniger importiert und einen Prüfstand hinzufügt, der die Simulation automatisch testet. Sie durchlaufen dann den HLS-Schritt, der ein Projekt generiert, das auf einer Selektorsuche und der Technologie des FPGA läuft. Die generierte RTL wird dann in die Technologie des FPGAs platziert und es werden zwei Versionen des Beschleunigers erstellt, eine mit 32 Bit und die andere mit 64 Bit. Der Referent konfiguriert einen SOC mit dem ESP X-Befehl config und zeigt, wie eine automatisch generierte Bare-Metal-Anwendung kompiliert wird. Um den Bare-Metal-Test eines Beschleunigers zu simulieren, muss das Testprogramm spezifiziert werden. Sobald die Validierung bestanden ist, kann ein FPGA-Bitstrom generiert werden.

  • 00:15:00 In diesem Abschnitt führt das Video-Tutorial durch das Kompilieren von Linux, das nicht nur Zyniker kompiliert, sondern auch die User-Space-Testanwendungen für die Beschleuniger kompiliert. Sobald Linux fertig ist, wird eine ausführbare Datei für den Beschleuniger erstellt, bei der es sich um die Linux-Benutzerraumanwendung handelt, die auf FPGA ausgeführt wird. Das Tutorial fährt dann damit fort, das FPGA zu programmieren und den Bare-Metal-Test mit dem Befehl make FPGA run auszuführen. Um den Bare-Metal-Einheitentest für den Decelerator auszuführen, wird ein zuvor generiertes Testprogramm angegeben. Anschließend wurde Linux ausgeführt und die Unit-Test-Anwendung ausgeführt, die den Verkäufer Reiter erfolgreich gefunden und den Test mit Validierung bestanden hat. Das Tutorial endet mit einigen Ressourcen zum weiteren Lernen.
ESP tutorial - How to: design an accelerator in Keras/Pytorch/ONNX
ESP tutorial - How to: design an accelerator in Keras/Pytorch/ONNX
  • 2020.03.20
  • www.youtube.com
Tutorial guide: https://www.esp.cs.columbia.edu/docs/hls4ml/(The video tutorial was not recorded with the latest version of the ESP repository. While watchin...
 

Optimales Inferencing auf flexibler Hardware mit ONNX Runtime



Optimales Inferencing auf flexibler Hardware mit ONNX Runtime

Dieses Tutorial behandelt die Bereitstellung von Modellen auf CPU, GPU und OpenVINO mit ONNX Runtime. Der Referent demonstriert die Verwendung verschiedener Ausführungsanbieter, einschließlich OpenVINO, für die Inferenz auf flexibler Hardware. Der Code für Rückschlüsse ist in allen Umgebungen im Wesentlichen gleich, wobei der Hauptunterschied der Ausführungsanbieter ist. ONNX Runtime führt Rückschlüsse auf CPU und GPU schneller durch als PyTorch, und für OpenVINO existiert eine separate ONNX Runtime-Bibliothek. Insgesamt bietet das Tutorial einen Überblick darüber, wie Modelle mithilfe von ONNX Runtime auf verschiedenen Hardwareoptionen bereitgestellt werden.

  • 00:00:00 In diesem Abschnitt geht der Referent durch den Prozess der Einrichtung virtueller Umgebungen und der Verwendung von ONNX Runtime, um Inferenzen auf einem ResNet50-Modell auf CPU, GPU und OpenVINO durchzuführen. Der Sprecher weist darauf hin, dass ONNX Runtime die GPU verwendet, wenn es einen kompatiblen Beschleuniger erkennt, andernfalls wird standardmäßig die CPU verwendet. Der Code für Rückschlüsse ist in allen drei Umgebungen im Wesentlichen gleich, wobei der Hauptunterschied darin besteht, den Ausführungsanbieter zu ändern. Der Referent demonstriert, dass ONNX Runtime auf CPU und GPU Inferenzen schneller durchführen kann als PyTorch, und stellt fest, dass es eine separate ONNX Runtime-Bibliothek für OpenVINO gibt.

  • 00:05:00 In diesem Abschnitt demonstriert der Referent die Verwendung verschiedener Ausführungsanbieter wie OpenVINO und OpenVino on CPU für Inferenzen auf flexibler Hardware mit ONNX Runtime. Durch die Einstellung des Ausführungsanbieters auf OpenVINO liefert derselbe Code 30 ms und eine CPU-Auslastung von etwa 0,78. Das Tutorial gibt einen Überblick über die Bereitstellung von Modellen auf CPU, GPU und OpenVINO mit ONNX Runtime.
Optimal Inferencing on Flexible Hardware with ONNX Runtime
Optimal Inferencing on Flexible Hardware with ONNX Runtime
  • 2022.08.22
  • www.youtube.com
Check out this video and blog on how to inference ResNet with CPU, GPU or OpenVINO by our intern Kevin Huang!Blog: https://onnxruntime.ai/docs/tutorials/acce...
 

Machine-Learning-Inferenz in Flink mit ONNX



Machine-Learning-Inferenz in Flink mit ONNX

In dem Video werden die Vorteile und die Implementierung der Verwendung von ONNX in Machine-Learning-Inferenzen und deren Bereitstellung im Distributed-Computing-Framework Flink erörtert. Die Trennung zwischen Modelltraining und Produktionsinferenz, die Möglichkeit, Spezifikationen für Eingaben und Ausgaben zu definieren, und die Sprachunabhängigkeit machen ONNX zu einem wertvollen Werkzeug für Datenwissenschaftler. Das Video zeigt, wie ein ONNX-Modell in Flink geladen wird, stellt Schlüsselkomponenten der Rich-Map-Funktion bereit und erklärt, wie die Modelle zusammen mit dem Code mithilfe einer JAR-Datei gebündelt werden. Der Redner geht auch auf Überlegungen wie Speicherverwaltung, Batch-Optimierung und Hardwarebeschleunigung mit ONNX ein und betont seine Vorteile für die Inferenz von maschinellem Lernen in Echtzeit in Flink.

  • 00:00:00 In diesem Abschnitt des Videos erklärt Colin Germain die Bedeutung von Inferenz durch maschinelles Lernen in Echtzeit anhand eines Spielzeugbeispiels aus dem Bereich der Erkennung von Cyberangriffen. Er veranschaulicht, wie das Warten auf die Erkennung eines Vorfalls dazu führen kann, dass wichtige Daten exfiltriert werden. Darüber hinaus erklärt er, warum maschinelles Lernen unerlässlich ist, um die Variation verschiedener Arten von Techniken und Exploits zu erfassen, die von externen Gegnern verwendet werden. Abschließend betont er die Bedeutung der Skalierung der Lösung durch den Einsatz von Distributed Computing in Flink. Colin stellt das Onyx-Modell vor, das eine entscheidende Rolle in der Lösung spielt, und erklärt, wie sie ein maschinelles Lernmodell in PyTorch verwenden und es mit Onyx serialisieren können, um es in Flink bereitzustellen.

  • 00:05:00 In diesem Abschnitt erläutert der Referent die Vorteile der Verwendung von ONNX, was für Open Neural Network Exchange steht, in einer Pipeline für maschinelles Lernen. ONNX ermöglicht die Trennung von Bedenken zwischen der Modelltrainingsphase und der Produktionsinferenzphase, sodass Data Scientists problemlos Modelle in Python entwickeln und dann das ONNX-Modell mit verschiedenen Tools für Inferenz verwenden können. ONNX stellt einen Vertrag bereit, der die Berechnung eines gerichteten azyklischen Graphen definiert, der für maschinelles Lernen verwendet werden soll. Jeder Operator im Diagramm hat eine Version, die eine Abwärtskompatibilität und eine kontinuierliche Bereitstellung in der Zukunft ermöglicht. Der Referent weist auch auf die Vorteile der Verpackung von ONNX-Modellen mit dem Streaming-Framework Apache Flink für eine einfachere Bereitstellung hin.

  • 00:10:00 In diesem Abschnitt des Videos erläutert der Referent die Vorteile der Verwendung von ONNX für Machine-Learning-Inferenz, einschließlich der Möglichkeit, Spezifikationen für Eingaben und Ausgaben zu definieren, und die Unterstützung aller Versionen von Modellen in der ONNX-Laufzeitbibliothek. Die Sprachunabhängigkeit von ONNX und die Verfügbarkeit von Konvertern für die meisten ML-Frameworks machen es einfach, Modelle in ONNX zu bekommen, und der Referent schlägt vor, netron für Diagnosezwecke zu verwenden. Abschließend stellt der Referent ein einfaches Beispiel für die Verwendung eines Pi-Fackel-Modells mit ONNX für die End-to-End-Verarbeitung ohne Schulung vor.

  • 00:15:00 In diesem Abschnitt erörtert der Sprecher die Vorwärtsmethode, die zum Definieren der Berechnung verwendet wird, und wie sie von einem hohen Drehmoment verwendet wird, um die Rückwärtsausbreitung von Gradienten für das Training zu verwalten. Ein grundlegendes Beispiel für die Verwendung der Add-Offset-Klasse wird demonstriert, die Tensoren um einen definierten Wert versetzt. Der Redner fährt dann fort, um den Export nach ONNX und die Bedeutung der Bereitstellung der richtigen Eingaben für dynamische Modelle zu erörtern. Das ONNX-Modell wird mithilfe der ONNX-Laufzeitumgebung und -sitzung von Scala in den Arbeitsspeicher geladen, wodurch Rückschlüsse auf das Modell ausgeführt werden können. Eine Klasse wird erstellt, um das geladene Modell zur Verwendung in der Inferenz zu halten.

  • 00:20:00 In diesem Abschnitt erklärt der Referent, wie das ONNX-Modell mithilfe eines Byte-Arrays und einer Lademethode in Flink geladen werden kann. Sie demonstrieren auch, wie die Rich-Map-Funktion verwendet werden kann, um das geladene Modell beizubehalten und Inferenzen auf saubere und organisierte Weise durchzuführen. Der Referent geht die Schlüsselkomponenten der Rich-Map-Funktion durch, einschließlich der Einrichtung des ONNX-Tensors, der Definition der Eingaben und Ausgaben und der Ausführung der Modellsitzung, um die Ergebnisse zu erhalten. Sie stellen fest, dass der Code geändert werden kann, um mehrere Ausgaben zu unterstützen, was ihn zu einer flexiblen Lösung für verschiedene Arten von Modellen macht. Abschließend geht der Redner auf den Verpackungsaspekt von ONNX-Modellen ein und erklärt, wie sie mit der JAR-Datei, die den Code enthält, gebündelt werden können, wodurch die Notwendigkeit entfällt, eine Verbindung zu externen Endpunkten herzustellen oder Dateien aus verschiedenen Quellen herunterzuladen.

  • 00:25:00 In diesem Abschnitt erörtert der Redner ein Beispiel für maschinelles Lernen in Flink unter Verwendung des klassischen Problems der Klassifizierung handgeschriebener Ziffern, bekannt als MNIST. Sie zeigen das PyTorch-Modell, das zur Klassifizierung der 28x28-Pixel-Arrays verwendet wird, und wie es in ein ONNX-Diagramm zur Verwendung in Flink konvertiert werden kann, wobei der gleiche Batch-Sizing-Ansatz wie zuvor verwendet wird. Der Redner diskutiert dann ein weiteres Beispiel für maschinelles Lernen mit Transformatoren in NLP, insbesondere eine kleinere Version von BERT, die auf ein Wortvokabular vortrainiert wurde. Das Transformer-Modell wird zur Vorhersage von Stimmungen, Übersetzungen und anderen Wortaufgaben verwendet und kann für neue Vorhersageaufgaben in Flink weiter trainiert werden.

  • 00:30:00 In diesem Abschnitt stellt der Moderator die Hugging Face Transformers-Bibliothek vor, die den einfachen Import von vortrainierten Modellen und das Transferlernen in Python ermöglicht. Obwohl diese Modelle tendenziell groß sein können, enthält die Bibliothek Optimierungs- und Quantisierungsfunktionen zur Verbesserung der Leistung. Es ist jedoch wichtig zu beachten, dass Vorverarbeitungsstufen wie die Tokenisierung noch nicht Teil des Diagramms sind und möglicherweise nicht in Scala zugänglich sind. Der Moderator hebt auch die Vorteile hervor, die sich aus der Nutzung der vollen Möglichkeiten der Scala-Sprache in Flink ergeben, während Trainingsabhängigkeiten von Produktionsrückschlüssen getrennt und die beiden Teile effektiv entkoppelt werden. Insgesamt gibt es zwar einige Nachteile, wie z. B. Herausforderungen bei der Modellgröße und der Vorverarbeitung, aber die Methode bietet Vorteile in Bezug auf die Nutzung der Fähigkeiten von Flink und die Bereitstellung in einer JAR-Datei.

  • 00:35:00 In diesem Abschnitt weist der Redner darauf hin, dass bei der Verwendung von Machine-Learning-Inferenz in Flink mit ONNX einige wichtige Überlegungen zu beachten sind. Eines ist eine sorgfältige Speicherverwaltung, wenn es um große Modelle geht, wie z. B. Transformatormodelle, die Hunderte von Megabytes belegen können. Darüber hinaus können Batch-Optimierung und Hardwarebeschleunigung, wie z. B. die Verwendung von GPUs, die Leistung beeinträchtigen. Die Vorverarbeitung kann mit benutzerdefinierten ONNX-Diagrammen erfolgen, dies erfordert jedoch zusätzliche Arbeit und ist nicht so einfach wie zuvor gezeigt. Der Referent betont, dass ONNX maschinelles Lernen in Echtzeit in Flink ermöglicht und den Python-Trainingscode gut vom Scala-Produktionscode trennt, was für Data Scientists ein Gewinn sein kann. Der Referent geht auch auf Fragen zur Verwendung von ONNX mit TensorFlow-basierten Modellen ein und warum ONNX der Java-API, PyTorch oder TensorFlow vorgezogen wurde.

  • 00:40:00 In diesem Abschnitt spricht der Sprecher über ONNX als Framework-agnostisches Schema für den Graphen, der auch sprachunabhängig ist. Der Redner erwähnte, dass eine der interessanten Eigenschaften der Verwendung von ONNX darin besteht, dass, wenn man PyTorch verwendet und zu TensorFlow wechseln möchte, ONNX als „Vehikel“ verwendet werden kann, um zwischen den beiden Frameworks zu wechseln, was die Flexibilität des Frameworks zeigt. Das Publikum fragte, ob der Redner mit TensorFlow-Modellen mit dem Scala-Projekt von TensorFlow experimentiert habe, worauf er negativ reagierte. Schließlich lädt der Redner das Publikum ein, das ONNX-Repository zu besuchen, ein Issue auf GitHub zu erstellen oder sich bei Fragen, insbesondere zum Thema Einstellung, auf LinkedIn an ihn zu wenden.
Machine Learning Inference in Flink with ONNX
Machine Learning Inference in Flink with ONNX
  • 2021.05.20
  • www.youtube.com
What is the best way to run inference on a machine learning model in your streaming application? We will unpack this question, and explore the ways to levera...
 

Verbesserung des Online-Einkaufserlebnisses mit ONNX



Verbesserung des Online-Einkaufserlebnisses mit ONNX

In diesem Video wird erläutert, wie E-Commerce-Unternehmen KI nutzen, um aussagekräftige Erkenntnisse zu gewinnen, die zwischen Gewinnen und Verlieren im Online-Einzelhandelsbereich unterscheiden. Der Redner gibt ein Beispiel für Bazaar Voice, das größte Netzwerk von Marken und Einzelhändlern, das insgesamt über 8 Milliarden Bewertungen bereitstellt, und wie sie Produktabgleiche verwenden, um Bewertungen zu teilen. Der Referent beschreibt dann, wie sie ein maschinelles Lernmodell in Python entwickelt, es in das ONNX-Format exportiert und es mithilfe einer Knotenumgebung für eine serverlose Funktion bereitgestellt haben, um Inferenzen auf einer ONNX-Laufzeit auszuführen. Diese Lösung ermöglicht den Hochgeschwindigkeitsabgleich von Hunderten von Millionen Produkten aus Tausenden von Kundenkatalogen bei gleichzeitig niedrigen Kosten, was zu erheblichen Kosteneinsparungen und Millionen von zusätzlichen Bewertungen für Marken und Einzelhändler führt. Abschließend lädt der Redner die Zuschauer ein, weitere Möglichkeiten zur Nutzung der Funktionen von ONNX zu erkunden und ihre Anwendungsfälle für zukünftige technologische Fortschritte zu teilen.

  • 00:00:00 In diesem Abschnitt erfahren wir, dass die Digitalisierung des Handels dazu geführt hat, dass E-Commerce-Unternehmen über den Umfang der von ihnen gesammelten Daten verfügen und KI nutzen, um wirkungsvolle Erkenntnisse als Unterscheidungsmerkmal zwischen Gewinnen und Verlieren im Online-Einzelhandelsbereich zu gewinnen. Ein Beispiel sind eine Milliarde Käufer pro Monat für Bazaar Voice, das weltweit größte Netzwerk von Marken und Einzelhändlern, das insgesamt über 8 Milliarden Bewertungen bereitstellt, und wie das Teilen von Bewertungen durch Produktabgleich unterstützt wird. Der Produktabgleich, die Kernfunktion des erstellten Modells für maschinelles Lernen, wird durch den Vergleich eindeutiger Kennungen durchgeführt, aber über eine Million Produktabgleiche werden jeden Monat manuell durchgeführt. Die Lösung ist ein scikit-learn-Modell, das mit Python erstellt und in das ONNX-Format exportiert wird, wobei die leichteste, kosteneffizienteste Lösung bei gleichbleibender Leistung implementiert wurde.

  • 00:05:00 In diesem Abschnitt diskutiert der Referent verschiedene Optionen zur Implementierung von Machine-Learning-Modellen für ein Online-Einkaufserlebnis und kommt zu dem Schluss, dass serverlose Funktionen aufgrund ihrer geringen Kosten und einfachen Implementierung die beste Option sind. Anschließend erklären sie, wie sie ein Modell in Python entwickelt, es in das ONNX-Format exportiert und es mithilfe einer Knotenumgebung für eine serverlose Funktion bereitgestellt haben, um Inferenzen auf einer ONNX-Laufzeit auszuführen. Die Modularität dieser Lösung ermöglicht es, sie problemlos in jeden Dienst einzubinden, und durch die Verwendung von Metriken wie verwendetem Speicher und Ausführungszeit war es ihnen möglich, die optimale Speichergröße zu finden, um die beste Leistung zu gewährleisten und gleichzeitig die Kosten niedrig zu halten. Während die Größenbeschränkungen für die Bereitstellung und das Arbeiten innerhalb von Timeout-Limits zu berücksichtigen sind, ermöglichte die Leistungsfähigkeit von ONNX und ONNX Runtime in Kombination mit serverlosen Funktionen einen Hochgeschwindigkeitsabgleich von Hunderten Millionen Produkten über Tausende von Client-Katalogen hinweg, was zu erheblichen Kosteneinsparungen und 15 Millionen führte zusätzliche Bewertungen für Marken und Einzelhändler.

  • 00:10:00 In diesem Abschnitt schließt der Sprecher das Video ab, indem er die Zuschauer einlädt, weitere Möglichkeiten zur Nutzung der Funktionen von ONNX zu erkunden und ihre Anwendungsfälle zu teilen. Als jemand, der aktiv in diesem Bereich arbeitet, ist der Redner fasziniert und überzeugt davon, wohin uns diese Technologien in Zukunft führen werden.
Improving the online shopping experience with ONNX
Improving the online shopping experience with ONNX
  • 2022.07.13
  • www.youtube.com
Building and deploying AI solutions to the cloud at scale is complex. With massive datasets and performance considerations - finding a harmonious balance is ...
 

DSS online Nr. 4: End-to-End-Deep-Learning-Bereitstellung mit ONNX


DSS online Nr. 4: End-to-End-Deep-Learning-Bereitstellung mit ONNX

In diesem Video werden die Herausforderungen einer End-to-End-Deep-Learning-Bereitstellung erörtert, einschließlich der Verwaltung verschiedener Sprachen, Frameworks, Abhängigkeiten und Leistungsschwankungen sowie der Reibung zwischen Teams und der Bindung an proprietäre Formate. Der Open Neural Network Exchange (ONNX) wird als protokollpufferbasiertes Format für Deep-Learning-Serialisierung eingeführt. Es unterstützt wichtige Deep-Learning-Frameworks und stellt ein eigenständiges Artefakt zum Ausführen des Modells bereit. ONNX ML wird auch als Teil der ONNX-Spezifikation diskutiert, die Unterstützung für die traditionelle maschinelle Lernvorverarbeitung bietet. Die Einschränkungen von ONNX sind anerkannt, aber es wird als ein schnell wachsendes Projekt mit starker Unterstützung durch große Organisationen angesehen, das echte Portabilität über verschiedene Dimensionen von Sprachen, Frameworks, Laufzeiten und Versionen bietet.

  • 00:00:00 In diesem Abschnitt stellt Nick Pentreath, ein leitender Ingenieur bei IBM, die Bereitstellung von End-to-End Deep Learning mit Open Neural Network Exchange vor. Der Workflow für maschinelles Lernen umfasst viele Schritte, darunter die Analyse von Daten, ihre Vorverarbeitung für Modelle, das Trainieren des Modells, seine Bereitstellung in realen Anwendungen sowie seine Wartung und Überwachung. Pentreath erläutert, wie der Workflow verschiedene Teams und Tools umfasst, wodurch es unerlässlich ist, eine Infrastruktur zu haben, die das Modell bedient.

  • 00:05:00 In diesem Abschnitt erörtert der Referent die drei Fragen, die für die Bereitstellung von maschinellem Lernen entscheidend sind: Was stellen wir bereit, wo stellen wir bereit und wie stellen wir bereit? Die Bereitstellung eines Modells für maschinelles Lernen umfasst die Einbeziehung aller Schritte, die dem trainierten Modell vorangehen, einschließlich Transformationen, Merkmalsextraktion und Vorverarbeitung. Es ist zwingend erforderlich, in der Live-Umgebung die gleichen Vorverarbeitungsschritte wie während des Trainings anzuwenden, da alle Unterschiede zu Datenverzerrungen führen können, die zu katastrophalen Ergebnissen führen können. Der Referent merkt an, dass selbst Deep Learning immer noch eine sorgfältige Vorverarbeitung und Feature-Engineering erfordert, und hebt die Herausforderungen hervor, die mit der Standardisierung der Vorverarbeitung einhergehen. Zu diesen Herausforderungen gehören unterschiedliche Datenlayouts und Farbmodi in verschiedenen Frameworks, die subtile, aber signifikante Auswirkungen auf die Vorhersagen haben können.

  • 00:10:00 In diesem Abschnitt erörtert das Video die Herausforderungen bei der Bereitstellung einer End-to-End-Deep-Learning-Pipeline, einschließlich der Verwaltung und Überbrückung verschiedener Sprachen, Frameworks, Abhängigkeiten und Leistungsschwankungen sowie Reibungen zwischen Teams , der Mangel an Standardisierung unter Open-Source-Frameworks und proprietäre Format-Lock-Ins. Während die Container-basierte Bereitstellung erhebliche Vorteile bringt, erfordert sie darüber hinaus noch eine Art Bereitstellungs-Framework und löst das Problem der Standardisierung nicht. Aus diesem Grund schlägt das Video vor, offene Standards zu verwenden, um Modelle aus verschiedenen Frameworks in ein standardisiertes Format zu exportieren, das eine Trennung der Bedenken zwischen dem Modellproduzenten und dem Modellkonsumenten ermöglicht, sodass sie sich auf ihre jeweiligen Aufgaben konzentrieren können, ohne sich Gedanken über Bereitstellungsprobleme oder wo die Modell stammte.

  • 00:15:00 In diesem Abschnitt erörtert der Referent die Bedeutung von Open Source und offenen Standards bei der Bereitstellung von Deep Learning. Sie erklären die Vorteile eines einzigen Stacks und eines standardisierten Satzes von Tools für Analyse und Visualisierung und betonen die entscheidende Rolle von Open Governance bei der Bereitstellung von Transparenz und der Vermeidung von Kontrollkonzentration. Anschließend stellt der Referent den Open Neural Network Exchange (ONNX) vor, ein protokollpufferbasiertes Format zur Definition der Serialisierung von Machine-Learning-Modellen mit Fokus auf Deep Learning. ONNX unterstützt wichtige Deep-Learning-Frameworks wie PyTorch, Caffe, TensorFlow, Keras, Apple Core ML und MXNet und stellt ein eigenständiges Artefakt zum Ausführen des Modells bereit.

  • 00:20:00 In diesem Abschnitt erläutert der Referent, wie ONNX ML (Machine Learning) ein Teil der ONNX-Spezifikation ist, die Unterstützung für die herkömmliche Vorverarbeitung des maschinellen Lernens bietet, zusammen mit zusätzlichen Typen wie Sequenzen und Karten. ONNX umfasst eine breite Community und ein Ökosystem von Exporteuren, die für verschiedene traditionelle Frameworks für maschinelles Lernen sowie Modelle wie lineare Modelle, Baumensembles und Gradientenverstärkung geschrieben wurden. Um all dies darzustellen, fungiert ONNX als Standard, der zwischen den Modellherstellern und den Verbrauchern angesiedelt ist. Der ONNX-Modellzoo enthält eine Reihe weit verbreiteter und Standardmodelle in verschiedenen Bereichen, einschließlich Bildanalyse, Klassifizierung, Segmentierung und Verarbeitung natürlicher Sprache, die alle in ONNX-Formaten dargestellt werden. Die ONNX-Laufzeit, ein Open-Source-Projekt von Microsoft, ist eine vollständig konforme Laufzeit, die sowohl Kern-Deep-Learning- als auch ONNX-ML-Operatoren unterstützt.

  • 00:25:00 In diesem Abschnitt erörtert der Referent die Einschränkungen von ONNX, insbesondere in Bezug auf bestimmte fehlende Funktionen wie Bildverarbeitung, erweiterte Zeichenfolgenverarbeitung und Hashing-Clustering-Modelle. Darüber hinaus gibt es Herausforderungen beim Exportieren von Hybrid-Pipelines aus Frameworks wie Spark ML, und dies erfordert ein wenig benutzerdefinierten Code. ONNX ist jedoch ein aktives Projekt, das schnell wächst und von großen Organisationen stark unterstützt wird. Es bietet echte Portabilität über verschiedene Dimensionen von Sprachen, Frameworks, Laufzeiten und Versionen hinweg, wodurch ein wesentlicher Problempunkt für die Bereitstellung von Deep-Learning-Pipelines auf offene und portable Weise gelöst wird. ONNX ist Open Source und Open Governance, sodass jeder mitmachen kann.
DSS online #4 : End-to-End Deep Learning Deployment with ONNX
DSS online #4 : End-to-End Deep Learning Deployment with ONNX
  • 2020.10.29
  • www.youtube.com
End-to-End Deep Learning Deployment with ONNXA deep learning model is often viewed as fully self-contained, freeing practitioners from the burden of data pro...
 

ONNX und ONNX Runtime mit Vinitra Swamy und Pranav Sharma von Microsoft



ONNX und ONNX Runtime mit Vinitra Swamy und Pranav Sharma von Microsoft

Das Video behandelt das Format Open Neural Network Exchange (ONNX), das erstellt wurde, um Modelle interoperabel und effizient bei der Serialisierung und Versionierung zu machen. ONNX besteht aus einer Zwischendarstellungsschicht, Betreiberspezifikationen und unterstützt verschiedene Datentypen. Die in C++ und Assembler implementierte ONNX Runtime bietet Abwärtskompatibilität und ist durch Ausführungsanbieter, benutzerdefinierte Operatoren und Grafikoptimierer erweiterbar. Die API bietet Unterstützung für Plattformen, Programmiersprachen und Ausführungsanbieter. Benutzer können Sitzungen erstellen, Modelle optimieren und sie für die zukünftige Verwendung serialisieren. Die Referenten demonstrieren die Vielseitigkeit und Effizienz von ONNX Runtime mit der Fähigkeit, auf Android-Geräten ausgeführt zu werden.

  • 00:00:00 In diesem Abschnitt stellt Venetra vom ONNX-Entwicklungsteam ONNX vor, den Open Neural Network Exchange, einen interoperablen Standard für KI-Modelle. Sie erklärt, dass Microsoft maschinelles Lernen in fast jeden Aspekt seiner Produktsuite integriert hat, von HoloLens über Xbox bis hin zu Skype, was zu verschiedenen Herausforderungen bei der Bereitstellung in großem Maßstab geführt hat. ONNX wurde entwickelt, um eine effiziente Inferenz zu optimieren, indem der Modellbereitstellungsprozess für verschiedene Frameworks und Bereitstellungsziele standardisiert wird. Das Ziel besteht darin, Modelle aus vielen Frameworks durch die Implementierung eines Standards zu unterstützen und allen Benutzern ein konsistentes Erlebnis zu bieten, unabhängig davon, ob es sich um Data Scientists, Hardware-Verleiher, Serviceautoren oder ML-Ingenieure handelt.

  • 00:05:00 In diesem Abschnitt sprechen Vinitra Swamy und Pranav Sharma über ONNX, ein Konsortium von Gründungspartnern, zu dem unter anderem Microsoft, Facebook, Amazon, NVIDIA und Intel gehören. ONNX besteht aus einer Zwischendarstellungsschicht und einer vollständigen Operatorspezifikation, die Operatoren trotz der unterschiedlichen Sätze von Operatoren, über die jedes Framework verfügt, auf standardisierte Weise definiert. Der Code zum Konvertieren von Modellen in ONNX ist nicht langwierig, und die Konvertierung könnte Benutzern viel in Bezug auf Rückschlüsse und Interoperabilität ersparen. Darüber hinaus verfügt ONNX über Designprinzipien, die die Interoperabilität sowohl für Deep-Learning- als auch für Machine-Learning-Modelle ermöglichen. Benutzer können mit ONNX beginnen, indem sie zum ONNX-Modellzoo, Modellerstellungsdiensten oder Konvertern gehen.

  • 00:10:00 Abschnitt behandelt die Komponenten und das Design von ONNX, einem Modellformat, das erstellt wurde, um es interoperabel und abwärtskompatibel zu machen und gleichzeitig eine effiziente Serialisierung und Versionierung zu unterstützen. Das Format besteht aus einem Modell, einem Berechnungsgraphen mit Knoten und einer Operatorspezifikation. Zu den unterstützten Datentypen gehören die Standard-Tensortypen und zwei Nicht-Tensortypen, Sequenzen und Abbildungen. Operatorspezifikationen enthalten Eingaben, Ausgaben, Einschränkungen und Beispiele. Ein Beispiel für eine Operatorspezifikation ist für den relu-Operator angegeben.

  • 00:15:00 In diesem Abschnitt des Videos diskutieren Vinitra Swamy und Pranav Sharma die verschiedenen Versionen und Operatoren, die im ONNX-Format (Open Neural Network Exchange) unterstützt werden. Sie erklären, dass ONNX über 156 Deep-Learning-Spec-Ops und 18 traditionelle Machine-Learning-Operationen verfügt, die zwischen den verschiedenen Betreibern interoperabel sind. Darüber hinaus können Benutzer mithilfe des ONNX-Frameworks benutzerdefinierte Operationen für ihre Modelle erstellen. Sie unterstreichen auch die Bedeutung der Versionierung, die auf drei verschiedenen Ebenen erfolgt – Zwischendarstellungsebene, Offsets und einzelne Operatoren. Schließlich besprechen sie ONNX Runtime, eine Open-Source- und Hochleistungs-Inferenz-Engine für ONNX. Es ist plattformübergreifend und abwärtskompatibel, wodurch es für den Einsatz in Produktionsumgebungen geeignet ist.

  • 00:20:00 In diesem Abschnitt liegt der Schwerpunkt auf der Architektur von ONNX Runtime und wie ein Modell darin ausgeführt wird. Abwärtskompatibilität und Leistung waren Hauptanliegen für ONNX Runtime, das in C++ und einigen Teilen in Assembler implementiert ist. ONNX Runtime bietet Unterstützung für Hardwarebeschleuniger, indem sogenannte „Ausführungsanbieter“ verwendet werden. Der Partitionierungsalgorithmus ermöglicht es dem Modell, in einer hybriden Ausführungsphase ausgeführt zu werden, und die einzelnen Ausführungsanbieter können die Teilgraphen noch weiter optimieren, um eine bessere Leistung zu erzielen. Schließlich fungiert ONNX Runtime als Interpreter, der alle Knoten im Diagramm durchläuft, um das Modell auszuführen.

  • 00:25:00 In diesem Abschnitt diskutieren die Referenten die Ausführungsmodi in ONNX und ONNX Runtime, die sequentiell und parallel sind. Benutzer können die Anzahl der Threads steuern, die sie für jeden Ausführungsmodus konfigurieren möchten, und die Ergebnisse werden über die API gesendet. Die Referenten weisen darauf hin, dass verschiedene Geräte möglicherweise nicht denselben Speicher gemeinsam nutzen, sodass Speicherkopieknoten basierend auf durchgeführten Optimierungen eingefügt werden. Sie sprechen auch über den Graph-Partitionierungsprozess, bei dem Benutzer eine priorisierte Liste von Ausführungsanbietern angeben müssen, auf denen der Graph ausgeführt werden soll. In der nächsten Version wird es jedoch eine neue Phase namens Smart Partitioning geben, in der ONNX herausfinden wird, wie das Diagramm am besten platziert und effizient ausgeführt werden kann. Die Referenten gehen auch auf Ausführungsanbieter ein, bei denen es sich um Softwareabstraktionen auf Hardwarebeschleunigern handelt. Zwei Arten von Ausführungsanbietern sind Kernel-basiert und Laufzeit-basiert, und letzterer ist eine Blackbox, in der der Ausführungsanbieter Teile des Diagramms für uns ausführt.

  • 00:30:00 In diesem Abschnitt diskutieren die Referenten die Designprinzipien von ONNX Runtime und betonen ihre Erweiterbarkeit durch Optionen wie Ausführungsanbieter, benutzerdefinierte Operatoren und Grafikoptimierer. Sie bieten auch eine Matrix unterstützter Plattformen, Programmiersprachen und Ausführungsanbieter, einschließlich Tensor RT, Direct ML und OpenVINO. Die Referenten erläutern die allgemeinen Konstrukte einer Sitzung und die Thread-sichere Methode zum Erstellen des Sitzungsobjekts vor dem Aufrufen der Ausführungsfunktion. Sie diskutieren auch, wie die Zeit, die für die Optimierung eines Modells benötigt wird, von der Größe des Modells und seinen Optimierungsmöglichkeiten abhängt.

  • 00:35:00 In diesem Abschnitt erörtern die Referenten die Erstellung von Sitzungen und die Verwendung von Ausführungsoptionen und Sitzungsoptionen mit der Möglichkeit, das optimierte Modell für die zukünftige Verwendung zu serialisieren. Sie erklären auch den Prozess der Registrierung benutzerdefinierter Operatoren mit der Option, Python für diejenigen zu verwenden, die es vorziehen, C# nicht zu verwenden. Die Version ONNX Runtime 1.0 wurde veröffentlicht, um sicherzustellen, dass APIs in Zukunft nicht beschädigt werden
    Kompatibilität bis zurück zu CentOS 7.6. Das ONNX Go Live Tool, ein Open-Source-Tool zum Konvertieren und Tunen von Modellen für optimale Leistung, wird ebenfalls diskutiert. Der Abschnitt schließt mit Beispielen für Microsoft-Dienste, die ONNX verwenden, einschließlich einer 14-fachen Leistungssteigerung im fehlenden Bestimmungsmodell von Office und einer 3-fachen Leistungssteigerung im optischen Zeichenerkennungsmodell, das in kognitiven Diensten verwendet wird.

  • 00:40:00 In diesem Abschnitt diskutieren die Referenten die ONNX-Laufzeit-API, die sich im Vorschaumodus befindet und die Ausführung der ONNX-Laufzeit auf Android-Geräten ermöglicht. Sie erwähnen auch die Trainingsunterstützung, die derzeit explorativ ist und darauf abzielt zu sehen, ob die ONNX-Laufzeit verwendet werden kann, um bereits erstellte Modelle zu optimieren. Die Referenten demonstrieren dann die Verwendung der ONNX-Laufzeit auf einem YOLOv3-Objekterkennungsmodell und zeigen, dass die ONNX-Laufzeit vielseitig, effizient und nützlich für Fälle ist, die eine gute Leistung erfordern oder ein Modell über verschiedene Frameworks hinweg unterstützen müssen.

  • 00:45:00 In diesem Abschnitt des Videos demonstrieren die Moderatoren die ONNX Runtime, indem sie Bilder und ihre jeweiligen Klassen mit einem großen und komplizierten Modell identifizieren. Sie zeigen auch eine kurze Demo des Onnx Ecosystem Converter, der es Benutzern ermöglicht, Modelle aus verschiedenen Frameworks in Jupyter Notebook hochzuladen und zu konvertieren. Sie wandeln ein Dokumentenklassifizierungsmodell von CoreML, Apples Framework für maschinelles Lernen, in ONNX um und validieren seine Genauigkeit. Sie weisen darauf hin, dass die Umstellung eines Modells auf ONNX einmalige Kosten verursacht und ein effizienter Prozess ist.

  • 00:50:00 In diesem Abschnitt fassen die Referenten zusammen, was sie im Video behandelt haben, einschließlich der Vorteile der Verwendung von ONNX und ONNX Runtime, der verschiedenen Möglichkeiten zur Konvertierung von verschiedenen Frameworks in ONNX und der zunehmenden Akzeptanz von ONNX in ihren 26 Firmen. Sie danken ihrem Publikum für das Zuhören und drücken ihre Begeisterung aus, mit der Q&A-Sitzung fortzufahren.
ONNX and ONNX Runtime with Microsoft's Vinitra Swamy and Pranav Sharma_1
ONNX and ONNX Runtime with Microsoft's Vinitra Swamy and Pranav Sharma_1
  • 2020.07.30
  • www.youtube.com
Microsoft hosted an AI enthusiast’s meetup group in San Francisco in November 2019 focused on accelerating and optimizing machine learning models with ONNX a...
 

Jan-Benedikt Jagusch Christian Bourjau: Anwendungen für maschinelles Lernen mit ONNX schnell und einfach machen



Jan-Benedikt Jagusch Christian Bourjau: Anwendungen für maschinelles Lernen mit ONNX schnell und einfach machen

In diesem Video über maschinelles Lernen und Bereitstellung erörtern die Referenten die Herausforderungen bei der Einführung von Modellen in die Produktion, insbesondere die Schwierigkeit beim Beizen und Bereitstellen von Modellen. Sie stellen ONNX vor, ein universelles Dateiformat zum Exportieren von Modellen für maschinelles Lernen, und erklären, wie es dazu beitragen kann, Training und Inferenz zu entkoppeln und die Bereitstellung schneller und effizienter zu gestalten. Sie bieten eine Live-Demo mit scikit-learn und erklären, wie man eine Pipeline für maschinelles Lernen in das ONNX-Format konvertiert. Sie diskutieren auch die Einschränkungen von Docker-Containern für die Bereitstellung von Modellen für maschinelles Lernen und heben die Vorteile der Verwendung von ONNX hervor. Sie berühren das Thema Verschlüsselungsmodelle für zusätzliche Sicherheit und sprechen das Usability-Problem von ONNX an, das noch ein junges Ökosystem mit einigen kryptischen Fehlermeldungen ist.

  • 00:00:00 In diesem Abschnitt des Videos erörtern die Referenten die Bedeutung der Entkopplung des Modelltrainings von der Inferenz mit ONNX. Die Referenten stellen fest, dass 55 % der Unternehmen, die mit maschinellem Lernen begonnen haben, ihre Modelle nicht in die Produktion gebracht haben, und argumentieren, dass der größte Wert in der Automatisierung von Geschäftsprozessen liegt, indem Modelle in die Produktion gebracht werden. Sie stellen jedoch auch fest, dass die Bereitstellung von Modellen komplizierter ist, als es zunächst den Anschein haben mag, weshalb sie erörtern werden, wie ONNX helfen kann, diese Herausforderung zu meistern. Sie gehen auch durch den Prozess, wie ein maschinelles Lernprojekt normalerweise beginnt, sich entwickelt und dann mit den Bereitstellungsanforderungen kollidiert.

  • 00:05:00 In diesem Abschnitt erörtern die Referenten die Herausforderungen bei der Einführung von Modellen für maschinelles Lernen in die Produktion und konzentrieren sich dabei insbesondere auf die Schwierigkeiten beim Einlegen und Bereitstellen des Modells. Sie untersuchen die Probleme, die bei der Verwendung eines unfertigen Pakets wie z. B. einer Gurke zum Übertragen des Modells auftreten, und wie die richtigen Umgebungen und Abhängigkeiten installiert werden müssen, um das Modell erfolgreich in die Produktion zu laden. Sie adressieren auch das Problem, dass Modelle zu langsam für den Einsatz in der Produktion sind, was zu Änderungen und Optimierungen am Modell führt. Abschließend diskutieren sie die Notwendigkeit eines universellen Dateiformats zum Exportieren des Modells, wodurch es einfach ist, jede Laufzeitumgebung für die Bereitstellung zu verwenden.

  • 00:10:00 In diesem Abschnitt erörtern die Referenten das Konzept der Entkopplung des Trainings von der Vorhersagezeit mithilfe von Tools für das Training, um ein maschinelles Lernmodell in ein universelles Dateiformat wie ONNX zu exportieren, um die für die Bereitstellung verwendeten Tools freizugeben . Sie erklären, dass ONNX „der standardisierte Weg ist, Ihr gesamtes Modell zu beschreiben, einschließlich Ihres Feature-Engineerings, und es in einem Binärformat zu speichern“. Sie stellen auch fest, dass ONNX eine gute Option für diejenigen ist, die verschiedene Arten von Modellen für maschinelles Lernen haben, nicht nur für neuronale Netze. Sie betonen jedoch, dass ein Modell für maschinelles Lernen zur Verwendung von ONNX als Rechendiagramm mit Knoten beschrieben werden muss, die Operatoren sind, und Kanten, die Daten sind, die durch das Diagramm fließen, und dass ONNX stark mit Typinformationen und Form typisiert ist.

  • 00:15:00 In diesem Abschnitt erörtern die Redner die Besonderheiten von ONNX , das eine Reihe von Operatoren definiert, die verwendet werden müssen, um die Kompatibilität mit dem Format sicherzustellen. Zum Zeitpunkt dieses Vortrags gab es 175 Operatoren, darunter kompliziertere wie lineare Regressoren und echte Ensemble-Regressoren. ONNX gibt auch die Daten an, die zum Speichern jedes Operators erforderlich sind, wodurch die gesamte Datei in sich abgeschlossen ist und keine weiteren Abhängigkeiten erforderlich sind. Die Referenten betonen, dass alles, was in einem gerichteten azyklischen Graphen darstellbar ist, in ONNX konvertiert werden kann, nicht nur Modelle für maschinelles Lernen. Darüber hinaus kann die gesamte Pipeline in ONNX konvertiert werden, solange jeder Schritt als eigener gerichteter azyklischer Graph dargestellt werden kann.

  • 00:20:00 In diesem Abschnitt demonstrieren die Referenten, wie man einen einfachen Imputer und Regressor mit Numpy-Operationen erstellt, die leicht als Graph von Onyx-Operatoren definiert werden können. Indem jeder Knoten im scikit-learn-Graphen durch einen Graphen selbst ersetzt wird, kann scikit-learn in ein onix-Format konvertiert werden. Während etablierte Frameworks für maschinelles Lernen wie PyTorch, TensorFlow, Light GBM und XGBoost bereits Konverter zur Verfügung haben, müssen benutzerdefinierte Konverter für benutzerdefinierte Schätzer und Transformatoren geschrieben werden. Die Lernkurve ist jedoch steil, aber machbar, und es ist entscheidend, dass der benutzerdefinierte Code in ein Deck passt. Die Referenten bieten auch eine Live-Demo mit Trainingsdaten und einer Pipeline von scikit-learn, die dann in ein Onix-Format konvertiert wird.

  • 00:25:00 In diesem Abschnitt erklären Jan-Benedikt Jagusch und Christian Bourjau, dass ONNX stark typisiert ist und erste Informationen aus den bereitgestellten Daten benötigt. Um diesen Prozess zu vereinfachen, konvertieren sie die Typen einfach aus einem Pandas-Datenrahmen, indem sie Pandas-Datentypen ONNX-Datentypen zuordnen. Das ONNX-Modell ist dann vollständig in sich geschlossen und wird aus der Vorhersagelogik der Pipeline extrahiert. Das Data-Engineering-Team muss dies nur in eine Datei ausgeben und die ONNX-Laufzeit verwenden, um die Daten zu analysieren. Dies ist die einzige Abhängigkeit, unabhängig davon, ob das Datenmodell von TensorFlow, Python oder anderswo serialisiert wird. Die ONNX-Laufzeit stellt Python-Bindungen bereit, die die Vorhersagegeschwindigkeit um den Faktor zehn verbessern. Die Vorhersagegeschwindigkeit für einzelne Zeilen hat ebenfalls Priorität, da sie in Online-Umgebungen unerlässlich ist und nur 170 Millisekunden benötigt, was ähnlich wie bei Scikit-learn ist.

  • 00:30:00 In diesem Abschnitt erörtern die Referenten die Vorteile der Verwendung von Onyx zur Entkopplung der Schulungsumgebung von der Bereitstellungsumgebung. Sie erklären, dass Benutzer durch den Export von Modellen in das universelle Dateiformat von ONNX ihre Modelle mit einer Laufzeit interpretieren können, die die erforderlichen Leistungsmerkmale für den Einsatz in der realen Welt bietet. Die Referenten gehen auch auf eine Frage zur Verwendung von Docker-Containern ein und heben die Einschränkungen in Bezug auf Skalierbarkeit und Flexibilität hervor. Sie empfehlen, Onyx auf seine Fähigkeit zu prüfen, sowohl Leistung als auch Flexibilität zu bieten, mit dem Potenzial, Modelle zusätzlich zur Verbesserung der Bereitstellung zu archivieren.

  • 00:35:00 In diesem Abschnitt erörtern die Referenten die Einschränkungen bei der Verwendung von Docker für die Bereitstellung von Modellen für maschinelles Lernen und heben die Vorteile der Serialisierung von Modellen stattdessen in ONNX hervor. Während Docker für die Bereitstellung einer REST-API und in bestimmten Fällen arbeiten kann, umfasst das erzeugte Artefakt viele Schichten, was es schwierig macht, die mathematische Formulierung des Modells zu laden. Andererseits bietet die Serialisierung des Modells in ONNX eine reine Essenz des Modells, die für Menschen lesbar und einfach zu laden ist. Die Redner weisen darauf hin, dass ONNX zwar viele Vorteile hat, aber keine perfekte Lösung für alle Anwendungsfälle ist und einen gewissen Overhead erfordert, um benutzerdefinierte Schätzer und Transformatoren zu konvertieren. Darüber hinaus ist das Ökosystem noch relativ neu, und Benutzer müssen möglicherweise Zeit damit verbringen, Probleme zu beheben oder GitHub-Probleme durchzulesen. Abschließend erwähnen die Referenten kurz die Möglichkeit, ONNX-Modelle auf GPUs einzusetzen, was mit der Standard-ONNX-Laufzeit technisch möglich ist.

  • 00:40:00 In diesem Abschnitt diskutieren die Referenten die Möglichkeit, ONNX-Modelle zu verschlüsseln, um sie vor unbeabsichtigter Verwendung oder Reverse Engineering zu schützen. Sie erwähnen, dass es zwar möglich ist, die Koeffizienten aus dem Modell auszulesen, aber wenn es komplex ist, wird es schwierig, da ONNX die Betreiber- und Pipeline-Informationen nicht bewahrt. ONNX bietet bis zu einem gewissen Grad Sicherheit durch Verschleierung, ist jedoch nicht verschlüsselt. Sie erwähnen jedoch, dass es möglich ist, die Datei zur Verschleierung und weiteren Sicherheit in Maschinencode zu kompilieren. Die Referenten sprechen auch das Problem an, Vorverarbeitungsschritte mit E/A in die Datenbank einzufügen, was erfordern würde, dass sich alle Daten für den Instanziator innerhalb des ONNX-Diagramms in der Datenbank befinden. Schließlich diskutieren sie das Usability-Problem von Onyx, da die Fehlermeldungen kryptisch sein können, aber sie sind optimistisch, dass sich das Ökosystem angesichts seines jungen Alters und der Unterstützung durch Unternehmen verbessern wird.
Jan-Benedikt Jagusch Christian Bourjau: Making Machine Learning Applications Fast and Simple with...
Jan-Benedikt Jagusch Christian Bourjau: Making Machine Learning Applications Fast and Simple with...
  • 2022.05.12
  • www.youtube.com
Speaker:: Jan-Benedikt Jagusch Christian BourjauTrack: General: ProductionTaking trained machine learning models from inside a Jupyter notebook and deploying...
 

ONNX Runtime Azure EP für hybride Rückschlüsse auf Edge und Cloud



ONNX Runtime Azure EP für hybride Rückschlüsse auf Edge und Cloud

Das ONNX Runtime-Team hat seinen ersten Schritt in die hybride Welt veröffentlicht, indem es Entwicklern ermöglicht, eine einzige API für Edge- und Cloud-Computing mit dem Azure EP zu verwenden, wodurch Bedenken hinsichtlich der Gerätekonnektivität beseitigt werden und Entwicklern ermöglicht wird, zu dem von ihnen optimierten Cloud-Modell zu wechseln , Kosten sparen und Latenz reduzieren. Diese neue Funktion ermöglicht es Entwicklern, die Anwendungslogik zu aktualisieren und den Weg zu wählen, den sie über das Azure EP einschlagen möchten, was mehr Möglichkeiten und Leistung bietet. Das Team demonstriert die Bereitstellung von Kinderservern und Objekterkennungsmodellen sowie das einfache Testen des Endpunkts und die einfache Konfiguration von Onnx Runtime Azure. Die Referenten diskutieren auch die Möglichkeit, zwischen lokaler und Remote-Verarbeitung zu wechseln, und potenzielle Anwendungsfälle, einschließlich leistungsschwächerer und leistungsstärkerer Modelle. Das ONNX Runtime Azure EP kann vorab geladen und einfach mit den erforderlichen Paketen für die Bereitstellung konfiguriert werden, was zur Benutzerfreundlichkeit der Software beiträgt.

  • 00:00:00 In diesem Abschnitt wird das Azure EP als erster Schritt des ONNX-Runtime-Teams in die hybride Welt vorgestellt, um Entwicklern die Verwendung einer einzigen API für Edge- und Cloud-Computing zu ermöglichen. Auf diese Weise müssen sich Entwickler keine Gedanken über die Gerätekonnektivität machen und können auf das Cloud-Modell umsteigen, das sie optimiert haben und dort verwenden, wodurch Kosten und Latenzzeiten eingespart werden. Diese neue Funktion ermöglicht es Entwicklern, die Anwendungslogik zu aktualisieren und den Weg zu wählen, den sie über das Azure EP einschlagen möchten, wodurch sie mehr Möglichkeiten und Leistung erhalten. Insgesamt ist das ONNX-Runtime-Team gespannt, was aus der Entwickler-Community kommt und wie diese neue Funktion implementiert wird.

  • 00:05:00 In diesem Abschnitt demonstriert Randy Schrey, ein Mitwirkender an der neuen ONNX Runtime (ORT)-Version 1.14, einige der coolen Funktionen, die mit der Version geliefert werden. Zunächst zeigt er einen Endpunkt namens Azure Machine Learning, der als Serverseite für die Modelle dient. Er erörtert auch den Triton-Server, der zur Bereitstellung von Endpunkten verwendet wird, geteilt durch Nvidia, und seine beeindruckende Leistung und Stabilität. Schrey zeigt, wie ein Kinderserver bereitgestellt wird, und gibt einen Überblick darüber, wie er aussieht, einschließlich der Angabe des Namens, der Version und des Standorts des Modells. Er hebt auch die Ordnerstruktur hervor, die beim Bereitstellen eines Triton-Servers befolgt werden muss, und zeigt die Konfigurationsdatei, die beschreibt, wie das Modell die Eingabe und die Ausgabe erhält.

  • 00:10:00 In diesem Abschnitt erläutert der Referent die Struktur seines Ordners für die Bereitstellung von Objekterkennungsmodellen und erklärt, wie der Triton-Server das Modell für die Bereitstellung finden kann. Sie beantworten auch eine Frage zur Verwendung von Modellen, die auf Azure bereitgestellt werden, und erwähnen die aktuellen Einschränkungen von Trtis gegenüber Azure, wobei angegeben wird, dass es nur Triton-Server als Serverseite unterstützt. Der Referent bespricht dann das Testen des Endpunkts, den Prozess zum einfachen Installieren von Onnx Runtime Azure und wie sie Onnx Runtime Azure für Hybrid Inferencing auf Edge und Cloud verwenden können, um mit dem Online-Endpunkt von der Clientseite aus zu arbeiten. Der Referent stellt ein Skript bereit und erläutert einige der Konfigurationen, die zum Laden und Verwenden eines Modells mit Onnx Runtime Azure erforderlich sind.

  • 00:15:00 In diesem Abschnitt demonstrieren die Referenten, wie das ONNX Runtime Azure EP für hybride Inferenzen am Edge und in der Cloud verwendet wird. Sie zeigen, wie der Authentifizierungsschlüssel konfiguriert und die Inferenz ausgeführt wird, mit der Möglichkeit, zwischen lokaler und Remote-Verarbeitung zu wechseln, indem ein einziger Parameter im Code geändert wird. Sie diskutieren potenzielle Anwendungsfälle, wie z. B. die Wahl zwischen leistungsschwächeren und leistungsstärkeren Modellen, und stellen fest, dass die aktuelle Vorschauversion zwar den Triton-Inferenzserver erfordert, geplant ist jedoch, in Zukunft alle Arten von Bereitstellungsservern zu unterstützen.

  • 00:20:00 In diesem Abschnitt wird erklärt, dass das ONNX Runtime Azure EP vorab geladen und einfach mit den erforderlichen Paketen für die Bereitstellung konfiguriert werden kann. Diese Funktion trägt zur einfachen Bereitstellung und Verwendung der Software bei.
ONNX Runtime Azure EP for Hybrid Inferencing on Edge and Cloud
ONNX Runtime Azure EP for Hybrid Inferencing on Edge and Cloud
  • 2023.02.14
  • www.youtube.com
0:00 What is Azure EP?5:00 How to Setup a Triton Inference Server Managed Endpoint in Azure12:45 Installing the ONNX Runtime Azure EP Package13:35 Using the ...
 

INT8-Inferenz von quantisierungsbewussten trainierten Modellen mit ONNX-TensorRT




INT8-Inferenz von quantisierungsbewussten trainierten Modellen mit ONNX-TensorRT

Dheeraj Peri, Deep Learning Software Engineer bei NVIDIA, erklärt die Grundlagen der Quantisierung und wie TensorRT quantisierte Netzwerke durch verschiedene Fusionen unterstützt. Sie konzentrieren sich auf Modelle, die mit dem TensorFlow 2.0-Framework trainiert wurden, und darauf, wie man Post-Training Quantization (PTQ) und Quantization-Aware Training (QAT) durchführt. Der Prozess der Bereitstellung eines Modells, das mit dem Nvidia TF2-Quantisierungs-Toolkit mit ONNX-TensorRT trainiert wurde, wird erläutert, und die Genauigkeits- und Latenzergebnisse werden für verschiedene ResNet-Modelle präsentiert. Insgesamt wird der End-to-End-QAT-Workflow von TensorFlow bis zur TensorRT-Bereitstellung über ONNX-TensorRT demonstriert.

  • 00:00:00 In diesem Abschnitt erläutert Dheeraj, ein Softwareentwickler für Deep Learning bei NVIDIA, die Grundlagen der Quantisierung und wie TensorRT quantisierte Netzwerke durch verschiedene Fusionen unterstützt. Er erklärt, dass Quantisierung der Prozess der Umwandlung kontinuierlicher Werte in einen diskreten Satz von Werten ist, wobei lineare oder nichtlineare Skalierungstechniken verwendet werden. Sie konzentrieren sich auf Modelle, die mit dem TensorFlow 2.0-Framework trainiert werden, und auf die Durchführung von Post-Training-Quantisierung (PTQ) und quantisierungsbewusstem Training (QAT). Dhiraj hebt auch die Unterschiede zwischen dem Quantisierungs-Toolkit von NVIDIA und dem TF-Mod-Toolkit hervor, bei dem die Knoten in den Faltungsschichten unterschiedlich platziert sind.

  • 00:05:00 In diesem Abschnitt wird der Prozess der Bereitstellung eines Modells erläutert, das mit dem Nvidia TF2-Quantisierungs-Toolkit mit ONNX-TensorRT trainiert wurde. Der Prozess umfasst die Quantisierung des vortrainierten TensorFlow 2.0-Modells mit dem Nvidia-Toolkit, die Feinabstimmung für eine kleine Anzahl von Epochen, um den Quantisierungsprozess zu simulieren, und die anschließende Konvertierung des Modells in ein ONNX-Format. Das ONNX-Diagramm wird dann verwendet, um die TensorRT-Engine mithilfe der TensorRT-API zu generieren. Die Genauigkeits- und Latenzergebnisse für verschiedene ResNet-Modelle werden vorgestellt, und es wird beobachtet, dass quantisierungsbewusste trainierte Modelle (QAT) während der Inferenz eine bessere Genauigkeit aufweisen als Quantisierungsmodelle nach dem Training (PTQ). Die QAT-Modelle zeigen eine ähnliche Latenz im Vergleich zu PTQ-Modellen, aber sie hängt von der Platzierung der QDQ-Knoten und ihrer Fusionen ab. Insgesamt wird der End-to-End-QAT-Workflow von TensorFlow bis zur TensorRT-Bereitstellung über ONNX-TensorRT demonstriert.
INT8 Inference of Quantization-Aware trained models using ONNX-TensorRT
INT8 Inference of Quantization-Aware trained models using ONNX-TensorRT
  • 2022.07.14
  • www.youtube.com
Accelerating Deep Neural Networks (DNN) inference is an important step in realizing latencycritical deployment of real-world applications such as image class...
 

Praktische Post-Training-Quantisierung eines ONNX-Modells



Praktische Post-Training-Quantisierung eines ONNX-Modells

Das Video erläutert, wie die Quantisierung implementiert wird, um die Größe eines TensorFlow-Modells auf ein quantisiertes ONNX-Modell zu reduzieren. Das ONNX-Modell ist deutlich kleiner und kann auf einer CPU schneller ausgeführt werden. Der Autor stellt Codeschnipsel und Anleitungen bereit, wie man dynamische Quantisierung implementiert und wie man die CPU-Geschwindigkeit überprüft.

Das Video zeigt den Prozess der Quantisierung eines Modells für maschinelles Lernen, um es schneller und leichter zu machen, wobei anerkannt wird, dass dies zu einem Rückgang der Genauigkeit führen kann. Die ONNX- und TensorFlow-Modelle werden mit einem quantisierten Modell verglichen, wobei letzteres schneller und leichter ist. Allerdings profitiert das quantisierte Modell nicht so stark von der Verwendung von GPUs wie die anderen Modelle. Die Genauigkeit des quantisierten Modells wird dann bewertet und es wird festgestellt, dass es nur einen leichten Abfall aufweist. Der Prozess der Visualisierung von ONNX-Modellen wird ebenfalls diskutiert, wobei die Verwendung der Loot Rodas Neutron-App demonstriert wird. Der Gesamtprozess führt zu einer Reduzierung der Modellgröße von einem Gigabyte auf 83 Megabyte bei minimalem Genauigkeitsverlust.

Practical Post Training Quantization of an Onnx Model
Practical Post Training Quantization of an Onnx Model
  • 2023.02.02
  • www.youtube.com
In this section we continue our human emotions detection project. We shall focus on practically quantizing our already trained model with Onnxruntime.Colab N...