Lernen mit ONNX für den Handel

 

Wir haben die Unterstützung für ONNX-Modelle in MQL5 hinzugefügt, da wir glauben, dass dies die Zukunft ist. Wir haben dieses Thema ins Leben gerufen, um diesen vielversprechenden Bereich zu diskutieren und zu untersuchen, ob er dazu beitragen kann, die Nutzung des maschinellen Lernens auf eine neue Ebene zu heben. Mit den neuen Funktionen können Sie Modelle in der von Ihnen bevorzugten Umgebung trainieren und sie dann mit minimalem Aufwand im Handel einsetzen.


Ein kurzer Technologieüberblick

ONNX (Open Neural Network Exchange) ist ein Open-Source-Format für den Austausch von Modellen für maschinelles Lernen zwischen verschiedenen Frameworks. Es wurde von Microsoft, Facebook und Amazon Web Services (AWS) entwickelt und zielt darauf ab, die Entwicklung und den Einsatz von ML-Modellen zu erleichtern.

Die wichtigsten Vorteile von ONNX:

  • Interoperabilität: Der Standard ermöglicht den Austausch von Modellen zwischen verschiedenen Frameworks wie TensorFlow, PyTorch, Caffe2, MXNet und anderen. Dies erleichtert die Modellentwicklung und den Einsatz.
  • Optimierung: Die Technologie bietet optimierte Operationen und rechnergestütze Graphen, um die Modellleistung zu verbessern und den Rechenaufwand zu senken.
  • Standardisierung: ONNX bietet ein einheitliches Format zur Serialisierung und Speicherung von ML-Modellen. Dies vereinfacht den Modellaustausch zwischen Entwicklern und Unternehmen.
  • Ökosystem: ONNX wird durch eine Fülle von Bibliotheken, Tools und Hardware unterstützt, die zur Verbreitung und Beschleunigung von ML-Innovationen beitragen.
  • Offener Standard: Das Projekt ist ein offenes Format mit einer aktiven Gemeinschaft und wir glauben, dass es weiter wachsen wird. Wir möchten Sie ermutigen, sich an der Entwicklung des Projekts zu beteiligen.


Um ONNX zu nutzen, können Entwickler ihre Modelle aus verschiedenen Frameworks wie TensorFlow oder PyTorch in das ONNX-Format exportieren. Darüber hinaus können die Modelle in MQL5-Anwendungen integriert und im MetaTrader 5-Handelsterminal ausgeführt werden. Dies ist eine einzigartige Gelegenheit, die sonst niemand bietet.

Eines der beliebtesten Tools für die Konvertierung von Modellen in das ONNX-Format ist ONNXMLToolsONNXMLTools kann einfach installiert werden. Einzelheiten zur Installation und Beispiele für die Modellumstellung finden Sie auf der Projektseite unter https://github.com/onnx/onnxmltools#install.

Um ein trainiertes Modell auszuführen, sollten Sie ONNX Runtime verwenden. ONNX Runtime ist eine leistungsstarke, plattformübergreifende Engine zur Ausführung von ML-Modellen, die im ONNX-Format exportiert wurden. Mit ONNX können Entwickler Modelle in einem Framework erstellen und sie dann problemlos in anderen Umgebungen einsetzen. Dies bietet Flexibilität und vereinfacht gleichzeitig den Entwicklungsprozess.

ONNX ist ein leistungsstarkes Werkzeug für ML-Entwickler und Forscher. Nutzen Sie diese Möglichkeiten zur effizienten Entwicklung und Implementierung von Modellen im Handel mit MQL5.

Erforschen Sie verfügbare Informationen und neue Ansätze für die Arbeit mit ML-Modellen und teilen Sie diese mit den Mitgliedern der MQL5.community. Wir haben einige hilfreiche Veröffentlichungen zu diesem Thema gefunden, die Ihnen helfen können, diese neue, vielversprechende Technologie zu erkunden und zu nutzen.

Dokumentation zu MQL5: ONNX models
Dokumentation zu MQL5: ONNX models
  • www.mql5.com
ONNX models - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5
 

1. ONNX Runtime



In diesem Video wird über das Projekt Open Neural Network Exchange (ONNX) diskutiert, das ein offenes Format für die Darstellung von traditionellen und Deep-Learning-Modelle ist. Außerdem wird ONNX Runtime beschrieben, die Hochleistungs-Engine zur Ausführung der Modelle.

ONNX Runtime bietet eine umfassende Abdeckung und Unterstützung aller in ONNX definierten Operatoren und arbeitet sowohl mit CPU als auch GPU auf vielen Plattformen, einschließlich Linux, Windows und Mac.

Es bietet auch eine schrittweise Anleitung zum Konvertieren, Laden und Ausführen eines Modells mit ONNX Runtime in Azure ML und demonstriert dessen potenzielle Vorteile, einschließlich verbesserter Leistung und Vorhersageeffizienz für verschiedene Modelle.

Das Video ermutigt Entwickler, ONNX auszuprobieren und zur wachsenden ONNX-Community beizutragen.

Projekte helfen beim Entwickeln profitabler Handelsroboter! Zumindest scheint es so
Projekte helfen beim Entwickeln profitabler Handelsroboter! Zumindest scheint es so
  • www.mql5.com
Ein großes Programm beginnt mit einer kleinen Datei, die dann immer größer wird, je mehr Funktionen und Objekte Sie hinzufügen. Die meisten Roboterentwickler verwenden Include-Dateien, um dieses Problem zu lösen. Es gibt jedoch eine bessere Lösung: Beginnen Sie mit der Entwicklung einer beliebigen Handelsanwendung in einem Projekt. Es gibt so viele Gründe, dies zu tun.
 

2. Converting Models to #ONNX Format



Das Video beschreibt verschiedene Methoden zur Konvertierung von ML-Modellen in das ONNX-Format zur Verwendung mit ONNX Runtime. ONNX ist mit vielen gängigen Bibliotheken für maschinelles Lernen wie PyTorch, TensorFlow und Scikit-Learn kompatibel.

