Lernen mit ONNX für den Handel - Seite 7

 

Stellen Sie ML-Modelle mit Azure Functions und ONNX Runtime bereit



Stellen Sie ML-Modelle mit Azure Functions und ONNX Runtime bereit

Das Video zeigt, wie Sie ein maschinelles Lernmodell mithilfe von ONNX Runtime und Azure Functions in VS Code bereitstellen. Der Prozess umfasst das Erstellen eines Azure-Funktionsprojekts, das Aktualisieren des Codes mit dem Bewertungsskript, das Laden des Modells aus dem Modellpfad, das Erstellen einer Inferenzsitzung mit ONNX Runtime und das Zurückgeben der Ausgabe. Das Video zeigt auch, wie Sie die Funktion in Azure bereitstellen und dort testen. Diese Methode ermöglicht eine effiziente Bereitstellung von Modellen über Azure Functions und die ONNX-Laufzeit und ermöglicht einen einfachen Zugriff auf die Ergebnisse.

  • 00:00:00 In diesem Abschnitt zeigt das Video, wie Sie ein maschinelles Lernmodell mithilfe von ONNX Runtime und Azure Functions in VS Code bereitstellen. Der Prozess umfasst das Erstellen eines Azure-Funktionsprojekts mit Python und HTTP-Trigger, das Aktualisieren des Codes mit dem Score-Skript, das Ändern der Größe und Umgestaltung des Bilds und dessen Vorverarbeitung, das Laden des Modells aus dem Modellpfad, das Erstellen einer Inferenzsitzung mit ONNX Runtime und Rückgabe der Ausgabe. Nachdem Sie die Funktionalität des Codes überprüft haben, zeigt das Video, wie Sie die Funktion in Azure bereitstellen und dort testen.

  • 00:05:00 In diesem Abschnitt demonstriert der Sprecher, wie die bereitgestellte Funktion getestet wird, indem die Funktions-URL abgerufen und in den Test eingefügt wird. Der Referent demonstriert, wie die bereitgestellte Funktion verwendet werden kann, um über Azure Functions und die ONNX-Laufzeit einfach ein Ergebnis zu erhalten, wodurch eine effiziente Bereitstellung von Modellen ermöglicht wird.
Deploy ML Models with Azure Functions and ONNX Runtime
Deploy ML Models with Azure Functions and ONNX Runtime
  • 2022.01.21
  • www.youtube.com
In this video we will go step-by-step do deploy the ImageNet model using VS Code, Azure Functions, and ONNX Runtime.Doc link: https://docs.microsoft.com/azur...
 

Bereitstellung auf dem Desktop mit ONNX



Bereitstellung auf dem Desktop mit ONNX

Im Video „Deploying on Desktop with ONNX“ erörtert Alexander Zhang die Herausforderungen der Bereitstellung auf dem Desktop und die von ONNX angebotenen Lösungen. Die Unterstützung von Desktops hat ihre Herausforderungen, da es weniger Kontrolle über Systemeinschränkungen auf der GPU oder dem Betriebssystem sowie eine erhebliche Vielfalt an Desktop-GPUs gibt. Um diesen Herausforderungen zu begegnen, verlässt sich Alexander auf unterschiedliche Inferenzbibliotheken für jeden der von Topaz Labs unterstützten Hardwareanbieter. ONNX wird verwendet, um für alle diese Bibliotheken dasselbe Modell anzugeben, wodurch relativ konsistente Ergebnisse auf unterschiedlicher Hardware bereitgestellt werden, während manuelle Arbeit an jedem Modell eingespart wird. ONNX-Konvertierungen können jedoch verschiedene Probleme verursachen, wie z. B. Mehrdeutigkeit, Inkonsistenz und Qualitätsabweichungen, sodass Entwickler Testkonvertierungen durchführen und explizit die neuesten ONNX-Offsets verwenden müssen. Um den Durchsatz durch Batching zu maximieren und potenziell auf mehreren Geräten und Bibliotheken parallel auszuführen, teilen sie Bilder in Blöcke auf, wählen basierend auf dem VRAM eine geeignete Größe aus und führen die Blöcke dann durch Inferenz aus.

  • 00:00:00 In diesem Abschnitt erörtert Alexander Zhang die Herausforderungen bei der Bereitstellung auf dem Desktop und die von ONNX angebotenen Lösungen. Um sich in bestehende Arbeitsabläufe einzufügen und gleichzeitig die Leistungserwartungen zu erfüllen und mit den Fortschritten Schritt zu halten, müssen die neuesten und hochwertigsten verfügbaren Bildmodelle bereitgestellt werden. Die Unterstützung von Desktops hat ihre Herausforderungen, da es weniger Kontrolle über Systemeinschränkungen auf der GPU oder dem Betriebssystem sowie eine erhebliche Vielfalt an Desktop-GPUs gibt. Um diesen Herausforderungen zu begegnen, verlässt sich Alexander auf unterschiedliche Inferenzbibliotheken für jeden der von Topaz Labs unterstützten Hardwareanbieter. ONNX wird verwendet, um für alle diese Bibliotheken dasselbe Modell anzugeben, wodurch relativ konsistente Ergebnisse auf unterschiedlicher Hardware bereitgestellt werden, während manuelle Arbeit an jedem Modell eingespart wird. ONNX-Konvertierungen können jedoch verschiedene Probleme verursachen, wie z. B. Mehrdeutigkeit, Inkonsistenz und Qualitätsabweichungen, sodass Entwickler Testkonvertierungen durchführen und explizit die neuesten ONNX-Offsets verwenden müssen.

  • 00:05:00 In diesem Abschnitt erklärt der Sprecher, dass ein Grund dafür, dass sie viele Konvertierungen selbst vornehmen, anstatt vorhandene Bibliotheken oder Wrapper zu verwenden, die Leistung ist. Sie betonen auch die Bedeutung der Flexibilität, um bei Bedarf für ihre eigenen Modelle und Leistungsanforderungen zu optimieren, ohne verpflichtet zu sein, modellspezifischen Code für jedes Modell zu schreiben. Um den Durchsatz durch Batching zu maximieren und potenziell auf mehreren Geräten und Bibliotheken parallel auszuführen, teilen sie Bilder in Blöcke auf, wählen basierend auf dem VRAM eine geeignete Größe aus und führen die Blöcke dann durch Inferenz aus. Sie kommen jedoch zu dem Schluss, dass es weiterhin Schwierigkeiten gibt, sicherzustellen, dass sich neue Modellarchitekturen in allen Bibliotheken gut verhalten, aber sie hoffen weiterhin, dass ihre Strategie diese Herausforderungen überwinden und konsistente Verbesserungen der Bildqualität liefern wird.
Deploying on Desktop with ONNX
Deploying on Desktop with ONNX
  • 2022.07.13
  • www.youtube.com
ORT provides the foundations for inference for Adobe's audio and video products (Premiere Topaz Labs develops deep learning based image quality software for ...
 

Bereitstellung von ONNX-Modellen auf Flink – Isaac Mckillen-Godfried



Bereitstellung von ONNX-Modellen auf Flink – Isaac Mckillen-Godfried