Um ein Modell in das ONNX-Format zu konvertieren, verwenden Sie die entsprechende Konvertierungsbibliothek und erstellen dann ein ONNX-Modell mit dieser Bibliothek. Dies ermöglicht die Verwendung des Modells mit ONNX Runtime, was die Leistung des Modells verbessert und es mit mehreren Frameworks kompatibel macht.

Das Video zeigt Beispiele, wie Modelle mit PyTorch und TensorFlow in das ONNX-Format konvertiert werden können.

Bewertung und Auswahl von Variablen für Modelle für maschinelles Lernen
Bewertung und Auswahl von Variablen für Modelle für maschinelles Lernen
  • www.mql5.com
Dieser Artikel konzentriert sich auf die Besonderheiten der Auswahl, Vorkonditionierung und Bewertung der Eingabevariablen (Prädiktoren) für den Einsatz in Modellen für maschinelles Lernen. Neue Ansätze und Möglichkeiten der tiefen Prädiktor Analyse und deren Einfluss auf mögliche Überanpassung von Modellen werden berücksichtigt. Das Gesamtergebnis der Verwendung von Modellen hängt weitgehend vom Ergebnis dieser Phase ab. Wir werden zwei Pakete analysieren, die neue und ursprüngliche Konzepte für die Auswahl der Prädiktoren bieten.
 

3.  ONNX – open format for machine learning models​



Das Video bietet eine Beschreibung des ONNX-Formats, eines offenen Formats zur Realisierung von Modellen für maschinelles Lernen. Sie können Modelle aus verschiedenen Frameworks in das ONNX-Format konvertieren, um ihre Kompatibilität und Benutzerfreundlichkeit zu gewährleisten.

Einige Beispiele zeigen kompatible Formate wie TensorFlow, PyTorch, Keras und scikit-learn und erläutern die Vorteile der Verwendung von ONNX, darunter eine schnellere Modellausführungszeit und eine optimierte Leistung auf spezifischer Hardware.

Im nächsten Video wird der Autor zeigen, wie man ein Modell von Keras zu ONNX konvertiert und es für Bildklassifizierungs- und Bildsegmentierungsprobleme testet.

Bewertung und Auswahl von Variablen für Modelle für maschinelles Lernen
Bewertung und Auswahl von Variablen für Modelle für maschinelles Lernen
  • www.mql5.com
Dieser Artikel konzentriert sich auf die Besonderheiten der Auswahl, Vorkonditionierung und Bewertung der Eingabevariablen (Prädiktoren) für den Einsatz in Modellen für maschinelles Lernen. Neue Ansätze und Möglichkeiten der tiefen Prädiktor Analyse und deren Einfluss auf mögliche Überanpassung von Modellen werden berücksichtigt. Das Gesamtergebnis der Verwendung von Modellen hängt weitgehend vom Ergebnis dieser Phase ab. Wir werden zwei Pakete analysieren, die neue und ursprüngliche Konzepte für die Auswahl der Prädiktoren bieten.
 

4.  (Deep) Machine Learned Model Deployment with ONNX



Das Video behandelt die Entwicklung einer Open-Source-ML-Bibliothek von Microsoft, die auf GitHub veröffentlicht wurde.

Der Autor erklärt die Einsatzprobleme von Modellen für maschinelles Lernen, wenn das Modell auf einer großen Maschine mit Gigabyte Speicher erstellt wird, dann aber unter sehr unterschiedlichen Bedingungen verwendet wird, die eine Optimierung für eine Vorhersage zu einem Zeitpunkt erfordern.

Der Autor demonstriert die Leistung verschiedener Bibliotheken wie scikit-learn, XGBoost und ML.NET und zeigt, dass der Leistungsunterschied mit zunehmender Paketgröße abnimmt. Der Autor stellt ONNX als eine Optimierungslösung für solche Fälle vor.

Bewertung und Auswahl von Variablen für Modelle für maschinelles Lernen
Bewertung und Auswahl von Variablen für Modelle für maschinelles Lernen
  • www.mql5.com
Dieser Artikel konzentriert sich auf die Besonderheiten der Auswahl, Vorkonditionierung und Bewertung der Eingabevariablen (Prädiktoren) für den Einsatz in Modellen für maschinelles Lernen. Neue Ansätze und Möglichkeiten der tiefen Prädiktor Analyse und deren Einfluss auf mögliche Überanpassung von Modellen werden berücksichtigt. Das Gesamtergebnis der Verwendung von Modellen hängt weitgehend vom Ergebnis dieser Phase ab. Wir werden zwei Pakete analysieren, die neue und ursprüngliche Konzepte für die Auswahl der Prädiktoren bieten.
 

5. Recurrent Neural Networks | LSTM Price Movement Predictions For Trading Algorithms


Das Video behandelt die Verwendung rekurrenter neuronaler Netze, insbesondere LSTM-Netze, zur Vorhersage von Kursbewegungen auf den Finanzmärkten, einschließlich FOREX, Aktien und Kryptowährungen.

Der Algorithmus ist in Python geschrieben. Sie können ihn herunterladen und mit verschiedenen Parametern testen.

Deep-Learning-Algorithmen wird eine hervorragende Vorhersageleistung zugeschrieben. Hier wird es im Handel und bei der Vorhersage von Kursbewegungen getestet. Er verwendet zusätzlich Technische Indikatoren, wie den RSI (Relative Strength Indicator) und den MA (Moving Averages), um die Inputs für das Handelsmodell zu erweitern.

Dokumentation zu MQL5: Technische Indikatoren
Dokumentation zu MQL5: Technische Indikatoren
  • www.mql5.com
Technische Indikatoren - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5
 

Alles, was Sie über ONNX wissen möchten




Alles, was Sie über ONNX wissen möchten

Das ONNX-Format zielt darauf ab, die Herausforderungen anzugehen, die durch den fragmentierten Satz von Tools und Frameworks in der Deep-Learning-Umgebung entstehen, indem es ein portables Dateiformat bereitstellt, mit dem Modelle von einem Framework in ein anderes exportiert werden können. Es ist hochgradig transparent und gut dokumentiert, standardisiert Syntax, Semantik und Konventionen, die im Deep-Learning-Bereich verwendet werden, und unterstützt sowohl Deep-Learning- als auch traditionelle Machine-Learning-Modelle. ONNX ermöglicht Interoperabilität, Effizienz und Optimierung über verschiedene Hardwareumgebungen hinweg ohne manuelle Optimierung oder Konvertierung. Das Video zeigt eine grundlegende Demo der Konvertierung eines trainierten Modells aus scikit-learn in das ONNX-Format mit dem ONNX-spezifischen Konverter und zeigt, wie die endgültige Inferenz in einem reaktiven Anwendungsfall durchgeführt wird, in dem das Training mit PI Torch erfolgt und die Inferenz in ausgeführt wird TensorFlow.

Das Webinar schließt mit einer Demonstration, wie man ein ONNX-Modell in ein TensorFlow-Format konvertiert, indem man die „prepare“-Funktion aus dem „ONNX TF-Backend“ verwendet und die Ausgabe als „.pb“-Datei speichert. Der Referent merkt an, dass das TensorFlow-Modell dann für Rückschlüsse verwendet werden kann, ohne auf ONNX Bezug zu nehmen. Dem Publikum wird gedankt, und der Redner kündigt bevorstehende Artikel zu ONNX zu The New Stack sowie ein weiteres bevorstehendes Webinar zur verteilten Anwendungslaufzeit von Microsoft an. Das Feedback der Teilnehmer war positiv.

  • 00:00:00 Wenn Sie aufgrund der Fragmentierung und des verteilten Satzes von Tools und Frameworks mit der Komplexität von maschinellem Lernen und Deep Learning zu kämpfen haben, ist ONNX möglicherweise genau die Lösung, die Sie brauchen. In einem Abschnitt eines Webinars erläutert der Referent die aktuellen Herausforderungen im Deep-Learning-Umfeld und wie ONNX diese angehen kann. Unter der Annahme einer allgemeinen Vertrautheit mit maschinellem Lernen und Deep Learning bietet die Diskussion einen detaillierten Überblick über die Versprechungen, die sowohl ONNX als auch die ONNX-Laufzeit bieten. Am Ende dieses Abschnitts wird das Publikum in die Idee der Konvergenz von maschineller Intelligenz und moderner Infrastruktur eingeführt, die ein wiederkehrendes Thema in der gesamten Webinar-Reihe ist.

  • 00:05:00 In diesem Abschnitt geht der Referent auf die Herausforderungen des Deep Learning ein, insbesondere in Bezug auf Training und Produktion. Wenn es um das Training geht, ist die Verwendung eines fragmentierten Satzes von Frameworks und Toolkits nicht einfach, und die Infrastruktur ist unerlässlich, wenn Sie mit GPUs arbeiten, um das Training zu beschleunigen. Außerdem geht es nicht nur um Hardware, sondern auch um Software, wie CUDA und KuDNN für NVIDIA-GPUs und oneDNN für Intels FPGAs. Auf der Produktionsseite muss das trainierte Modell für die Zielumgebung optimiert werden, um eine hohe Genauigkeit und geringe Latenz zu liefern, was die Konvertierung von Datentypen und die Verwendung von Tools wie TensorRT erfordert. Daher erfordert Deep Learning das Verständnis der Hardware- und Softwareschichten und die Optimierung des Modells, um die gewünschte Leistung zu liefern.

  • 00:10:00 In diesem Abschnitt erörtert der Referent die verschiedenen Tools, Frameworks und Hardwareumgebungen, die erforderlich sind, um KI-Modelle effektiv zu optimieren und einzusetzen. Der Referent betont die Notwendigkeit der Optimierung und Quantisierung des Modells, insbesondere für CPUs, und erwähnt die beliebten Toolkits wie Nvidia T4 und Intels OpenVINO-Toolkit. Der Referent erklärt weiter, dass unterschiedliche Hardwareumgebungen unterschiedliche Toolkits erfordern, wie etwa Nvidias Jetson-Familie für industrielle Automatisierung und IoT-Anwendungsfälle, Intels Vision Processing Unit für Vision Computing und Googles Edge TPU für den Edge. Der Prozess der Optimierung und Bereitstellung von KI-Modellen ist ein komplexer und kontinuierlicher Prozess, der das Erkennen der Abweichung, das Umschulen, Optimieren, Bereitstellen und Skalieren des Modells umfasst. Der Redner betont, wie wichtig es ist, über eine Pipeline zu verfügen, die sich effektiv um diesen gesamten Mechanismus des geschlossenen Regelkreises kümmert.

  • 00:15:00 In diesem Abschnitt stellt der Redner ONNX als Open Neural Network Exchange vor, der als Vermittler zwischen verschiedenen Frameworks und Zielumgebungen fungiert und Effizienz, Optimierung und Interoperabilität fördert. ONNX unterstützt Deep Learning und traditionelle Machine-Learning-Modelle und ermöglicht den Export und Import von Modellen von einem Framework in ein anderes. Darüber hinaus unterstützt ONNX diverse Hardwareumgebungen ohne manuelle Optimierung oder Konvertierung. Der Redner stellt fest, dass ONNX seit seiner Gründung im Jahr 2017 mit den Gründungsmitgliedern AWS, Microsoft und Facebook mit Beiträgen von Nvidia, Intel, IBM, Qualcomm, Huawei, Baidu und anderen erheblich gewachsen ist und dieses Ökosystem aktiv innerhalb öffentlicher Cloud-Plattformen fördert. Toolkits und Laufzeiten. ONNX hat als Reaktion auf die Fortschritte in anderen Frameworks und Toolkits einen bedeutenden Wandel durchlaufen, wodurch es kompakt und plattformübergreifend geworden ist und mit den neuesten Entwicklungen Schritt hält.

  • 00:20:00 In diesem Abschnitt erörtert der Redner ONNX, ein portables Dateiformat, das den Export von Modellen, die in einem Framework oder Toolkit trainiert wurden, in ein anderes ermöglicht. ONNX ist stark von portablen Laufzeiten wie JVM und CLR inspiriert und bietet ein Maß an Abstraktion und Entkopplung von übergeordneten Toolkits. Es ist ein hochgradig transparentes und gut dokumentiertes Format, das Syntax, Semantik und Konventionen standardisiert, die im Deep-Learning-Bereich verwendet werden. ONNX ML ist auch eine Erweiterung, die herkömmliches maschinelles Lernen unterstützt. Wenn ein Modell als ONNX exportiert wird, wird es zu einem Diagramm mit mehreren Berechnungsknoten, die das gesamte Modell darstellen.

  • 00:25:00 In diesem Abschnitt erläutert der Referent die Struktur von Rechenknoten innerhalb eines Graphen in ONNX. Jeder Knoten ist in sich abgeschlossen und enthält einen Operator, der die eigentliche Berechnung zusammen mit Eingabedaten und Parametern durchführt. Die Eingabedaten können ein aus verschiedenen Datentypen zusammengesetzter Tensor sein, der vom Operator verarbeitet wird, um eine Ausgabe zu emittieren, die an den nächsten Berechnungsknoten gesendet wird. Der Redner weist auch darauf hin, dass Operatoren in ONNX von wesentlicher Bedeutung sind, da sie den ONNX-Operatortyp mit dem übergeordneten Framework oder Toolkit abbilden, wodurch es einfach wird, das Modell zu interpretieren und die High-Level-Graphstruktur dem tatsächlich in ONNX verfügbaren Operator zuzuordnen.

  • 00:30:00 In diesem Abschnitt behandelt das Video benutzerdefinierte Operatoren und wie sie in ONNX definiert werden können. Benutzerdefinierte Operatoren sind nützlich für fortgeschrittene Benutzer, die ihre eigenen Aktivierungsfunktionen oder -techniken erstellen, die nicht in den verfügbaren ONNX-Operatoren enthalten sind. Benutzerdefinierte Operatoren können dann beim Exportieren eines Modells aus einer Framework-Ebene in ONNX verwendet werden. Das Video zeigt dann eine grundlegende Demo zur Verwendung von ONNX, um ein trainiertes Modell mit dem ONNX-spezifischen Konverter aus dem scikit-learn-Format in das ONNX-Format zu konvertieren.

  • 00:35:00 In diesem Abschnitt hebt der Redner die Transparenz und Interpretierbarkeit des ONNX-Formats hervor, das eine einfache Analyse und Untersuchung der Modellstruktur ermöglicht. Das ONNX-Modell kann sogar nach protobuf exportiert werden, wodurch die programmgesteuerte Iteration über die verfügbaren Knoten im Modell ermöglicht wird. Das Video demonstriert die Inferenz anhand eines vorhandenen Modells, und der Code zeigt, wie Eingabedaten für die Inferenz gesendet werden, wodurch ein numpy-Array mit der Klassifizierung für jedes Element in den Eingabedaten zurückgegeben wird. Einer der Vorteile von ONNX besteht darin, dass es von Escalon entkoppelt ist, sodass Sie sich keine Gedanken darüber machen müssen, woher das Modell stammt, wodurch es einfach ist, das Modell zu konsumieren. Das ONNX-Format ähnelt DLL- oder JAR-Dateien, da Sie sich vor der Verwendung keine Gedanken über die Programmiersprache machen müssen, in der es geschrieben wurde, was es flexibel und vielseitig macht.

  • 00:40:00 In diesem Abschnitt spricht der Referent über das ONNX-Dateiformat und die ONNX-Laufzeit. ONNX ist ein portables und unabhängiges Format, das den Graphen und die Operatoren eines Modells in einer klar definierten Spezifikation definiert. ONNX Runtime hingegen ist ein Projekt, das von Microsoft vorangetrieben und befürwortet wird. Es ist ein anderes Projekt als ONNX und bringt das Versprechen von ONNX auf die nächste Stufe, indem es die tatsächliche Laufzeit erstellt. Microsoft setzt stark auf die ONNX-Laufzeit, da sie in Windows 10 zur De-facto-Ebene für Minimal wird. Der Referent erklärt die Beziehung zwischen ONNX und ONNX-Laufzeit durch eine visuelle Darstellung ihrer Ebenen.

  • 00:45:00 In diesem Abschnitt erörtert der Redner das Versprechen der ONNX-Laufzeitumgebung, die die zugrunde liegende Hardware abstrahiert und die Verwendung mit unterschiedlicher Hardware und Optimierern vereinfacht. ONNX verwendet Ausführungsanbieter über ein Plug-in-Modell, das von Hardwareanbietern erstellt werden kann, um eine Schnittstelle mit ihren vorhandenen Treibern und Bibliotheken herzustellen, wodurch die Laufzeit extrem portabel wird. Microsoft hat zahlreiche Benchmarks veröffentlicht, die beweisen, dass die ONNX-Laufzeit hochleistungsfähig ist, und viele Produktteams innerhalb von Microsoft übernehmen sie jetzt als ihre bevorzugte Deep-Learning-Laufzeit, von Bing über Office 365 bis hin zu kognitiven Diensten. Anschließend beschreibt der Referent die vier Möglichkeiten, ONNX-Modelle zu erhalten, die Sie auf der ONNX-Laufzeit ausführen können, beginnend mit Model Zoo und endend mit der Verwendung von Azure ml zum Trainieren und Bereitstellen des Modells in der Cloud oder am Rand.

  • 00:50:00 In diesem Abschnitt erläutert der Moderator, wie ein vortrainiertes ONNX-Modell aus dem Modellzoo heruntergeladen und für Inferenzen verwendet wird. Die Demo umfasst ein vortrainiertes EMNIST ONNX-Modell, das aus dem Modellzoo heruntergeladen wurde, und Testbilder von handgeschriebenen Ziffern, die für die Inferenz verwendet werden. Der Moderator geht durch den Code und erklärt die Vorverarbeitungsschritte, die erforderlich sind, bevor die Eingabedaten an das ONNX-Modell gesendet werden. Der Code verwendet ONNX-Laufzeit-, NumPy- und OpenCV-Bibliotheken, und die endgültige Ausgabe sind die vorhergesagten Ziffernwerte. Der Moderator zeigt, dass das Modell genau ist und handgeschriebene Ziffern korrekt identifizieren kann.

  • 00:55:00 In diesem Abschnitt demonstriert der Referent, wie die endgültige Inferenz in einem sehr reaktiven Anwendungsfall durchgeführt wird, in dem das Training mit PI Torch erfolgt und die Inferenz in TensorFlow durchgeführt wird. Der Referent zeigt, wie man ein PI-Torch-Modell in ein ONNX-Modell und dann weiter in eine Protobuf-Datei konvertiert, die direkt in TensorFlow verwendet werden kann. Der Code ist unkompliziert und die Konvertierung erfolgt über ein integriertes Exporttool, das in Pytorch verfügbar ist.

  • 01:00:00 In diesem Abschnitt erklärt der Referent, wie man ein ONNX-Modell in ein TensorFlow-Format konvertiert. Dazu importieren Sie einfach ONNX und verwenden die „prepare“-Funktion aus dem „ONNX TF-Backend“, um das Modell zu laden, und schreiben dann die Ausgabe in eine „.pb“-Datei. Der Referent demonstriert, dass das TensorFlow-Modell dann für Inferenzen verwendet werden kann, ohne auf ONNX Bezug zu nehmen. Die Sitzung endet mit einem Hinweis auf kommende Artikel zu ONNX durch den Referenten zu The New Stack, wo Tutorials und der gesamte Quellcode verfügbar sein werden.

    01:05:00
    Dieser Abschnitt enthält keine Informationen zu ONNX, sondern dient eher als Abschluss eines Webinars zum Thema. Der Referent dankt dem Publikum für seine Teilnahme und Unterstützung und kündigt an, dass das aufgezeichnete Video des Webinars bald hochgeladen wird. Das Publikum wird gebeten, die Relevanz und Qualität des Webinars zu bewerten, wobei die meisten Befragten positives Feedback geben. Der Redner schließt mit der Ankündigung eines weiteren bevorstehenden Webinars zur verteilten Anwendungslaufzeit von Microsoft, das nächsten Monat stattfinden wird.