Isaac McKillen-Godfried erörtert die Herausforderungen bei der Integration modernster Machine-Learning-Modelle aus Forschungsumgebungen in die Produktion für eine effektive Nutzung. Ziel des Vortrags ist es, den Transport von Modellen aus Forschungsumgebungen in die Produktion zu erleichtern und die Einbindung von State-of-the-Art-Modellen in verschiedene Plattformen zu ermöglichen. Er erläutert die Vorteile des ONNX-Formats und die verschiedenen Möglichkeiten, Deep-Learning-Modelle in Java zu integrieren. Darüber hinaus erörtert er die Bereitstellung von ONNX-Modellen auf Flink mit Jep, einem in Java geschriebenen Python-Interpreter, und erläutert ein Open-Source-Projekt, das es ermöglicht, Daten aus dem Flink-Twitter-Connector zu konsumieren und dann nicht-englische Tweets zu filtern. Der Vortrag beleuchtet auch die aktuelle reine CPU-Implementierung der Bereitstellung von ONNX-Modellen auf Flink und das Potenzial für zukünftige GPU- oder Hybrid-Implementierungen.

  • 00:00:00 In diesem Abschnitt des Videos erörtert der Referent die Herausforderungen bei der Integration modernster maschineller Lernmodelle aus Forschungsumgebungen in die Produktion für eine effektive Nutzung. Er erwähnt, dass die meisten gängigen Frameworks in Java und Scala geschrieben sind, während der Großteil des Codes und der Papiere in Python geschrieben ist. Ziel des Vortrags ist es, den Transport von Modellen aus Forschungsumgebungen in die Produktion zu erleichtern und die Einbindung von State-of-the-Art-Modellen in verschiedene Plattformen zu ermöglichen. Der Referent spricht auch über die Herausforderungen, darunter die schlechte Python-Unterstützung in Flink und die Schwierigkeit, ONNX in Java einzubinden. Er erwähnt auch die Popularität von PyTorch in der Forschungsgemeinschaft und seine zunehmende Implementierung in Frameworks für maschinelles Lernen.

  • 00:05:00 In diesem Abschnitt geht der Referent auf das ONNX-Format und seine Vorteile ein. ONNX ist ein offenes Austauschformat für neuronale Netzwerke, das den einfachen Export und Import von Modellen aus verschiedenen Frameworks ermöglicht. Das Ziel von ONNX ist es, das Ausführen von Modellen in verschiedenen Sprachen und Frameworks zu ermöglichen, was es zu einem wertvollen Werkzeug für Entwickler macht. Darüber hinaus spricht der Referent über verschiedene ONNX-Frameworks und Tools, die für den Export und Import von Modellen verfügbar sind. Sie führen auch eine Scorecard ein, die die Betriebsunterstützung in ONNX misst, wobei TensorFlow und Caffe2 beträchtliche Unterstützung erhalten. Anschließend erörtert der Referent die verschiedenen Optionen zur Integration von Deep-Learning-Modellen in Java, einschließlich der Erstellung eines Microservices, Java Embedded Python und der Ausführung von ONNX-Back-End-JVM-basierten Frameworks.

  • 00:10:00 In diesem Abschnitt werden die Einschränkungen bei der Verwendung von Java mit ONNX-Modellen erörtert, einschließlich der eingeschränkten Unterstützung neuronaler Netzwerkoperationen in Frameworks wie Meno und Vespa. Der Exportprozess kann auch schwierig und zeitaufwändig sein, und es kann erforderlich sein, Modelle vollständig neu zu trainieren. Eine Lösung besteht darin, Async und Microservices zu verwenden, aber dieser Ansatz erfordert die Skalierung und Wartung eines separaten Dienstes. Ein weiterer diskutierter Ansatz ist die Verwendung von Java Embedded Python (JEP), das die Verwendung jeder Python-Bibliothek ermöglicht und mit Frameworks wie Keras schnell läuft. Es können jedoch Probleme mit gemeinsam genutzten Bibliotheken auftreten, die behoben werden müssen.

  • 00:15:00 In diesem Abschnitt des Videos erörtert der Sprecher die Bereitstellung von ONNX-Modellen auf Flink und die potenziellen Einrichtungsprobleme, die auftreten können. Während es möglich ist, Java-Primitives in Python zu übertragen und umgekehrt, kann es Probleme beim Einrichten von Abhängigkeiten geben. Der Referent empfiehlt, ein benutzerdefiniertes Docker-Image zu erstellen, das sowohl Flink- als auch Python-Pakete enthält, um die Einrichtung zu vereinfachen. Der Referent beleuchtet auch Flair, ein PyTorch-Framework für NLP-Aufgaben, und erklärt, wie man es mit JEP in Flink integriert. Der Beispielcode verwendet eine Rich-Map-Funktion, um die Ergebnisse von Flair als Zeichenfolge zurückzugeben.

  • 00:20:00 In diesem Abschnitt spricht der Sprecher über die Bereitstellung von ONNX-Modellen auf Flink mit Jep, einem in Java geschriebenen Python-Interpreter. Der Referent demonstriert ein Beispiel für die Durchführung einer Stimmungsanalyse von Twitter-Daten mit dem Flink-Twitter-Konnektor und erklärt, wie wichtig es ist, das Modell im offenen Teil der Funktion zu laden, um zu verhindern, dass es bei jeder Iteration neu geladen wird. Sie zeigen auch, wie man Variablen in Python mit Jep setzt und das Ergebnis als String an Java zurückgibt. Der Referent hebt die Verwendung eines gemeinsamen Interpreters in Jep hervor, um Fehler bei der Verwendung von Python-Modulen zu vermeiden, und schlägt vor, das Ergebnis zur einfacheren Verarbeitung in Java in JSON zu konvertieren.

  • 00:25:00 In diesem Abschnitt spricht Isaac McKillen-Godfried über ein Open-Source-Projekt, das es ermöglicht, Daten aus dem Flink-Twitter-Connector zu konsumieren und dann nicht-englische Tweets zu filtern. Die Daten würden dann durch Multitasking-Named-Entity-Recognition-Modelle verarbeitet, die mehrere Sprachen und spezifische Sprachmodelle verarbeiten können. Benannte Entitätenerkennung und Sentimentanalyse würden erfolgen, bevor sie in Tabellen umgewandelt und mithilfe von Abfragen nach Entität und Sentiment gruppiert würden. Durch die Integration von Deep Learning und anderen Modellen in Flink kann eine Echtzeitansicht benannter Entitäten und ihrer Stimmung in Twitter-Text eingesehen werden. Obwohl onnx-Backends nicht ausgereift sind, spart es Zeit, da Code konvertiert und neu geschrieben werden muss, und das Ausführen des Modells auf einem Cluster ist schnell. McKillen-Godfried plant, in naher Zukunft Benchmarks durchzuführen, um den Latenzanstieg zu messen.

  • 00:30:00 In diesem Abschnitt erörtert Isaac Mckillen-Godfried die aktuelle reine CPU-Implementierung der Bereitstellung von ONNX-Modellen auf Flink und das Potenzial für zukünftige GPU- oder Hybridimplementierungen, die den Prozess weiter beschleunigen könnten. Er merkt an, dass er das Modell nur auf CPUs getestet und die Möglichkeiten zur Effizienzsteigerung durch GPU-Nutzung noch nicht erforscht hat.
Deploying ONNX models on Flink - Isaac Mckillen-Godfried
Deploying ONNX models on Flink - Isaac Mckillen-Godfried
  • 2019.07.08
  • www.youtube.com
Deploying ONNX models on FlinkThe Open Neural Network exchange format (ONNX) is a popular format to export models to from a variety of frameworks. It can han...
 

Bereitstellen des Tiny YOLOv2 ONNX-Modells auf Jetson Nano mit DeepStream



Bereitstellen des Tiny YOLOv2 ONNX-Modells auf Jetson Nano mit DeepStream

Dieses Video zeigt die Effizienz der Verwendung eines vortrainierten Tiny YOLOv2-Modells im ONNX-Format zur gleichzeitigen Verarbeitung von vier Videostreams.
Die Streams stammen aus vier verschiedenen Dateien und werden auf Jetson Nano mit dem DeepStream SDK verarbeitet. Bei der parallelen Verarbeitung aller vier Videos erreichte das System eine FPS von etwa 6,7.

https://github.com/thatbrguy/Deep-Stream-ONNX

Deploying Tiny YOLOv2 ONNX model on Jetson Nano using DeepStream
Deploying Tiny YOLOv2 ONNX model on Jetson Nano using DeepStream
  • 2019.11.18
  • www.youtube.com
This video demonstrates the performance of using a pre-trained Tiny YOLOv2 model in the ONNX format on four video streams.Blog: https://towardsdatascience.co...
 

Die ONNX Runtime-Inferenz-Engine ist in der Lage, Modelle für maschinelles Lernen in verschiedenen Umgebungen auszuführen



ONNX-Laufzeit