Everything You Want to Know About ONNX
Everything You Want to Know About ONNX
  • 2020.07.12
  • www.youtube.com
Open Neural Network Exchange (ONNX) is an open format built to represent machine learning models. It defines the building blocks of machine learning and deep...
 

ONNX und ONNX Runtime



ONNX und ONNX Runtime

Das ONNX-Ökosystem ist ein interoperables Standardformat, das Modelle aus beliebigen Frameworks in ein einheitliches Modelldarstellungsformat konvertiert, das für jedes Bereitstellungsziel optimiert ist. Die ONNX Runtime-Implementierung des ONNX-Standards ist plattformübergreifend und modular und unterstützt Hardwarebeschleuniger. Die verschiedenen Optimierungsebenen, an denen die Transformer arbeiten, umfassen Graphtransformation, Graphpartitionierung und Zuweisung. Die Referenten diskutieren auch verschiedene Vorteile der Verwendung von ONNX, wie z. B. C-API, API-Stabilität, um neue Leistungsvorteile zu nutzen, ohne sich Gedanken über die Unterbrechung der Binärkompatibilität machen zu müssen, und das ONNX Go Live-Tool, mit dem die optimale Konfiguration für den Betrieb eines ONNX-Modells bestimmt werden kann auf unterschiedlicher Hardware. Sie vergleichen ONNX auch mit Frameworks und sprechen die plattformübergreifende Kompatibilität an.

  • 00:00:00 In diesem Abschnitt gibt Ton of Sharma vom ONNX Runtime-Team eine Einführung und einen Überblick über das ONNX-Ökosystem und erläutert seine Motivation und weit verbreitete Akzeptanz bei Microsoft sowie das technische Design für ONNX und ONNX Runtime. Er hebt die Probleme verschiedener Teams hervor, die unterschiedliche Frameworks zum Trainieren ihrer Modelle verwenden, aber wenn es darum geht, Modelle in der Produktion bereitzustellen und die Hardware voll auszunutzen, sitzt ONNX in der Mitte und konvertiert Modelle aus jedem Framework in ein einheitliches Modelldarstellungsformat. optimiert für jedes Bereitstellungsziel, wodurch es zu einem interoperablen Standardformat wird. Das Open-Source-Projekt wurde im Dezember 2017 gestartet, wobei Facebook, Microsoft und Amazon zu den ersten gehörten, die sich dem Konsortium anschlossen, das mittlerweile mehr als 40-50 Unternehmen umfasst, die aktiv an ONNX teilnehmen und in ONNX investieren.

  • 00:05:00 In diesem Abschnitt erörtert der Referent die verschiedenen Möglichkeiten, ein ONNX-Modell zu erhalten, nachdem ein Modell im gewünschten Framework trainiert wurde, z. B. mithilfe des ONNX-Modellzoos, des Azure Custom Vision AutoML-Tools oder der Open-Source-Konvertierung Tools zum Konvertieren eines Modells in einem bestimmten Format in ONNX. Die ONNX Runtime, die Implementierung des ONNX-Standards, wird eingeführt, um das ONNX-Modell so schnell wie möglich auf dem gewünschten Gerät oder Bereitstellungsziel auszuführen. Es ist erweiterbar, modular und plattformübergreifend, mit integrierter Unterstützung für Hardwarebeschleuniger von verschiedenen Anbietern wie Tensor RT und Intel MKL DNN. Die neueste Version, ONNX Runtime 1.0, bietet volle Unterstützung für die ONNX-Spezifikation und ist die Kernbibliothek, die im Windows Machine Learning-Framework ausgeführt wird.

  • 00:10:00 In diesem Abschnitt spricht der Sprecher über die Bereitstellung von ONNX, nachdem es in ein JET-Format kompiliert wurde, wobei LLVM und TVM als zugrunde liegende Frameworks verwendet wurden. Sie haben Referenzpunkte und Notebooks für die Bereitstellung von ONNX auf verschiedenen Gerätetypen veröffentlicht, darunter Azure Machine Learning Service, Edge-Clouds und Edge-IoT-Geräte, was Teil ihrer Planung für die MNIST-Plattform ist. ML minimal und ML dotnet von Microsoft unterstützen bereits ONNX, und sie haben bisher etwa 60+ ONNX-Modelle in Produktion mit einer durchschnittlich 3-fachen Leistungssteigerung. Die Designprinzipien für ONNX sollten interoperabel, kompakt, plattformübergreifend und abwärtskompatibel sein und sowohl Deep-Load- als auch traditionelle Machine-Learning-Modelle unterstützen.

  • 00:15:00 In diesem Abschnitt geht der Referent auf die drei Teile der ONNX-Spezifikation ein, beginnend mit der Darstellung des Datenflussgraphen selbst. Er erklärt, dass die Darstellung erweitert werden kann und neue Operatoren und Typen hinzugefügt werden können. Der zweite Teil ist die Definition von Standardtypen und Attributen, die im Diagramm gespeichert sind, während der dritte Teil das Schema für jeden Operator im ONNX-Modell ist. Das Modelldateiformat basiert auf protobuf, das leicht inspiziert werden kann, und enthält die Version, Metadaten und den azyklischen Berechnungsgraphen, der aus Eingaben, Ausgaben, Berechnungsknoten und Diagrammnamen besteht. Tensortypen, komplexe und Nicht-Tensortypen wie Sequenzen und Karten werden unterstützt. Das ONNX-Operator-Set umfasst rund 140 Operatoren, und jeder kann weitere Operatoren hinzufügen, indem er eine Pull-Anfrage an das ONNX-Open-Source-GitHub-Repository sendet.

  • 00:20:00 In diesem Abschnitt erörtert der Redner die Funktionen von ONNX, einschließlich der Möglichkeit, benutzerdefinierte Operationen hinzuzufügen, die von den bestehenden Operationen von ONNX möglicherweise nicht unterstützt werden. Der Redner spricht auch über die Bedeutung der Versionierung und wie ONNX die Versionierung auf drei verschiedenen Ebenen integriert, einschließlich der IR-Version, der OP-Set-Version und der Operator-Version. Die ONNX-Laufzeit wird ebenfalls diskutiert, wobei ihre Hauptziele Leistung, Abwärts- und Aufwärtskompatibilität, plattformübergreifende Kompatibilität und hybride Ausführung von Modellen sind. Die Laufzeit umfasst eine Plug-in-Architektur zum Hinzufügen externer Hardwarebeschleuniger.

  • 00:25:00 In diesem Abschnitt erläutert der Referent die zwei Phasen der Ausführung eines Modells innerhalb der ONNX Runtime, nämlich das Erstellen einer Sitzung mit dem Modell und das Laden des Modells, gefolgt vom Aufrufen der Run-APIs. Beim Laden des Modells wird eine ineffiziente Diagrammdarstellung des Protobuf erstellt, und dann durchläuft das Diagramm verschiedene Ebenen von Diagrammtransformationen, ähnlich wie bei Compiler-Optimierungen. ONNX Runtime bietet verschiedene Ebenen von Graphtransformationsregeln und Fusionen, die angepasst werden können, und der Benutzer kann seine eigenen Regeln über die API hinzufügen. Nachdem der Graph optimiert wurde, wird er in verschiedene Hardwarebeschleuniger partitioniert, und jeder Knoten wird einem bestimmten Beschleuniger zugewiesen. Der Sprecher geht auch auf den Ausführungsteil ein und erwähnt die beiden Betriebsmodi, den sequentiellen Modus und den parallelen Ausführungsmodus. Abschließend spricht der Referent über die zukünftige Arbeit von ONNX Runtime, dem Benutzer mitzuteilen, auf welchen Anbietern er laufen soll.

  • 00:30:00 In diesem Abschnitt erläutert der Referent die Details zur Optimierung in der ONNX Runtime. Die Transformation des Graphen, die Partitionierung des Graphen und die Zuweisung sind die verschiedenen Optimierungsebenen, an denen die Transformer arbeiten, um den Graphen neu zu schreiben. Sitzung und Ausführung sind die zweifache API der ONNX-Laufzeit, die das Modell lädt und optimiert, um es mit einem einfachen Aufruf der Ausführungsfunktion betriebsbereit zu machen. Der Referent spricht auch über den Ausführungsanbieter, der die Hardwarebeschleunigerschnittstelle der ONNX-Laufzeit darstellt, und wie Anbieter einen neuen Hardwarebeschleuniger hinzufügen können, indem sie eine Ausführungsanbieter-API implementieren. Abschließend erwähnt der Redner die zahlreichen Erweiterungspunkte der ONNX-Laufzeit, wie das Hinzufügen neuer Ausführungsanbieter oder benutzerdefinierter Operationen und das Erweitern der Fusionsebene.

  • 00:35:00 In diesem Abschnitt erörtert der Referent die Vorteile der Verwendung der C-API in ONNX Runtime, einschließlich der API-Stabilität, die es Benutzern ermöglicht, neue Leistungsvorteile zu nutzen, ohne sich Gedanken über eine Unterbrechung der Binärkompatibilität machen zu müssen. Er erläutert auch das ONNX Go Live-Tool, mit dem die optimale Konfiguration für den Betrieb eines ONNX-Modells auf unterschiedlicher Hardware ermittelt werden kann. Der Redner geht dann auf kommende Funktionen ein, darunter Unterstützung für N in API auf Android-Geräten, Qualcomm und Trainingsoptimierung, zusätzlich zu kontinuierlichen Leistungsoptimierungen, damit ONNX Runtime so schnell wie möglich läuft.

  • 00:40:00 In diesem Abschnitt des Videos konzentrieren sich die Sprecher auf die Bedeutung der Betriebsoptimierung innerhalb eines bestimmten Operators (OP), um sicherzustellen, dass er so schnell wie möglich läuft. Sie vergleichen ONNX mit Frameworks und versuchen herauszufinden, ob es besser abschneidet als seine Vorgänger. Die Referenten diskutieren auch, wie das Training funktioniert, und stellen fest, dass sie zwar daran arbeiten, das Quellentraining jedoch noch nicht abgeschlossen ist. Sie beantworten auch Fragen dazu, was das ONNX-Format produziert und welche Art von Formaten es verarbeiten kann, wie z. B. Zeichenfolgen. Es gibt einige Diskussionen über die Auswirkungen von Microsoft auf das Design von ONNX Runtime als Festzeltprodukt, das derzeit keinen offenen Governance-Modus hat und letztendlich von Microsoft kontrolliert wird, obwohl sie weiterhin externe Beiträge begrüßen. Der Redner geht auch auf die plattformübergreifende Kompatibilität ein und stellt fest, dass die Laufzeitumgebung für Linux, Windows und Mac ausgelegt ist.
 

ONNX - ONNX Runtime, einfaches Beispiel



ONNX - ONNX Runtime, einfaches Beispiel

In diesem YouTube-Video stellt der Referent ONNX vor, ein offenes Format für maschinelle Lernmodelle, das die Leistung über mehrere Frameworks hinweg optimieren kann. Das Video zeigt Beispiele für die Verwendung von ONNX in verschiedenen Szenarien, z. B. Stimmungsanalyse von Nachrichtenartikeln und Umwandlung numerischer Vektorklassifikatoren in neuronale Netze. Der Referent betont, wie wichtig es ist, bewährte Bibliotheken für Funktionen zu verwenden und die Ausführungszeit für Code genau zu messen. Darüber hinaus erörtert der Referent die Herausforderungen bei der Entwicklung auf verschiedenen Betriebssystemen und empfiehlt, nur notwendige Module zu laden, um die Laufzeitleistung zu verbessern. Insgesamt bietet dieses Video wertvolle Einblicke in die Vorteile und Herausforderungen der Verwendung von ONNX für Machine-Learning-Modelle.

  • 00:00:00 In diesem Abschnitt beschreibt der Referent ONNX, ein offenes Format für maschinelle Lernmodelle, das über verschiedene Frameworks hinweg verwendet werden kann, um die Leistung der Modelle zu optimieren. ONNX basiert auf dem Protokollpuffer, der ein analoges Binärformat des XML-Formats ist, aber schneller und besser für kleinere Nachrichten geeignet ist. ONNX-Modelle können in einem Betriebssystem und Prozessor entwickelt und überall verwendet werden, einschließlich mobiler Geräte und Grafikkarten. Die ONNX-Laufzeit ist eine Bibliothek zur plattformübergreifenden Beschleunigung von Modelltraining und Inferenz. ONNX ermöglicht auch die Quantisierung des Modells, um seine Größe zu reduzieren, ohne Hardwarebeschleunigung zu verwenden, und das Beschneiden eines Modells, um seine Größe zu reduzieren, indem einige seiner Gewichtswerte durch Nullwerte ersetzt werden. Der Redner enthält einen Link zu den Websites, auf denen weitere Informationen über ONNX zu finden sind.

  • 00:05:00 In diesem Abschnitt erläutert der Referent die Schritte, die zum Arbeiten mit einem vorab trainierten Modell im ONNX-Format unter Verwendung von ONNX Runtime erforderlich sind. Das Modell kann mit einem beliebigen Framework erstellt, im ONNX-Format gespeichert und dann auf verschiedene Weise verwendet werden, z. B. auf einem weniger leistungsstarken Server oder zur Bewältigung hoher Serverlasten. Der Redner liefert dann ein Beispiel für die Verwendung der Hugging Face Transformer-Bibliothek, um die Stimmung von Nachrichtenartikeln im Zusammenhang mit Kryptowährung zu bestimmen. Abschließend demonstriert der Referent eine Anwendung des Modells, indem er die erforderlichen Bibliotheken lädt und verarbeitet und das Ergebnis der Ausführung des Modells anhand eines Beispielnachrichtenartikels zeigt.

  • 00:10:00 In diesem Abschnitt erörtert der Referent den Prozess der Konvertierung eines numerischen Vektorklassifikators, um mithilfe des ONNX-Frameworks Ergebnisse aus einem neuronalen Netzwerk zu erzeugen. Sie erklären, dass die SoftMax-Funktion nicht verwendet wurde, da sie den Prozess erheblich verlangsamte, und stattdessen manuell eingegebene Werte verwendet wurden. Das Modell wurde dann geladen und auf Genauigkeit getestet und zeigte vielversprechende Ergebnisse. Bei der Installation auf verschiedenen Betriebssystemen und Frameworks traten jedoch Schwierigkeiten auf, was die Notwendigkeit gründlicher Tests und Flexibilität bei der Bereitstellung von Modellen verdeutlichte.

  • 00:15:00 In diesem Abschnitt erörtert der Referent die potenziellen Probleme, die auftreten können, wenn versucht wird, Software auf verschiedenen Plattformen zu entwickeln, und wie wichtig es ist, etablierte Bibliotheken zu verwenden, anstatt zu versuchen, alles manuell zu implementieren. Sie erwähnt Probleme bei der Verwendung unterschiedlicher Fließkommaformate und wie dies zu Fehlern führen kann, wenn man versucht, mit sehr großen oder sehr kleinen Zahlen zu arbeiten. Darüber hinaus schlägt sie vor, bereits vorhandene Implementierungen von Funktionen wie SoftMax zu verwenden, anstatt zu versuchen, benutzerdefinierte zu erstellen, da sich die Entwickler etablierter Bibliotheken bereits mit potenziellen Problemen befasst haben, die auftreten können.

  • 00:20:00 In diesem Abschnitt erörtert der Referent die Probleme, auf die er bei der Entwicklung unter MacOS gestoßen ist, und die Unterschiede zwischen MacOS und Linux. Er erwähnt auch die Notwendigkeit, nur notwendige Module zu laden und den Rest zu deaktivieren, um die Laufzeitleistung zu verbessern, da das Laden zu vieler Module die Ausführungszeit erheblich beeinträchtigen könnte. Der Redner empfiehlt außerdem die Verwendung des Dienstprogramms „timeet“, um die Laufzeit genau zu messen und dabei die verschiedenen Faktoren zu berücksichtigen, die sich auf die Leistung auswirken können.

  • 00:25:00 In diesem Abschnitt des Videos erläutert der Sprecher die Bedeutung der Messung der Ausführungszeit für Code, insbesondere für den Vergleich der Leistung verschiedener Codeteile. Sie betonen die Notwendigkeit, die Ausführungszeit mehrmals zu messen und den Durchschnitt für eine genauere Bewertung zu nehmen. Der Referent verwendet dann diesen Ansatz, um die Leistung von zwei Codeteilen mit unterschiedlichen Arten der Datenverarbeitung zu vergleichen, wobei sich herausstellte, dass eine Methode deutlich schneller war als die andere. Abschließend stellt der Redner einen Link zu seiner Präsentation bereit und dankt dem Publikum für seine Teilnahme.