Die ONNX Runtime ist eine Open-Source-Inferenz-Engine, die für Leistung, Skalierbarkeit und Erweiterbarkeit optimiert ist und in der Lage ist, neue Operatoren auszuführen, bevor sie standardisiert werden. Das ONNX-Format ermöglicht die einfache Darstellung und Bereitstellung von Modellen, die mit bevorzugten Tools auf gemeinsame Weise entwickelt wurden. Microsoft ist eine Partnerschaft mit Xilinx eingegangen, um den Ausführungsanbieter für die Vitis-KI-Softwarebibliothek zu entwickeln, die KI-Inferenzen und -Beschleunigung auf Xilinx-Hardwareplattformen ermöglicht. Das Vitis AI-Toolkit besteht aus IP-Tools, Bibliotheken, Modellen und Beispieldesigns für FPGA-Entwickler, wobei Benchmark-Zahlen die Spitzenbeschleunigung für raumbezogene Bildgebungslösungen zeigen. Der Vitis-KI-Ausführungsanbieter kann aus der Quelle erstellt oder über eine vorgefertigte Softwarebibliothek bereitgestellt werden, die bald im Azure Marketplace veröffentlicht wird.

  • 00:00:00 In diesem Abschnitt stellt Manash Goswami, Principal Program Manager für AI Frameworks bei Microsoft, die ONNX Runtime vor, eine Open-Source-Inferenz-Engine, die zum Ausführen von ONNX-Modellen verwendet wird. Das ONNX-Format ermöglicht es Data-Science-Teams, ihre bevorzugten Tools für die Modellentwicklung zu verwenden und gleichzeitig sicherzustellen, dass das Modell auf eine gemeinsame und leicht ausführbare Weise dargestellt und bereitgestellt werden kann. Die ONNX-Laufzeit ist für Leistung, Erweiterbarkeit und Skalierbarkeit optimiert und unterstützt benutzerdefinierte Operatoren, wodurch sie in der Lage ist, neue Operatoren auszuführen, bevor sie standardisiert werden. Die Laufzeit ist abwärts- und aufwärtskompatibel, und ihre Ausführungsanbieterschnittstelle ermöglicht die Ausführung von ML-Modellen auf verschiedenen Hardwareplattformen. Microsoft ist eine Partnerschaft mit Xilinx eingegangen, um den Ausführungsanbieter für die Vitis-KI-Softwarebibliothek aufzubauen, die ONNX-Modelle auf der U250-FPGA-Plattform von Xilinx ausführt.

  • 00:05:00 In diesem Abschnitt lernen wir die Vitis AI-Softwarebibliothek kennen, die Xilinx-Entwicklungsplattform, die auf KI-Inferenz auf Xilinx-Hardwareplattformen spezialisiert ist. Das U250-FPGA ist für die Verwendung mit dem Vitis AI-Software-Stack in der privaten Vorschau in Azure als NP-VMs-Warteschlange für Benutzer verfügbar. Das Vitis AI-Toolkit besteht aus optimierten IP-Tools, Bibliotheken, Modellen und Beispieldesigns, die Entwickler mit FPGAs verwenden können, um KI-Inferenz und -Beschleunigung zu kombinieren. Peakspeed, ein Startup, das Geodatenanalyselösungen anbietet, integriert ONNX Runtime und den Vitis-KI-Stack mit der ArcGIS Pro-Anwendung von Esri, um die weltweit schnellsten Geodaten-Bildgebungslösungen zu entwickeln. Peakspeed beschleunigte erfolgreich den geospatialen Korrektur- oder Orthorektifizierungsprozess auf CPUs und zeichnete Benchmark-Zahlen auf, bei denen TrueView, das auf einem Azure NP-hosting Xilinx U250 FPGA ausgeführt wird, mit demselben Algorithmus verglichen wurde, der auf einer Xeon Platinum-CPU ausgeführt wird.

  • 00:10:00 In diesem Abschnitt erklärt Manash, wie Entwickler und Kunden ihre Anwendungen mithilfe von ONNX Runtime und dem Vitis AI-Stack mit Deep Learning ausstatten können, um auf FPGA-Endpunkten in Azure sowie vor Ort mit Xilinx U250-Hardware zu beschleunigen. Er hebt auch hervor, dass Entwickler den Vitis-KI-Ausführungsanbieter mit ONNX Runtime aus der Quelle erstellen können, und Xilinx wird in Kürze ein VM-Image im Azure Marketplace veröffentlichen, in dem alle vorgefertigten Softwarebibliotheken an einem Ort integriert sind, um eine einfache Bereitstellung in der Azure NP-VM zu ermöglichen.
ONNX Runtime
ONNX Runtime
  • 2020.07.07
  • www.youtube.com
ONNX Runtime inference engine is capable of executing ML models in different HW environments, taking advantage of the neural network acceleration capabilitie...
 

Stellen Sie Transformer-Modelle im Browser mit #ONNXRuntime bereit



Stellen Sie Transformer-Modelle im Browser mit #ONNXRuntime bereit

Das Video zeigt, wie ein optimiertes BERT-Modell mithilfe von ONNXRuntime in einem Browser optimiert und bereitgestellt wird. Der Moderator zeigt, wie Sie das PyTorch-Modell mithilfe der Transformers-API in das ONNX-Format konvertieren, ONNXRuntime verwenden, um das Modell zur Größenreduzierung zu quantisieren, und eine Inferenzsitzung erstellen. Das Video behandelt auch die notwendigen Schritte zum Importieren von Paketen in JavaScript mithilfe von WebAssembly und wie Texteingaben durch das transformierte Modell zur Emotionsklassifizierung ausgeführt werden. Trotz einer geringeren Vorhersagegenauigkeit ist die kleinere Modellgröße ideal für die Bereitstellung in einem Browser. Links zum Modell, zu Datensätzen, zum Quellcode und zu einem Blogbeitrag werden bereitgestellt.

  • 00:00:00 In diesem Abschnitt demonstriert der Videomoderator, wie Transformer-Modelle operationalisiert werden, und zeigt das Endprojekt, das ein optimiertes und in einem Browser bereitgestelltes Transformer-Modell enthält. Das im Projekt verwendete Modell ist ein optimiertes Bert-Modell, das von Microsoft destilliert wurde, um seine Größe zu reduzieren und testunabhängig zu machen. Der Emotionsdatensatz, der zur Feinabstimmung des Modells verwendet wird, ist auf dem Hugging-Face-Hub verfügbar. Der Referent geht durch den Feinabstimmungsprozess mithilfe der Transformers-API und zeigt, wie das PyTorch-Modell mithilfe des integrierten Konvertierungstools von Transformers in das ONNX-Format konvertiert wird. Schließlich wird das ONNX-Runtime-Webpaket für die Inferenz in JavaScript verwendet, wobei je nach erforderlichen Operatoren unterschiedliche Operationssets ausgewählt werden können.

  • 00:05:00 In diesem Abschnitt erläutert das Video, wie Transformer-Modelle im Browser mit ONNXRuntime bereitgestellt werden. Zuerst erklärt das Video, wie ONNXRuntime verwendet wird, um das Modell zu quantisieren, um seine Größe zu reduzieren, wonach eine Inferenzsitzung sowohl für das nicht quantisierte als auch für das quantisierte Modell erstellt wird. Das Video zeigt dann, wie die erforderlichen Pakete mithilfe von WebAssembly in JavaScript importiert und Texteingaben codiert werden, bevor sie durch das ONNXRuntime-Modell ausgeführt werden. Die Demo zeigt, wie das transformierte Modell verwendet werden kann, um verschiedene Emotionen bei einem Eingabetext vorherzusagen. Trotz eines Rückgangs der Vorhersagegenauigkeit kommt das Video zu dem Schluss, dass die reduzierte Modellgröße es ideal für den Einsatz im Internet macht.

  • 00:10:00 In diesem Abschnitt erklärt der Moderator, wie es ihnen gelang, ein großes Transformatormodell zu nehmen, es zu destillieren und zu quantisieren und ONNX Runtime zu verwenden, um Inferenzen am Edge durchzuführen. Sie bieten auch Links zu den verwendeten Modellen und Datensätzen sowie den Quellcode und einen Blogbeitrag zur Demo.