ONNX - ONNX Runtime, простой пример.
ONNX - ONNX Runtime, простой пример.
  • 2023.01.25
  • www.youtube.com
Доклад об использовании ONNX моделей. Подготовлен в рамках курса от ods.ai ML System Design. Рассмотрен простой пример https://github.com/lunaplush/onnx_exam...
 

Eine Übersicht über den PyTorch-ONNX-Konverter



Eine Übersicht über den PyTorch-ONNX-Konverter

In dieser Übersicht stellt Bowen Bao von Microsoft den PyTorch-ONNX-Konverter vor und erläutert seine Architektur und seinen Ablauf zum Konvertieren eines PyTorch-Modells in die Fackel-Zwischendarstellung (IR) und dann in die ONNX-IR und schließlich in eine Protobuf-Datei. Der Konverter übernimmt den Export von Modellen mit dynamischen Formen, quantifizierten Modellen und erfasst Schleifen, if-Anweisungen und andere Operationen über ONNX-Schleife und ONNX-if-Knoten. Darüber hinaus können Benutzer benutzerdefinierte Operatoren erstellen oder vorhandene benutzerdefinierte PyTorch-Operatoren verwenden, um ein ONNX-Modell zu exportieren, oder eine benutzerdefinierte symbolische Funktion registrieren, um dem Exporteur mitzuteilen, wie er es exportieren soll. Bowen erläutert auch die lokale ONNX-Funktion, spricht gemischte Präzision durch Autocast an und schließt mit Plänen ab, weiterhin mehr Modelle zu unterstützen und gleichzeitig die Fehlerdiagnose zu verbessern.

  • 00:00:00 In diesem Abschnitt gibt Bowen, ein Softwareentwickler bei Microsoft, einen Überblick über den PyTorch-ONNX-Konverter, einschließlich seiner Architektur und seines Ablaufs. Der Konverter, der Teil des PyTorch-Pakets ist, verwendet den Fackel-Tracer und das Fackel-Skript, um ein PyTorch-Modell in die Fackel-Zwischendarstellung (IR) und dann in die ONNX-IR zu konvertieren. Der letzte Schritt umfasst die Serialisierung in ein ONNX-Modell in einer Protobuf-Datei. Der Konverter unterstützt den Export von Modellen mit dynamischen Eingabe- und Ausgabeformen sowie quantifizierten Modellen und kann Schleifen, if-Anweisungen und andere Operationen über ONNX-Schleife und ONNX-if-Knoten erfassen. Darüber hinaus können Benutzer benutzerdefinierte Operatoren erstellen oder vorhandene benutzerdefinierte PyTorch verwenden
    Operatoren, um ein ONNX-Modell zu exportieren oder eine benutzerdefinierte symbolische Funktion zu registrieren, um dem Exporteur mitzuteilen, wie er es exportieren soll. Abschließend erläutert Bowen die Motivation hinter der lokalen ONNX-Funktion.

  • 00:05:00 In diesem Abschnitt liegt der Schwerpunkt auf dem PyTorch-ONNX-Konverter und einigen häufigen Beschwerden im Zusammenhang mit dem exportierten ONNX-Modell, z. B. abgeflachten Knoten. Um dieses Problem zu beheben, wurde eine lokale Funktionsfunktion hinzugefügt, die es Benutzern ermöglicht, eine Torch-Modulklasse oder eine Knotentypfunktion anzugeben. Mixed Precision wird auch durch die Verwendung von Torch Autocast und NVIDIA Apex mp unterstützt. Das Video endet mit einer Diskussion über eine verbesserte Fehlerdiagnose und das Ziel, weitere Modelle zu unterstützen. Die bereitgestellten Links bieten hilfreiche Ressourcen und Tools für diejenigen, die den PyTorch-ONNX-Konverter verwenden.