Deploy Transformer Models in the Browser with #ONNXRuntime
Deploy Transformer Models in the Browser with #ONNXRuntime
  • 2022.04.01
  • www.youtube.com
In this video we will demo how to use #ONNXRuntime web with a distilled BERT model to inference on device in the browser with #JavaScript. This demo is base...
 

Open Neural Network Exchange (ONNX) im Unternehmen: Wie Microsoft maschinelles Lernen skaliert



Open Neural Network Exchange (ONNX) im Unternehmen: Wie Microsoft ML skaliert – BRK3012

Der Open Neural Network Exchange (ONNX) wird als Lösung für Herausforderungen bei der Bereitstellung von Modellen für maschinelles Lernen in der Produktion eingeführt, einschließlich der Verwaltung mehrerer Schulungsframeworks und Bereitstellungsziele, wobei Microsoft ONNX bereits weitgehend für Produkte wie Bing, Bing-Anzeigen und Office 365 einsetzt ONNX ermöglicht die Skalierbarkeit und Wartung von Modellen für maschinelles Lernen sowie erhebliche Leistungsverbesserungen und Kosteneinsparungen, die auf die Verwendung von Hardwarebeschleunigern wie GPUs zurückzuführen sind. Darüber hinaus umfasst das ONNX-Ökosystem Partner wie Intel für die Laufzeitoptimierung mit leicht verfügbaren Entwicklungskits und Quantisierungstechniken, die verfügbar sind, um FP32-Modelle in Datentypen mit geringerer Genauigkeit umzuwandeln, was zu einer höheren Effizienz führt. Die Referenten heben auch die Vorteile der Verwendung von ONNX für Edge-Computing hervor, da die Laufzeit flexibel ist und Modelle auf verschiedenen Hardwareplattformen bereitgestellt werden können.

  • 00:00:00 In diesem Abschnitt erörtern die Referenten das Ausmaß der Machine-Learning-Initiativen von Microsoft, darunter über 180 Millionen monatlich aktive Benutzer in Office 365 und Machine-Learning-Technologie, die auf Hunderten von Millionen von Windows-Geräten bereitgestellt wird. Sie erwähnen auch, dass Microsoft über sechs Frameworks für maschinelles Lernen verwendet und dass es Herausforderungen bei der Bereitstellung von Modellen für maschinelles Lernen in der Produktion gibt. Sie stellen ONNX und ONNX Runtime als Lösungen für diese Herausforderungen vor, die mit Hardwarebeschleunigern wie Intel und NVIDIA und auf Azure Machine Learning verwendet werden können.

  • 00:05:00 In diesem Abschnitt des Videos erörtert der Referent die Herausforderungen, die sich ergeben, wenn Modelle für maschinelles Lernen trainiert und in der Produktion bereitgestellt werden. Bei so vielen unterschiedlichen Schulungsframeworks und Bereitstellungszielen wird es schwierig, eine effiziente Anwendungsleistung zu verwalten und aufrechtzuerhalten. Um dieses Problem anzugehen, führt Microsoft ONNX (Open Neural Network Exchange) ein, einen Industriestandard, der die Konvertierung von Modellen für maschinelles Lernen in das ONNX-Format ermöglicht, unabhängig vom Framework, das für das Training verwendet wird. Dies ermöglicht die Bereitstellung von ONNX-Modellen in jedem unterstützten Framework, was zu einer flexibleren und skalierbareren Lösung führt. Darüber hinaus baut Microsoft ein starkes Ökosystem von Partnern auf, um ONNX zu unterstützen und seinen Erfolg als Industriestandard sicherzustellen.

  • 00:10:00 In diesem Abschnitt erörtert der Referent reale Produktionsanwendungsfälle von Open Neural Network Exchange (ONNX) und ONNX-Laufzeit, um zu zeigen, wie sie den Produkten und Kunden von Microsoft einen geschäftlichen Mehrwert bringen. Einige Produkte von Microsoft, wie Bing, Bing Ads und Office 365, haben ONNX und die ONNX-Laufzeit bereits weitgehend übernommen und deutliche Verbesserungen bei der Modellleistung und reduzierter Latenz erlebt. Mit ONNX und ONNX Runtime beispielsweise hat die Grammatikprüfungsfunktion von Office 365 eine 14,6-fache Leistungssteigerung erfahren, was zu reduzierten Kosten und Latenzzeiten führt. Ein anderer Anwendungsfall, OCR, hat ebenfalls erheblich von ONNX und der ONNX-Laufzeit profitiert.

  • 00:15:00 In diesem Abschnitt erörtert der Referent, wie Microsoft Open Neural Network Exchange (ONNX) verwendet, um maschinelles Lernen in verschiedenen Szenarien zu skalieren, einschließlich der Verbesserung der Qualität und Leistung ihres Azure Cognitive Services OCR-Community-Dienstes sowie der Verbesserung ihre Suchqualität und ermöglichen neue Szenarien wie Fragen und Antworten mit persönlichen Assistenten. Der Redner erwähnt auch, wie ONNX und ONNX Runtime die Geschwindigkeit von Modellen für maschinelles Lernen um das 3,5-Fache bzw. 2,8-Fache verbessert haben, was ihren Produktteams einen großen Mehrwert bringt. Sie betonen auch, wie wichtig es ist, maschinelle Lernmodelle zu trainieren, um die semantische Bedeutung von Bildern für eine verbesserte Multimedia-Suche wirklich zu verstehen.

  • 00:20:00 In diesem Abschnitt erörtern die Referenten die Verwendung von Open Neural Network Exchange (ONNX)-Modellen in Microsoft-Produkten, insbesondere der visuellen Suchfunktion von Bing. ONNX ermöglicht die Skalierung und Wartung von Modellen für maschinelles Lernen sowie erhebliche Leistungsverbesserungen und Kosteneinsparungen, die durch den Einsatz von Hardwarebeschleunigern wie GPUs erreicht werden. Die Redner unterstreichen auch die Vielseitigkeit von ONNX, das auf einer Vielzahl von Plattformen ausgeführt werden kann, einschließlich x64- und ARM-basierter Architekturen, und eine Open-Source-Inferenz-Engine für ONNX-Modelle ist, die für Windows, Mac und Linux verfügbar ist. Die Verwendung von ONNX ermöglicht die Optimierung der Ausführung auf spezifischer Zielhardware, ohne die Schnittstelle des Modells zu ändern, was es zu einem wertvollen Tool für die Skalierung und Wartung von Produktionsbereitstellungen macht.

  • 00:25:00 In diesem Abschnitt erörtert der Referent die Ausführungsanbieterschnittstelle, die verwendet wird, um ONNX-Modelle auf verschiedenen Hardwareplattformen auszuführen, einschließlich CPUs, GPUs und FPGAs. Das Partner-Ökosystem umfasst Intel, mit dem Microsoft bei der Laufzeitoptimierung unter Verwendung offener VINO-basierter Ausführungsanbieter zusammengearbeitet hat. Sie bieten auch leicht verfügbare Entwicklungskits an, einschließlich des Neural Compute Sticks, um KI-Workloads für verschiedene Branchen wie Fertigung, Einzelhandel und Transport zu beschleunigen. Microsoft und Intel haben auch bei der Quantisierung zusammengearbeitet, um FP32-Modelle in einen Datentyp mit geringerer Genauigkeit umzuwandeln, was zu einer geringeren Speicherbandbreite, einem geringeren Speicherbedarf des Modells und einer erhöhten Anzahl von Viererspitzen pro Watt bei minimalem Genauigkeitsverlust führt.

  • 00:30:00 In diesem Abschnitt erläutert der Referent, wie sie Vektorverarbeitungsanweisungen und Graphenfusion verwenden konnten, um die Leistungs- und Speicheranforderungen von Integer-Gem-Kernels für Convolutional Neural Networks zu verbessern. Sie konnten 4x mehr Rechenleistung und 4x weniger Speicherbedarf erreichen. Sie demonstrierten die Vorteile der Verwendung von n-graph als Ausführungsanbieter zusammen mit ihrer Hardwareverarbeitungsfähigkeit, indem sie die Skalierung der Leistung für verschiedene Batchgrößen zeigten. Der Genauigkeitsverlust war sehr gering und erfüllte die Motivationsvorteile der Quantisierung. Sie erörterten auch die verschiedenen Möglichkeiten zum Generieren von ONNX-Modellen, z. B. die Verwendung von ONNX Model Zoo, Azure Machine Learning Experimentation und benutzerdefinierten Vision-Diensten von Microsoft.

  • 00:35:00 In diesem Abschnitt erläutert der Referent, wie Inferenzsitzungen mithilfe der ONNX-Laufzeit innerhalb einer Anwendung ausgeführt werden. Nach der Konvertierung des Modells lädt der Benutzer es in die ONNX-Laufzeit und beginnt mit dem Parsen des Diagramms. Die Laufzeit identifiziert verfügbare Optimierungen und fragt die zugrunde liegende Hardware ab, um festzustellen, welche Art von Operationen von Hardwarebibliotheken unterstützt werden. Die ONNX-Laufzeit ist auf Konsistenz ausgelegt, daher sind Codeausschnitte für Python und C-sharp sehr ähnlich. Der Referent erwähnt auch AutoML, das es dem Benutzer ermöglicht, Daten einzugeben, um einen Anwendungsvorschlag zu erhalten, der Code automatisch in Python und C-Sharp konvertiert. Darüber hinaus beschreibt der Referent ein Docker-Image, das Konverter für verschiedene Frameworks enthält und dem Benutzer einen schnellen Einstieg in die ONNX-Laufzeit ermöglicht. Der Workflow wird durch die Verwendung von Azure Notebooks demonstriert.

  • 00:40:00 In diesem Abschnitt erläutert der Referent, wie Open Neural Network Exchange (ONNX) und Microsofts Tools für maschinelles Lernen genutzt werden können, um Modelle im Unternehmen zu skalieren. Der Prozess umfasst die Verwendung eines ML-Arbeitsbereichs zum Erstellen einer Scoring-Datei, die sowohl Vorverarbeitungs- als auch Inferenzschritte umfasst. Der Referent demonstriert dann, wie Container-Images für den Zielcomputer und die Zielumgebung erstellt werden, einschließlich Basisimages wie ein ONNX-Laufzeit-Basisimage. Schließlich werden die Bilder in einem Cloud-IKS-Dienst bereitgestellt, der Testbilder für Rückschlüsse auf die CPU- und GPU-Endpunkte senden kann.

  • 00:45:00 In diesem Abschnitt demonstriert der Redner die Flexibilität der Open Neural Network Exchange (ONNX)-Laufzeit, indem er eine Demo zeigt, in der derselbe Code verwendet wird, um eine Anwendung auf verschiedene Hardwareplattformen zu verweisen, z. B. CPUs gegenüber GPUs und x86 gegen ARM. Der Redner zeigt auch eine Demo der Bereitstellung von ONNX-Laufzeit und -Modellen auf Edge-Geräten, insbesondere auf dem Intel Up Squared, um Sicherheitsszenarien in einem Fabrikarbeiterszenario mit vorab aufgezeichnetem Video-Feed und Nachbearbeitung von Begrenzungsrahmen zu erkennen. Der in der Demo verwendete Code ist identisch, aber es werden verschiedene Hardwarebeschleuniger verwendet, um die Anwendung zu optimieren. Der Referent fasst zusammen, dass ONNX das gängige Format zur Darstellung neuronaler Netzwerkmodelle wird und dass die ONNX-Laufzeit den Einsatz sowohl in der Cloud als auch auf Edge-Geräten ermöglicht.

  • 00:50:00 In diesem Abschnitt erörtern die Referenten die Vorteile der Verwendung von Open Neural Network Exchange (ONNX) zum Erstellen und Bereitstellen von Anwendungen für maschinelles Lernen mit Azure. Sie behandeln auch Publikumsfragen zum maschinellen Lernen auf verschiedenen Prozessoren, zur Verwendung von ONNX mit bestehenden Pipelines und zur Möglichkeit, von ONNX zu früheren Frameworks zurückzukehren. Darüber hinaus erwähnen sie ihre Pläne zur Erweiterung des ONNX-Modellzoos mit gezielten Szenarien und Daten.

  • 00:55:00 In diesem Abschnitt erörtern die Referenten die Vorteile von ONNX in Bezug auf die Framework-Flexibilität, da ONNX-Modelle mit einer Vielzahl von Frameworks zum Servieren verwendet werden können. Sie erwähnen auch die Integration von ONNX mit Azure Machine Learning, die es Benutzern ermöglicht, Inferenz-Telemetrie für Umschulungen oder Experimente hochzuladen. In der Sitzung wird auch die Möglichkeit der nativen ONNX-Integration mit Excel erörtert, obwohl sich dies noch in der Entwicklung befindet. Sie befassen sich auch mit der Frage, wie benutzerdefinierte Algorithmen erstellt und in ONNX konvertiert werden können, mit der Option, Python zur Bearbeitung des ONNX-Dateiformats zu verwenden. Schließlich erwähnt die Sitzung die Notwendigkeit eines Ansatzes zum Signieren von ONNX-Modellen für den Vertrieb, der als Feedback für zukünftige Verbesserungen verwendet wird.
Open Neural Network Exchange (ONNX) in the enterprise: how Microsoft scales ML - BRK3012
Open Neural Network Exchange (ONNX) in the enterprise: how Microsoft scales ML - BRK3012
  • 2019.05.08
  • www.youtube.com
AI, machine learning, deep learning, and advanced analytics are being infused into every team and service at Microsoft—understanding customers and the busine...
 

#OpenVINO Execution Provider für #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68



#OpenVINO Execution Provider für #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68

Der OpenVINO Execution Provider für ONNX Runtime war das Hauptdiskussionsthema in diesem wöchentlichen OpenCV-Webinar. Das Produkt zielt darauf ab, die Leistung für ONNX-Modelle auf Intel-Hardware zu beschleunigen und gleichzeitig minimalen Aufwand auf Seiten des Benutzers zu erfordern. Das Webinar diskutierte die Herausforderungen beim Einsatz von Deep-Learning-Modellen in der realen Welt, wobei OpenVINO als Lösung für diese Herausforderungen vorgestellt wurde. OpenVINO kann KI-Modelle für eine effiziente Leistung auf verschiedenen Geräten und Hardware optimieren. Die ONNX-Laufzeit, ein Open-Source-Projekt zur Beschleunigung der maschinellen Lerninferenz, wurde ausführlich diskutiert. Das Webinar präsentierte auch eine Demonstration der Leistungsverbesserung, die mit dem OpenVINO Execution Provider für ONNX Runtime erzielt wurde, sowie seine Funktionen wie Multithread-Inferenz, volle Unterstützung für verschiedene Plugins und Modell-Caching. Auch die Integration zwischen OpenVINO und PyTorch durch den OpenVINO Execution Provider wurde diskutiert. Die Referenten beantworteten Fragen aus dem Publikum zu Themen wie Kompatibilität mit ARM-Geräten und potenzielle Leistungs- oder Genauigkeitsverluste bei der Verwendung von ONNX-Austauschformaten.

  • 00:00:00 In diesem Abschnitt stellen die Gastgeber ihre Gäste vor, Devon Agarwal und Prita Veeramalai, die technischer Produktmanager bzw. KI-Framework-Ingenieur bei OpenVINO sind. Sie bieten eine kurze Einführung in die Show und diskutieren einige bevorstehende Werbegeschenke für die Zuschauer. Das Hauptdiskussionsthema dreht sich um den OpenVINO-Ausführungsanbieter für die ONNX-Laufzeit, der darauf abzielt, die Leistung für ONNX-Modelle auf Intel-Hardware mit minimalem Aufwand für den Benutzer zu beschleunigen. Die Gastgeber skizzieren auch die Agenda für die Sitzung, die einen Überblick über Deep Learning und seine Herausforderungen enthält, gefolgt von einer Einführung in OpenVINO und seine Fähigkeiten.

  • 00:05:00 In diesem Abschnitt des Videos stellt der Referent den OpenVINO Execution Provider für ONNX Runtime vor und erklärt seinen Zweck. Sie geben auch einen Überblick über OpenVINO, ONNX und ONNX Runtime, gefolgt von einem Leitfaden für die ersten Schritte mit dem OpenVINO Execution Provider für ONNX Runtime und dessen Integration in ONNX-Anwendungen. Der Redner erörtert auch den Funktionsumfang des Produkts und Zukunftspläne, einschließlich eines kurzen Blicks auf ein Beta-Vorschauprodukt für Entwickler. Das Gespräch verlagert sich dann auf die Bedeutung von Deep Learning in der heutigen Welt, die Notwendigkeit von KI auf Edge-Geräten und die Rechenanforderungen für KI. Das Video behandelt auch die Herausforderungen im Zusammenhang mit der Entwicklung und Bereitstellung von Deep-Learning-Modellen, darunter einzigartige Inferenzanforderungen, Integrationsherausforderungen und das Fehlen einer Einheitslösung.

  • 00:10:00 In diesem Abschnitt werden die Herausforderungen beim Einsatz von Deep-Learning-Modellen in der realen Welt diskutiert. Es gibt technische Herausforderungen, die sich aus der Trennung zwischen Deep-Learning-Netzwerktraining und Inferenz auf eingebetteten Plattformen ergeben. Es gibt auch Programmiersprachen- und Hardwarevariationen, die eine dedizierte API für die Software- und Hardwarekommunikation erfordern. Als Lösung für diese Herausforderungen wird Intels OpenVINO-Toolkit vorgestellt. Das Toolkit rationalisiert den Entwicklungsworkflow und ermöglicht es Entwicklern, eine Anwendung einmal zu schreiben und sie in der gesamten Intel-Architektur bereitzustellen, wodurch ein „Write Once Deploy Anywhere“-Ansatz bereitgestellt wird. Das Toolkit ist in der Lage, Anwendungen bereitzustellen, die auf CPU, iGPU, Movidius VPU und GNA abzielen. Es kann in verschiedenen Branchen wertvoll sein, darunter Industrie, Gesundheit und Biowissenschaften, Einzelhandel, Sicherheit und Schutz, da es schnellere, genauere und effizientere Ergebnisse für den Einsatz in der realen Welt bietet.

  • 00:15:00 In diesem Abschnitt erläutert der Referent das Konzept von OpenVino und wie es KI-Modelle für Edge-Geräte optimiert. Sie erklären, wie KI-Modelle, sobald sie in Frameworks wie PyTorch oder TensorFlow integriert sind, für eine effiziente Leistung auf bestimmten Geräten wie CPUs, GPUs oder VPUs optimiert werden müssen. OpenVino automatisiert diesen Konvertierungsprozess für verschiedene Geräte und Hardware und stellt sicher, dass die Modelle für eine effiziente Leistung auf dem Gerät optimiert werden, auf dem sie bereitgestellt werden. Anschließend erklärt der Referent, was ONNX ist, ein offenes Format zur Darstellung von Modellen für maschinelles Lernen, das einen gemeinsamen Satz von Operatoren als Bausteine für maschinelles Lernen und Deep-Learning-Modelle definiert. Insgesamt ermöglicht ONNX KI-Entwicklern die Verwendung einer Vielzahl von Frameworks, Tools, Laufzeiten und Compilern, ohne sich Gedanken über nachgelagerte Inferenzimplikationen machen zu müssen.

  • 00:20:00 In diesem Abschnitt diskutieren die Referenten das ONNX-Format, ein offenes Zwischenmodell, das die Konvertierung von Modellen ermöglicht, die von verschiedenen Tools erstellt wurden, um sie in einem standardisierten Format zu lesen. Die ONNX-Laufzeitumgebung ist ein Open-Source-Projekt, das entwickelt wurde, um maschinelle Lerninferenz über verschiedene Betriebssysteme und Hardwareplattformen hinweg zu beschleunigen. Es identifiziert automatisch Optimierungsmöglichkeiten und bietet Zugriff auf die beste verfügbare Hardwarebeschleunigung. Der OpenVINO Execution Provider für ONNX ermöglicht die Leistungsfähigkeit des OpenVINO-Toolkits, um die Inferenz von ONNX-Modellen auf Intel-CPUs, -GPUs und -VPUs zu beschleunigen. Es ermöglicht Benutzern, Inferenzen mit ONNX-Laufzeit-APIs auszuführen und gleichzeitig das OpenVINO-Toolkit einfach als Backend zu integrieren.

  • 00:25:00 In diesem Abschnitt wird die Integration zwischen der ONNX-Laufzeit und dem OpenVINO-Ausführungsanbieter besprochen. Diese Integration ermöglicht die effiziente Ausführung von Deep-Learning-Modellen auf Intel-Geräten. Das OpenVINO-Toolkit bietet optimierte Bibliotheken zum Ausführen von Modellen auf Intel-Geräten. Wenn der OpenVINO-Ausführungsanbieter aktiviert ist, wählt er intelligent aus, welche Operatoren im Modell für maximale Effizienz auf dem OpenVINO-Backend ausgeführt werden sollen. Die restlichen Operatoren werden mit dem nativen ONNX-Laufzeitframework ausgeführt. Der Benutzer kann den OpenVINO-Ausführungsanbieter installieren, indem er aus der Quelle erstellt, das Docker-Image zieht oder pip install verwendet. Das ONNX-Laufzeit-OpenVINO-Paket finden Sie auf PyPI.

  • 00:30:00 In diesem Abschnitt des Webinars erörtern die Referenten die Verwendung des OpenVINO Execution Provider für ONNX Runtime und demonstrieren seine Fähigkeiten. Sie erklären, wie das Produkt mit pip installiert wird, und stellen Codeausschnitte bereit, um zu zeigen, wie die ONNX-Laufzeitbibliothek importiert und eine Inferenzsitzung gestartet wird. Sie zeigen auch, wie einfach es ist, den OpenVINO Execution Provider mit einer einfachen Änderung an einer bestehenden Codezeile zu verwenden. Die Moderatoren laden dann die Zuschauer ein, QR-Codes zu scannen, um auf Demos und Muster zuzugreifen und sie selbst auszuprobieren.

  • 00:35:00 In diesem Abschnitt zeigt das Video eine Demonstration der Leistungsverbesserung, die mit dem OpenVINO Execution Provider (EP) für ONNX Runtime erzielt wird. Das Video zeigt einen Vergleich zwischen den mit dem CPU Execution Provider erzielten 5 fps und den mit OpenVINO EP erzielten 8 fps. Darüber hinaus präsentiert das Video eine Demo der Quantisierung mit OpenVINO EP für ONNX Runtime, die zu einer zweifachen Leistungssteigerung bei vernachlässigbarem Genauigkeitsverlust führte. Das Demo-Notebook ist in der Intel DevCloud verfügbar, die Fernzugriff auf echte Intel-Hardware für Benchmarking und Analysen bietet.

  • 00:40:00 Fertig mit der Vorführung? In diesem Abschnitt demonstriert der Moderator, wie man den OpenVINO Execution Provider für ONNX Runtime startet und die Hardware wie i3, i5, Xenon oder Core i9 und die Grafikabteilung auswählt. Sie präsentieren auch das Jupyter-Notebook und das Objekterkennungsmuster, das Eingangsvideo und ein ONNX-Modell verwendet, um Störungen auf dem Gerät auszuführen. Der Moderator erklärt, dass CPU-, GPU- und FP16-VADM-Medien unterstützt werden, und er erwähnt auch den CPU-Ausführungsanbieter, der das native ONNX-Laufzeit-Backend ist. Abschließend erörtert der Referent die Nützlichkeit des OpenVINO Execution Provider zum Testen unterschiedlicher Hardware, ohne jedes Gerät kaufen oder mieten zu müssen.

  • 00:45:00 In diesem Abschnitt werden die Features des OpenVINO Execution Provider besprochen. Es bietet Multithread-Inferenz, volle Unterstützung für verschiedene Plugins und Modell-Caching. Modellquantisierung und Graphpartitionierung sind ebenfalls verfügbar, ebenso wie APIs für mehrere Sprachen. E/A-Pufferoptimierungen sind für eine verbesserte Leistung vorhanden, und für ONNX-Modelle ist eine externe Dateispeicherung verfügbar. Dem Publikum wird eine Frage gestellt, um einen Preis zu gewinnen, und es wird ein kleiner Einblick in die OpenVINO-Integration für PyTorch-Modelle gegeben.

  • 00:50:00 In diesem Abschnitt diskutieren sie die OpenVINO-Integration mit PyTorch über den OpenVINO-Ausführungsanbieter. Dieses Produkt kann die Leistung von PyTorch-Modellen auf Intel-Hardware mit nur zwei zusätzlichen Codezeilen beschleunigen. Der Benutzer kann sein nn.module in das Torch orp/ort-Inferenzmodul einschließen, das das Modul für die Inferenz unter Verwendung des OpenVINO-Ausführungsanbieters vorbereitet und das Modul über onnx.export in einen In-Memory-Graphen exportiert. Die ONNXruntime-Sitzung partitioniert dann den Graphen in Untergraphen mit unterstützten und nicht unterstützten Operatoren für die Partitionierung von Untergraphen, und OpenVINO-kompatible Knoten werden vom Anbieter ausgeführt und können auf Intel-CPUs, GPUs oder VPUs ausgeführt werden, während alle anderen Knoten auf diese zurückgreifen standardmäßiger CPU ML-Ausführungsanbieter. Der Installationsprozess ist einfach, mit der Option, aus dem Quellcode zu erstellen, eine einfache Pip-Installation durchzuführen und Zugriff auf die gesamte Palette der Python-APIs zu erhalten.

  • 00:55:00 In diesem Abschnitt lesen die Moderatoren des wöchentlichen OpenCV-Webinars Fragen aus dem Publikum zu Themen wie der Kompatibilität von OpenVINO mit ARM-Geräten und potenziellem Leistungs- oder Genauigkeitsverlust bei der Verwendung von ONNX-Austauschformaten vor. Die Gastgeber und Moderatoren erklären, dass OpenVINO tatsächlich auf ARM-CPU-Geräten laufen und einen Schub geben kann, und ONNX die Leistung für die meisten Modelle sogar verbessern kann. Es ist jedoch immer ratsam, die Genauigkeit auf einem Testgerät zu testen, wenn Sie von einem Format in ein anderes konvertieren. Die Gastgeber stellen auch klar, dass ONNX entgegen einer Frage aus dem Publikum dynamische Formmodelle unterstützt. Abschließend danken die Gastgeber und Moderatoren dem Publikum und Phil, dem Organisator, für eine großartige Präsentation und informative Sitzung.
#OpenVINO Execution Provider For #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68
#OpenVINO Execution Provider For #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68
  • 2022.08.09
  • www.youtube.com
Devang Aggarwal and Preetha Veeramalai join the show to give us a rundown of how OpenVINO can work with ONNX Runtime to squeeze even more performance out of ...
 

Importieren von neuronalen Netzen mit ONNX



Importieren von neuronalen Netzen mit ONNX

Dieses Video untersucht die Bedeutung des Projekts Open Neural Network Exchange (ONNX) für maschinelles Lernen und seine Vorteile bei der Modellkonvertierung über verschiedene Tools hinweg. Der Referent erörtert die Herausforderungen beim manuellen Laden von Modellen oder der Verwendung automatisierter Tools und wie ONNX dieses Problem durch sein graphbasiertes Rechenmodell beseitigt. Der Referent hebt auch die Vorteile von ONNX bei der manuellen Konvertierung komplexer Modelle und die Kompatibilität mit verschiedenen Frameworks hervor. Das Video geht auf parametrisierte Netzmodelle, die Struktur von ONNX und potenzielle Herausforderungen ein, die bei der Nutzung des Projekts auftreten können. Trotz dieser Herausforderungen glaubt der Sprecher, dass ONNX aufgrund seiner erheblichen Unterstützung durch verschiedene Unternehmen gedeihen wird.

  • 00:00:00 In diesem Abschnitt erörtert der Referent die Bedeutung von ONNX beim maschinellen Lernen und die Schwierigkeiten beim manuellen Laden von Modellen oder durch automatisierte Tools. Der Referent erklärt, dass mit der Einführung von PyTorch und TensorFlow die meisten Modelle in diesen Frameworks entwickelt werden, was es schwierig macht, externe Modelle in andere Frameworks zu bringen. Der manuelle Prozess des Konvertierens von Modellen ist zeitaufwändig und mühsam, da der Prozess das Verknüpfen von Gewichten mit der Architektur beinhaltet, was keine lustige Sache ist. Anschließend erörtert der Referent das Wachstum des neuralen Netzrepositorys und wie sie seit Version 12 mehrere Modelle zum Repositorium hinzugefügt haben. Sie stellen auch das MobileNet vor, ein Bildklassifizierungsnetzwerk, das 2018 eingeführt wurde und die Größe von Bildklassifizierungsnetzwerken und -läufen reduziert Schneller.

  • 00:05:00 Der Abschnitt konzentriert sich auf die Bedeutung von parametrisierten Netzmodellen und warum sie im neuronalen Netzspeicher notwendig sind. Ohne Parametrisierung würde das Repository zu lang und unübersichtlich werden. Es erklärt auch, wie man ein nicht standardmäßiges Modell auswählt, und gibt ein Beispiel für das BPE-Modell, das Segmente je nach Sprache in Wörter oder Teilwörter tokenisiert. Der Abschnitt hebt auch die Notwendigkeit der manuellen Konvertierung von ONNX hervor, da die manuelle Konvertierung komplexer Modelle wie des berühmten Modells, das am 14. Februar 2019 veröffentlicht wurde, eine Herausforderung darstellen kann.

  • 00:10:00 In diesem Abschnitt beschreibt der Referent die Details der Net-Encoder-Funktion, die im GPD2-Modell verwendet wird. Diese Funktion verfügt über die gesamte Vorverarbeitung, die das Modell benötigt, und konvertiert eine Zeichenfolge in eine Liste von Tokens. Zusätzlich gibt es den Positionsindex an und hat einen Vektor der Größe 768, abhängig von der Größe des verwendeten Modells. Der Referent erklärt, dass es nicht machbar war, die Architektur für das 800-1000-Layer-Netzwerk von Hand zu erstellen, und deshalb brauchten sie ONNX. Der Vorteil der Verwendung von ONNX besteht darin, dass die Wartung eines einzelnen Konverters für jede Art entfällt und es über einen Modellzoo verfügt, den Benutzer nutzen können, um verschiedene Modelle effektiv zu importieren.

  • 00:15:00 In diesem Abschnitt diskutiert der YouTuber die Vorteile und Spezifikationen des Projekts Open Neural Network Exchange (ONNX). Das Projekt ermöglicht die Modellkonvertierung aus modernsten Tools und erleichtert so die Auswahl des besten Tools für die Modellerstellung. ONNX verfügt über eine umfangreiche Liste von Community-Partnern, darunter große Unternehmen, die es einfach machen, Modelle zwischen verschiedenen Tools zu verschieben. Das Projekt stellt Hardwareoptimierungswerkzeuge und Visualisierungswerkzeuge bereit, die in vielen anderen Frameworks fehlen. Der YouTuber glaubt, dass das Projekt weiter gedeihen wird, da es von verschiedenen Unternehmen erheblich unterstützt wird.

  • 00:20:00 In diesem Abschnitt erörtert der Referent die Struktur von ONNX, einem graphenbasierten Berechnungsmodell, bei dem Operatoren außerhalb des Diagramms implementiert sind. Jeder Knoten im Diagramm wird als Operator referenziert und verfügt über eine oder mehrere Eingaben und Ausgaben, die über Frameworks hinweg portierbar sein müssen. Der Referent gibt ein Beispiel dafür, wie ONNX funktioniert, und demonstriert mit einer internen Funktion, die das Modell im Protokollformat nimmt und es in eine mathematische Assoziation umwandelt. Das Diagramm enthält die Metadaten, die sich auf das Modell beziehen. Der Sprecher erklärt dann, wie der Graph verschiedene Knoten hat, und er verbringt Zeit damit, die Eigenschaften einer Faltungsschicht zu diskutieren, die einer der Knoten des Graphen ist. Schließlich zeigt er, wie man Informationen über die Dimensionen der Ebene erhält.

  • 00:25:00 In diesem Abschnitt erörtert der Referent einige der Probleme, die bei der Arbeit mit ONNX auftreten können. Es gibt bestimmte Fehler, die beim Reshape-Operator auftreten können, wenn er keine Badge-Abmessungen hat, daher muss die Operatorabdeckung verbessert werden, um diese Art von Fällen zu unterstützen. Der Redner erwähnt, dass in Zukunft daran gearbeitet werden muss, Unterstützung für RNNs und statische Hypernetzwerke hinzuzufügen sowie andere Tools wie Versions- und Formschlussfolgerungen und Modellprüfer anzuschließen. Darüber hinaus ist die Verbesserung der Netzbetreiberabdeckung noch in Arbeit. Der Referent weist jedoch darauf hin, dass ONNX aktiv weiterentwickelt wird und von großen Unternehmen unterstützt wird.
Importing Neural Networks with ONNX
Importing Neural Networks with ONNX
  • 2020.04.08
  • www.youtube.com
Tuseeta Banerjee
 

Importieren und Exportieren von neuronalen Netzwerken mit ONNX



Importieren und Exportieren von neuronalen Netzwerken mit ONNX

Das Video demonstriert die Verwendung von ONNX als plattformübergreifende Spezifikation und Dateiformat für maschinelle Lernmodelle, um Modelle zwischen verschiedenen neuronalen Netzwerk-Frameworks auszutauschen. Die Referenten zeigen, wie man neuronale Netze mit ONNX über Mathematica und Keras importiert und exportiert und wie man Metadaten prüft und importiert sowie Metadaten beim Export festlegt. Sie diskutieren auch den Export und Import von Modellen zwischen Core ML, PyTorch und Wolfram Language und die Bedeutung der Verwendung des richtigen Offsets während der Konvertierung. Die Referenten diskutieren die Zukunft von ONNX, einschließlich der Erweiterung der Unterstützung für Import und Export, der Verbesserung schwieriger Fälle für den Importeur und der Ermöglichung des Exports in mehrere Operator-Set-Versionen. Darüber hinaus erklärt der Referent den Unterschied zwischen ONNX und MXNet und gibt Informationen darüber, wie Sie überprüfen können, welche Funktionen mit internen Dienstprogrammen nach ONNX exportiert werden können.

  • 00:00:00 In diesem Abschnitt stellen Matteo Salvarezza und Maria Sarksyan ONNX vor, eine plattformübergreifende Spezifikation und ein Dateiformat für maschinelle Lernmodelle, das es verschiedenen neuronalen Netzwerk-Frameworks ermöglicht, Modelle miteinander auszutauschen. Sie demonstrieren, wie man neuronale Netze mit ONNX über Mathematica und Keras importiert und exportiert, und zeigen, wie man Metadaten prüft und importiert und wie man Metadaten beim Export festlegt. Anschließend zeigen sie die Konvertierung eines Fortnite-Modells von Mathematica zu Keras und dann zu ONNX, bevor sie es wieder in Mathematica importieren.

  • 00:05:00 In diesem Abschnitt erörtert der Sprecher das Segmentierungsmodell, das ein Bild in weiße Substanz und graue Substanz segmentiert, um verschiedene anatomische Gewebe des menschlichen Gehirns zu kennzeichnen. Die Architektur dieses Modells besteht aus einem Codierer mit gemeinsamer Einheit und unterschiedlichen Decodierern. Der Referent skizziert den Prozess des Exportierens eines Gehirnbildes in eine JPEG-Datei, des Importierens in Python, des Ausführens des Modells zum Auswerten des Bildes und des Exportierens des segmentierten Bildes in eine NS-Datei zum Zurückimportieren in Mathematica. Der Prozess umfasst die Verwendung der OneNext-Bibliothek und die Durchführung einer zusätzlichen Überprüfung, gefolgt vom Importieren des ONNX-Exports, dem Einrichten einer Eingabe für das Keras-Modell, dem Treffen der Vorhersage und dem Exportieren des segmentierten Bildes in eine NS-Datei. Abschließend weist der Redner darauf hin, wie wichtig es ist sicherzustellen, dass der importierte Bereich des Bildes von null bis eins reicht und durch 255 geteilt wird.

  • 00:10:00 In diesem Abschnitt des Videos erläutert der Sprecher den Import und Export neuronaler Netze mit ONNX. Sie erwähnen die Möglichkeit, Modelle von Keras nach ONNX zu exportieren und sie dann wieder in Mathematica zu importieren. Der Referent betont die Bedeutung der Verwendung des korrekten Offsets im Konvertierungsprozess und weist darauf hin, dass bestimmte Operationen möglicherweise durch Netzoperationsoperatoren ersetzt werden müssen. Anschließend zeigen sie, wie ein Modell mit dem ONNX ML-Toolpaket von Core ML nach ONNX verschoben wird und wie ein vortrainiertes Modell und seine Klassen nach Core ML exportiert werden. Das Video betont, dass der Prozess viele Schritte umfasst, und bietet Beispiele, die die Benutzer selbst bewerten können.

  • 00:15:00 In diesem Abschnitt erklärt der Referent den Export von ONNX nach Core ML, einschließlich Mittelwert- und Varianzkorrektur, unter Verwendung der richtigen Funktionen. Sie behandeln auch die Konvertierung eines Netzes von PyTorch zu ONNX und dann zur vollständigen Wolfram-Sprache. Der Prozess beinhaltet die notwendige Operation, um das endgültige Format nutzbar zu machen, und der Referent zeigt, wie er ein nutzbares Format erhalten und bewerten konnte. Abschließend demonstriert der Referent den letzten Schritt des Wechsels von der Wolfram-Sprache zu PyTorch über ONNX, indem er das vortrainierte Netz und die Klassen nimmt und sie exportiert.

  • 00:20:00 In diesem Abschnitt des Videos diskutieren die Referenten den Import und Export neuronaler Netze mit ONNX. Sie erklären, dass das ONNX-Modell nach dem Laden in PyTorch konvertiert und ausgewertet werden kann und Transformationen wie Größenänderung, Zentrieren und Normalisieren verwendet werden. Das Modell wird ausgewertet, um die drei Klassen mit den höchsten Wahrscheinlichkeiten zu erhalten. Die Redner besprechen dann die Zukunft des ONNX-Imports und -Exports, einschließlich der Erweiterung der Unterstützung für den Import und Export, der Verbesserung schwieriger Fälle für den Importeur und der Ermöglichung des Exports in mehrere Operator-Set-Versionen.

  • 00:25:00 In diesem Abschnitt erklärt der Referent den Unterschied zwischen ONNX und MXNet. MXNet ist ein vollständiges neuronales Netzwerk-Framework, während ONNX nur ein Dateiformat ist, das zum Exportieren und Importieren neuronaler Netzwerke verwendet wird. Der Referent erwähnt auch, dass es eine separate Software namens ONNX Runtime gibt, die als eigentliches Framework fungiert. Der Referent bietet auch Informationen darüber, wie Sie überprüfen können, welche Funktionen mit internen Dienstprogrammen nach ONNX exportiert werden können.
Importing and Exporting Neural Networks with ONNX
Importing and Exporting Neural Networks with ONNX
  • 2022.01.22
  • www.youtube.com
ONNX is an open format to represent deep learning models. It allows easy conversion of models from one framework to another. In this talk, we will provide an...