An Overview of the PyTorch-ONNX Converter
An Overview of the PyTorch-ONNX Converter
  • 2022.07.13
  • www.youtube.com
This session will present an overview of the PyTorch-ONNX converter, its implementation, and recent improvements to support a wide range of models.Bowen is a...
 

Einführung in ONNX | Tutorial-1 | Öffnen Sie den neuronalen Netzwerkaustausch | ONNX



Einführung in ONNX | Tutorial-1 | Öffnen Sie den neuronalen Netzwerkaustausch | ONNX

Dieses Tutorial bietet eine Einführung in ONNX, ein intermediäres Framework für maschinelles Lernen, das vorhandene Modelle von einem Framework in ein anderes konvertiert. Der Kurs behandelt die Herausforderungen beim Deep Learning, einen Überblick über ONNX und eine Diskussion über die ONNX-Laufzeit. Der Kursleiter demonstriert praktische Beispiele für die Konvertierung von Modellen mit ONNX und teilt einen Anwendungsfall aus der Praxis der Konvertierung eines Python-Modells in ein TensorFlow-Modell. Vertrautheit mit der Python-Programmierung, den Grundlagen des maschinellen Lernens und Frameworks wie PyTorch, TensorFlow und Scikit-learn ist erforderlich.

Introduction to ONNX | Tutorial-1 | Open Neural Network Exchange | ONNX
Introduction to ONNX | Tutorial-1 | Open Neural Network Exchange | ONNX
  • 2022.05.21
  • www.youtube.com
Check out my other playlists:► Complete Python Programming: https://youtube.com/playlist?list=PLkz_y24mlSJaY8YuDJniDw-naFVMac-3k► 100 Days of Machine Learni...
Grund der Beschwerde: