Lernen mit ONNX für den Handel - Seite 12

 

ONNX und die JVM


ONNX und die JVM

Die ONNX-Unterstützung auf der Java Virtual Machine (JVM) ist von entscheidender Bedeutung, da ML-Modelle in praktisch jeder Anwendung immer wichtiger werden. Da Java eine der größten Plattformen zum Erstellen von Live-Softwareanwendungen ist, ist es wichtig, Unterstützung in Programmiersprachen wie Java oder C# bereitzustellen. Oracle zielt darauf ab, die ONNX-Laufzeit-C-API in Java bereitzustellen, um eine einfache Bereitstellung mit minimaler Auswirkung auf die Leistung durch die Verwendung einer dünnen Schicht der Java-API über der C-API zu ermöglichen. Der Redner erörtert auch eine Open-Source-Bibliothek zum Schreiben von ONNX-Modellen aus Java, stellt ein Beispiel für ein logistisches Regressionsdiagramm vor und lädt zu einem Beitrag zum ONNX-Exportmaterial in Trippo ein, während er die fehlende Standardisierung im ONNX-Metadatenformat diskutiert.

  • 00:00:00 In diesem Abschnitt erklärt  Adam Pocock, ein Forscher in der Forschungsgruppe für maschinelles Lernen bei Oracle Labs, warum die Unterstützung von ONNX auf der Java Virtual Machine (JVM) wichtig ist. Da ML-Modelle in fast jeder Anwendung immer wichtiger werden, ist es wichtig, Unterstützung in den Sprachen bereitzustellen, in denen Anwendungen geschrieben sind, wie z. B. Java oder C#. Laut Pocock ist Java mit Millionen von Java-Entwicklern eine der größten Plattformen zum Erstellen von Live-Softwareanwendungen weltweit. Daher ist es das Ziel von Oracle, die ONNX-Laufzeit-C-API in Java bereitzustellen, um die Bereitstellung für Benutzer mit minimalen Auswirkungen auf die Leistung zu vereinfachen. Ein kurzes Codebeispiel wird gezeigt, um die dünne Schicht der Java-API gegenüber der C-API zu demonstrieren.

  • 00:05:00 In diesem Abschnitt erörtert der Referent die Herausforderungen bei der Verwendung von Java-Objekten mit einem gepaarten nativen Objekt, um den Overhead für maschinelle Lernmodelle zu minimieren. Sie erklären, dass Sicherheitsnetze vorhanden sind, um sicherzustellen, dass alles aufgeräumt ist, aber die Verwendung regulärer Arrays wird nicht empfohlen. Der Referent stellt auch eine Open-Source-Bibliothek zum Schreiben von ONNX-Modellen aus Java vor, die die Attributvalidierung und -prüfung sowie die Möglichkeit zum einfachen Export von Java-Arrays umfasst. Sie liefern ein Beispiel dafür, wie man mit dieser Bibliothek einen logistischen Regressionsgraphen schreibt, und erwähnen Pläne zur Erweiterung des Operatorenums und zur Integration von Provenienz und Metadaten in die konvertierten Modelle.

  • 00:10:00 In diesem Abschnitt geht der Referent auf die fehlende Standardisierung des Metadatenformats in ONNX ein. Es besteht zwar die Möglichkeit, Daten wie Trainingsdaten und Hyperparameter in ONNX-Metadaten aufzunehmen, jedoch nicht standardisiert. Der Referent bekundet Interesse an der Arbeit, die Intel zur Standardisierung des Metadatenformats leistet. Der Redner lädt auch zu Beiträgen zum ONNX-Exportmaterial in Trippo ein und regt zur Diskussion über das Thema an.
ONNX and the JVM
ONNX and the JVM
  • 2022.07.13
  • www.youtube.com
Integrating machine learning into enterprises requires building and deploying ML models in the environment's enterprises build their software in. Frequently ...
 

Bauen Sie Ihre leistungsstarke Modellinferenzlösung mit DJL und ONNX Runtime auf



Bauen Sie Ihre leistungsstarke Modellinferenzlösung mit DJL und ONNX Runtime auf

Die Deep Java Library (DJL) ist eine auf Java basierende Bibliothek für maschinelles Lernen, die Deep-Learning-Bibliotheken abstrahiert und mehrere Backends wie Apache MXNet, TensorFlow und PyTorch bietet. Die Bibliothek verfügt über eine Reihe vortrainierter Modelle für verschiedene Aufgaben und ist einsatzbereit, nachdem sie strengen Tests unterzogen wurde, um eine Spitzenleistung sicherzustellen und gleichzeitig die Kontrolle über die Speichernutzung zu behalten. Die Referenten stellen auch das Hybridmotorkonzept vor, das beide Motoren zusammen lädt und einen reibungsloseren Übergang zwischen den Motoren für Schlussfolgerungen bietet. Zu den weiteren Entwicklungen gehören die Unterstützung von ARM-Servern, die Ausführung von ONNX Runtime auf Android-Geräten und die Bereitstellung der Hybrid-Engine-Lösung für Edge-Geräte.

  • 00:00:00 In diesem Abschnitt stellt der Referent die Deep Java Library (DJL) und ihre Integration mit der ONNX Runtime vor, die sich als gute Leistung für Anwendungsfälle des maschinellen Lernens sowohl innerhalb als auch außerhalb von Amazon erwiesen hat. DJL ist eine auf Java basierende Bibliothek für maschinelles Lernen, die Deep-Learning-Bibliotheken abstrahiert und mehrere Backends wie Apache MXNet, TensorFlow und PyTorch bietet. DJL verfügt über eine Reihe vortrainierter Modelle, darunter beliebte von Hugging Face und Torch Hub, für Aufgaben wie Bildklassifizierung, Objekterkennung, Stimmungsanalyse und Aktionserkennung. Der Vorteil von DJL besteht darin, dass es einsatzbereit ist und strengen Tests unterzogen wurde, um Spitzenleistung zu gewährleisten und gleichzeitig die Speichernutzung zu kontrollieren. Der Redner teilt auch einige erfolgreiche Anwendungsfälle von Kunden, die ONNX Runtime und DJL genutzt haben, und zeigt signifikante Verbesserungen der Modellinferenzgeschwindigkeit und der Multithreading-Inferenz, selbst bei der Konvertierung von verschiedenen Deep-Learning-Frameworks wie TensorFlow und PaddlePaddle, die keine Thread-Sicherheit unterstützten Multithreading.

  • 00:05:00 In diesem Abschnitt erörtern die Referenten die Herausforderungen, mit denen Benutzer von ONNX Runtime aufgrund des Fehlens integrierter Operatoren konfrontiert sind, was die Vor- und Nachverarbeitung in Java für das undimensionale Array erschwert Betrieb. Sie schlagen ein neues Konzept namens Hybridmotor vor, das beide Motoren gleichzeitig lädt und so einen reibungsloseren Übergang zwischen Motoren für Schlussfolgerungen ermöglicht. Die Deep Java Library bietet eine Kriterienklasse, in der der Benutzer definieren kann, wie sein Modell geladen wird, und der Übersetzer bietet Abstraktion, um die Vor- und Nachverarbeitung durchzuführen. Sie führen auch den ND Manager ein, eine baumartige Architektur, die das Garbage-Collection-System in Java ersetzt, um eine kostengünstige Speichersammlung bereitzustellen. Die Referenten erwähnen weitere Entwicklungen, wie die Unterstützung des ARM-Servers, die Ausführung von ONNX Runtime auf Android-Geräten und die Bereitstellung der Hybrid-Engine-Lösung für Edge-Geräte.
Build your high-performance model inference solution with DJL and ONNX Runtime
Build your high-performance model inference solution with DJL and ONNX Runtime
  • 2022.07.13
  • www.youtube.com
In many companies, Java is the primary language for the teams to build up services. To have ONNX model onboard and integration, developers faced several tech...
 

[FlexFlow Bootcamp 2020] FlexFlow-Front-End-Unterstützung: TensorFlow Keras, PyTorch, ONNX und mehr



[FlexFlow Bootcamp 2020] FlexFlow-Front-End-Unterstützung: TensorFlow Keras, PyTorch, ONNX und mehr

In diesem Abschnitt des Videos erläutert der Redner die FlexFlow-Python-API, die TensorFlow Keras, PyTorch und ONNX unterstützt. Der Prozess des Erstellens und Trainierens eines Modells umfasst das Hinzufügen von Operatoren zum Modell, das Kompilieren des Modells, das Erstellen von Datenladern und das Initialisieren/Trainieren des Modells mithilfe der Anpassungsfunktion oder angepasster Trainingsverfahren. Die Referenten diskutieren auch die Unterstützung für Keras- und PyTorch-Modelle in FlexFlow sowie die Möglichkeit, bereits vorhandene Modelle über die ONNX-Zwischendarstellung zu importieren. Es ist jedoch wichtig, die Konsistenz zwischen der zum Erstellen von FlexFlow verwendeten Bibliothek und der zum Erstellen des ONNX-Python-Pakets verwendeten Bibliothek sicherzustellen.

  • 00:00:00 In diesem Abschnitt des Videos stellen die Moderatoren die Front-End-Unterstützung in FlexFlow vor, insbesondere die Python-API. Die FlexFlow-Laufzeitumgebung baut auf der Legion-Laufzeitumgebung auf, einem aufgabenbasierten Programmsystem, das von Forschern der Stanford University, NVIDIA und Los Alamos entwickelt wurde. Die Python-API ruft die C++-API über die cffi-Bibliothek auf, und eine dünne Ebene der Python-API bietet die gleiche Leistung wie die Verwendung der C++-API. Die Referenten besprechen dann die Schritte zum Erstellen eines Modells mit der FlexFlow-Python-API, bei der zuerst eine Konfigurationsdatei und dann ein Eingabetensor im NCHW-Format erstellt wird. Darüber hinaus führen sie die Unterstützung für Keras und ONNX ein.

  • 00:05:00 In diesem Abschnitt des Videos erläutert der Referent den Prozess zum Erstellen und Trainieren eines Modells mithilfe der FlexFlow-Python-API, die TensorFlow Keras, PyTorch und ONNX unterstützt. Der Referent erklärt zunächst, wie man dem Modell Operatoren hinzufügt, wie z. B. den Faltungs-2D-Operator, der immer einen Eingabetensor nimmt und einen Ausgabetensor zurückgibt. Der nächste Schritt besteht darin, das Modell zu kompilieren, das Tensoren zuweist und die Parallelisierungsstrategie und Modellfusion optimiert. Dann werden Data Loader erstellt und das Modell wird initialisiert und mit der Fit-Funktion oder angepassten Trainingsverfahren trainiert. Der Referent hebt auch die Ähnlichkeiten zwischen den Python- und C++-APIs hervor und präsentiert eine Liste von Operatoren, die von FlexFlow unterstützt werden, mit der Möglichkeit, auf Anfrage neue Operatoren zu implementieren. Abschließend erörtert der Referent die Unterstützung für Keras- und PyTorch-Modelle in FlexFlow, wobei eine Demo für die praktische Übung geplant ist.

  • 00:10:00 In diesem Abschnitt erörtern die Referenten den Import bereits vorhandener Modelle in FlexFlow, insbesondere über die ONNX-Zwischendarstellung. Das ONNX-Paket ermöglicht den Export von Modellen aus anderen Deep-Learning-Frameworks wie PyTorch oder TensorFlow und den Import in FlexFlow unter Verwendung desselben Dateinamens. Es ist jedoch wichtig sicherzustellen, dass die zum Erstellen von FlexFlow verwendete Bibliothek dieselbe ist wie die zum Erstellen des ONNX-Python-Pakets verwendete. Der ONNX-Support ist noch in Arbeit, und Patches sind willkommen.
[FlexFlow Bootcamp 2020] FlexFlow Front-End Supports: TensorFlow Keras, PyTorch, ONNX, and more
[FlexFlow Bootcamp 2020] FlexFlow Front-End Supports: TensorFlow Keras, PyTorch, ONNX, and more
  • 2020.12.15
  • www.youtube.com
We are excited to announce the first FlexFlow bootcamp, 9:00-13:00 PDT December 11th 2020. The bootcamp is designed for people interested in using FlexFlow t...
 

Maschinelles Lernen lernen mit .NET, PyTorch und der ONNX Runtime



Maschinelles Lernen lernen mit .NET, PyTorch und der ONNX Runtime

In diesem Video zum Lernen von maschinellem Lernen mit .NET, PyTorch und der ONNX-Laufzeit stellen die Referenten die ONNX-Laufzeit vor und erklären die verschiedenen Schritte zum Trainieren eines maschinellen Lernmodells. Sie zeigen auch, wie das ONNX-Format mit .NET für Deep Learning verwendet wird, und erörtern die Bedeutung des Verständnisses von Hyperparametern und der Optimierungsmethode für genaue Modellvorhersagen. Die Referenten zeigen auch, wie Sie die ONNX-Laufzeit verwenden, um ein Modell zu laden und Vorhersagen zu treffen, und wie Sie potenzielle Fehler mit einem Try-Block beim Ausführen einer Sitzung behandeln. Darüber hinaus diskutieren sie die Verwendung des Unsicherheitsvektors, um die Unsicherheit der KI in ihren Vorhersagen aufzuzeigen, und erwähnen einige Branchen, in denen KI verwendet wird, wie z. B. Betrugserkennungs- und Empfehlungssysteme.

  • 00:00:00 In diesem Abschnitt des Videos „Learning Machine Learning with .NET, PyTorch and the ONNX Runtime“ stellen die Hosts die ONNX Runtime vor und wie sie mit .NET für Deep Learning verwendet werden kann. Sie erklären, dass der nächste Schritt nach dem Trainieren eines Modells darin besteht, die Modelldatei in das Projekt zu bringen und die Antwort zu erhalten. Sie verwenden das Beispiel der Erkennung von Zahlen und zeigen ein Py-Torch-GitHub-Repo mit einem Convolutional Neural Network-Modell. Sie heben auch die Nützlichkeit von VS Code als IDE für Python mit seinen integrierten Features und Funktionen hervor.

  • 00:05:00 In diesem Abschnitt erläutert der Redner, wie sie Testdaten verwenden, um ihr maschinelles Lernmodell zu trainieren, und sobald es herausgefunden hat, wie die Knöpfe am besten eingestellt werden können, speichern sie das Modell und schalten das Wasser ab. Sie demonstrieren ein Beispiel eines Modells, das sie mit Bildern der Zahlen null bis neun trainiert haben, und erklären, dass die Ausgabe zehn Elemente enthält, da die Bilder nur null bis neun sind. Sie betonen auch die Bedeutung der Verlustfunktion, die die Differenz zwischen dem vorhergesagten Ergebnis und dem tatsächlichen Ergebnis misst, und der Genauigkeit, die misst, wie viele Ergebnisse richtig oder falsch sind. Der Redner schlägt vor, dass die Auswahl der richtigen Modellform, Hyperparameter wie Lernrate, Stapelgröße und Epochen sowie das Testen verschiedener Datensätze wesentliche Schritte sind, um sicherzustellen, dass der maschinelle Lernalgorithmus eine hohe Genauigkeit erreicht.

  • 00:10:00 In diesem Abschnitt des Videos diskutieren die Referenten die Verwendung des ONNX-Formats, das als „PDF für neuronale Netze“ bezeichnet wird. Sie demonstrieren die Erstellung einer ONNX-Datei und zeigen dann, wie sie innerhalb einer .NET-Anwendung mit der ONNX-Laufzeit verwendet wird. Die Verwendung der globalen Variablen der Inferenzsitzung wird erläutert, um zu vermeiden, dass die Datei für jede Inferenz neu geladen werden muss. Es wird auch hervorgehoben, wie wichtig es ist, die Optimierungsmethode und die Hyperparameter des Modells zu verstehen. Abschließend werden die Größenunterschiede zwischen den Modellen diskutiert und wie sich dies auf die Schwierigkeit der Vorhersage auswirkt.

  • 00:15:00 In diesem Abschnitt erklärt der Referent, wie man die ONNX-Laufzeit verwendet, um ein Modell zu laden und Vorhersagen zu treffen, insbesondere im Kontext von Computer Vision. Sie demonstrieren anhand eines Beispiels das Zeichnen der Zahl 3 und deren Umwandlung in ein Bild mit 28 x 28 Pixeln, gefolgt von der Erstellung eines einzelnen Float-Arrays und der Mittelwertbildung aller Farben, während 255 subtrahiert wird. Der Referent erörtert auch die Verwendung des Tensors von t , ein Datentyp, der von der ONNX-Laufzeit verwendet wird, für eine effiziente Indizierung im Speicher und die Bedeutung der Normalisierung des Bildes für eine ordnungsgemäße Eingabe. Sie zeigen auch, wie man einen Tensor aus dem benannten ONNX-Wert erstellt und wie man mit einem Try-Block beim Ausführen einer Sitzung mit potenziellen Fehlern umgeht.

  • 00:20:00 In diesem Abschnitt demonstrieren die Referenten den Prozess der Verwendung von PyTorch und .NET zur Erkennung von Zahlen mithilfe von maschinellem Lernen. Das System identifiziert Ziffern als Matrizen und wird mithilfe von Optimierungsalgorithmen darauf trainiert, bestimmte Ziffern zu identifizieren. Das System hat nicht die Fähigkeit, „Ich weiß nicht“ zu sagen, und gibt stattdessen immer eine bestmögliche Antwort, selbst wenn es falsch sein kann, wenn es mit einer unbekannten Eingabe konfrontiert wird. Die endgültige Ausgabe ist ein Wahrscheinlichkeitsvektor, der dann in ein für Menschen lesbares Format umgewandelt wird.

  • 00:25:00 In diesem Abschnitt erörtert der Referent, wie ein Unsicherheitsvektor verwendet werden kann, um die Unsicherheit der KI in ihren Vorhersagen darzustellen. Der Referent weist darauf hin, dass diese Funktion nur verfügbar ist, wenn sie in einem solchen Unsicherheitsdatensatz trainiert wurde. Der Referent verdeutlicht dann den Unterschied zwischen Trainings- und Inferenzphasen beim maschinellen Lernen und wie sie in ML.NET getrennt werden. Der Referent erwähnt auch, dass das ONNX-Format in .NET-Anwendungen verwendet werden kann und normalerweise für komplexere Datensätze wie neuronale Netzwerkmodelle verwendet wird. Abschließend erwähnt der Referent, dass KI derzeit in verschiedenen Branchen wie Betrugserkennungs- und Empfehlungssystemen eingesetzt wird.
Learning Machine Learning with .NET, PyTorch and the ONNX Runtime
Learning Machine Learning with .NET, PyTorch and the ONNX Runtime
  • 2019.02.05
  • www.youtube.com
ONNX is a open format to represent deep learning models that is supported by various frameworks and tools. This format makes it easier to interoperate betwee...
 

Lesen und Schreiben eines ONNX-Modells in ML.NET



Lesen und Schreiben eines ONNX-Modells in ML.NET

Das Video beginnt mit der Einführung von ONNX – einem offenen Format, das von Microsoft und Facebook entwickelt wurde und den Austausch von Modellen für maschinelles Lernen zwischen verschiedenen Frameworks ermöglicht. Der Referent erklärt, wie ML.NET, eine Open-Source- und plattformübergreifende Bibliothek für maschinelles Lernen, ONNX-Modelle unterstützt. Anschließend zeigt das Video, wie Sie mithilfe des ONNX Runtime-Pakets ein ML.NET-Modell erstellen und in eine ONNX-Datei exportieren. Nachdem das ONNX-Modell erstellt wurde, erklärt das Video, wie es verwendet wird, um Vorhersagen zu neuen Daten in ML.NET zu treffen. Insgesamt bietet das Video eine umfassende Anleitung zur Verwendung von ONNX-Modellen mit ML.NET für maschinelle Lernanwendungen.

How to Read and Write an ONNX Model in ML.NET
How to Read and Write an ONNX Model in ML.NET
  • 2019.07.07
  • www.youtube.com
This video goes over ONNX and how to read and write an ONNX model using ML.NET.Code - https://github.com/jwood803/MLNetExamples/blob/master/MLNetExamples/Onn...
 

Integration von ML-Modellen von scikit-learn in ML.NET unter Verwendung von ONNX – Praktische ML.NET-Benutzergruppe 18.02.2022



Integration von ML-Modellen von scikit-learn in ML.NET unter Verwendung von ONNX – Praktische ML.NET-Benutzergruppe 18.02.2022

In diesem Video erörtert der Referent die Integration von Scikit-learn-Modellen für maschinelles Lernen mit dem .NET-Ökosystem unter Verwendung von ONNX. Sie verwenden das Lead-Scoring im Bereich des digitalen Marketings als praktisches Beispiel dafür, wie Modelle für maschinelles Lernen für Kundensysteme erstellt, bereitgestellt und getestet werden. Der Referent erklärt den Lead-Scoring-Prozess und betont, wie wichtig es ist, ein automatisiertes Tool zu entwickeln, das die Effizienz von Marketing- und Vertriebsteams maximiert. Der Referent diskutiert die Herausforderung beim Einsatz von Machine-Learning-Modellen für Client-Systeme und stellt ONNX als Lösung vor. Sie bieten einen Überblick über die Tools, Pakete und Techniken, die für die Integration von Scikit-learn-ML-Modellen mit ML.NET unter Verwendung von ONNX verwendet werden. Der Referent demonstriert, wie ein logistisches Regressionsmodell erstellt und serialisiert, in das ONNX-Format konvertiert und das ONNX-Modell ausgeführt wird, bevor es mithilfe von Azure Functions in das .NET-Ökosystem integriert wird. Insgesamt dient dieses Video als praktischer Leitfaden für Entwickler, die Scikit-learn-ML-Modelle mithilfe von ONNX in das .NET-Ökosystem integrieren möchten.

In dieser praktischen Sitzung der ML.NET-Benutzergruppe demonstriert der Moderator die Verwendung des ONNX-Formats zur Erstellung eines Lead-Scoring-ONNX-Modells, das in das Dot Net-Ökosystem integriert werden kann. Die Implementierung kann parallel zu ML.NET verwendet werden, was die Ausführung von ONNX-Modellen mit der ONNX-Laufzeit ermöglicht, während maschinelles Lernen mit ML.NET durchgeführt wird. Der Moderator teilt ein GitHub-Repository, das die verwendeten Techniken, Bibliotheken und Schritt-für-Schritt-Anleitungen zum Erstellen des ONNX-Modells enthält. Die Verwendung des ONNX-Formats ermöglicht eine plattformübergreifende Laufzeit-Engine und hilft, die Lücke zwischen Data Scientists und Anwendungsentwicklern zu schließen. Der Wert der Sitzung liegt in der praktischen Umsetzung eines Proof-of-Concept-Systems, das mit anderen Algorithmen verwendet werden kann.

  • 00:00:00 In diesem Abschnitt stellt der Referent sein Thema der Integration von Scikit-learn-Modellen für maschinelles Lernen in das .NET-Ökosystem vor und demonstriert ein praktisches Beispiel dafür. Sie diskutieren auch das Open Neural Network Exchange Format (ONNX) und wie es bei der Bereitstellung von Modellen innerhalb des .NET-Ökosystems hilft. Der Referent stellt das Lead-Scoring-Projekt seines Teams im Bereich des digitalen Marketings vor und nutzt sein Wissen über die Geschäftsdomäne, um ein ergänzendes Tool zu entwickeln, das den Lead-Scoring-Prozess automatisiert. Sie geben einen kurzen Überblick über den Lead-Scoring-Prozess und betonen, wie wichtig es ist, ein System aufzubauen, das am Ende des Tages funktioniert.

  • 00:05:00 In diesem Abschnitt erläutert der Referent den Prozess der Lead-Konvertierung und die Notwendigkeit des maschinellen Lernens zur Optimierung des Lead-Scoring- und -Generierungsprozesses. Der Referent betont die Bedeutung von Big Data, die von digitalen Marketing- und Vertriebsteams generiert werden, und die Notwendigkeit eines vorgegebenen strukturierten Formats für die Daten. Durch den Einsatz von maschinellem Lernen können sie einen überwachten Ansatz verfolgen, um historische Daten abzurufen und den Prozess der Lead-Konvertierung zu verbessern. Das automatisierte Tool zielt darauf ab, die Effizienz der Marketing- und Vertriebsteams zu maximieren, indem es Erkenntnisse aus den Daten liefert, z. B. die Identifizierung der wichtigsten Merkmale und die Feinabstimmung der Marketingstrategie, um mehr Leads zu generieren. Der Prototyp umfasst das Abrufen von Daten aus verschiedenen Quellen und das Implementieren traditioneller datenwissenschaftlicher Techniken wie Datenbereinigung, explorative Datenanalyse und Datenaufbereitung, bevor das maschinelle Lernmodell angewendet wird.

  • 00:10:00 In diesem Abschnitt des Videos erläutert der Redner den Prozess der Generierung von Datenerkenntnissen und der Erstellung von Modellen für maschinelles Lernen sowie die Herausforderung, diese Modelle für Kunden und Unternehmen bereitzustellen. Sie stellen ONNX (Open Neural Network Exchange) als mögliche Lösung für diese Bereitstellungsherausforderung vor. ONNX ist ein Dateiformat, das Modelle in Form von Diagrammen darstellt und Framework-agnostisch ist, d. h. es kann von verschiedenen Tools und Frameworks für maschinelles Lernen gemeinsam genutzt werden. Die ONNX-Laufzeit ist ein Satz von APIs zur Integration von Modellen in Zielumgebungen und ist plattformübergreifend und hochleistungsfähig. Der Referent bietet Links zur ONNX-Website und zu GitHub für weitere Informationen.

  • 00:15:00 In diesem Abschnitt erörtert der Referent die Herausforderung, maschinelle Lernmodelle in Client-Systeme zu integrieren, nachdem sie mit Data-Science-Tools wie Python entwickelt wurden. Sie empfehlen die Verwendung von ONNX als einheitliches Format für die Modelle und demonstrieren, wie das Modell in einem .NET-Ökosystem importiert, gelesen, erstellt, bereitgestellt und getestet wird. Der Referent erwähnt auch einen öffentlich zugänglichen Lead-Scoring-Datensatz, der zum Aufbau eines Prototyps für datengetriebenes Marketing verwendet werden kann. Sie diskutieren Techniken wie Datenbereinigung, explorative Datenanalyse und überwachtes maschinelles Lernen, einschließlich Regression und Klassifizierung für Lead-Scoring-Szenarien. Ziel ist es, die Effizienz für Marketing- und Vertriebsteams zu maximieren und die Leistung zu steigern, indem man sich auf die potenziellsten Kunden konzentriert.

  • 00:20:00 In diesem Abschnitt des Videos gibt der Referent einen Überblick über die Tools und Pakete, die er für die Integration von ML-Modellen von scikit-learn in ML.NET mit ONNX verwendet. Sie erwähnen, dass sie die Anaconda-Distribution für Python-Computing, das Jupyter-Notebook zum Erstellen der Modelle mit der Python-basierten scikit-learn-Bibliothek und .NET-Version 6 mit ONNX-Version 1.9 und ONNX-Laufzeitversion 181 verwenden. Der Sprecher geht kurz auf den Datensatz ein sie verwenden und die Techniken, die sie für Data Wrangling, explorative Datenanalyse und Leistungsbewertungsmetriken implementiert haben. Sie erwähnen auch, dass sie ein Logistikmodell mit einer Genauigkeit von über 82 % erstellt haben, indem sie die logistische Regression für Klassifizierungszwecke mit dem Lipliner-Algorithmus verwendet haben.

  • 00:25:00 In diesem Abschnitt erläutert der Moderator den Prozess der Erstellung eines logistischen Regressionsmodells zur Vorhersage der Leadbewertung und dessen anschließende Serialisierung mithilfe der Pickle-Bibliothek in Python, um es als pkl-Datei zu speichern. Anschließend lädt der Präsentator die pkl-Datei, um das Modell zu testen, und das Ergebnis zeigt eine Genauigkeit von 0,76 auf dem Testset. Der Moderator demonstriert dann, wie das Modell von scikit-learn in das ONNX-Format konvertiert wird, das für die Bereitstellung des Modells im Microsoft.NET-Ökosystem erforderlich ist. Dieser Abschnitt kann als praktische Anleitung zur Integration von scikit-learn-Modellen für maschinelles Lernen mit ML.NET unter Verwendung von ONNX dienen.

  • 00:30:00 In diesem Abschnitt erörtert der Referent den Prozess der Integration von scikit-learn-ML-Modellen in ML.NET unter Verwendung von ONNX. Sie schlagen vor, die Liste der unterstützten Algorithmen der ONNX-Konverter von ML.NET zu überprüfen, bevor Sie maschinelles Lernen implementieren, und demonstrieren, wie die von SK2ONNX unterstützten Konverter importiert werden. Anschließend definieren sie den Pfad zum Speichern des Modells und die Anzahl der Features, betonen die Bedeutung des Schemas bei der Benennung von Eingaben und wandeln sie in Flow-Tensor-Typen um. Schließlich zeigen sie, wie das ONNX-Modell mithilfe der Funktion convert_sklearn erstellt wird, wobei das Modell und die zuvor definierten Anfangstypen verwendet werden.

  • 00:35:00 In diesem Abschnitt demonstriert der Referent, wie ein Python-basiertes scikit-learn-Modell für maschinelles Lernen im ONNX-Format gespeichert wird und wie das ONNX-Modell mithilfe der Inferenzsitzung der ONNX-Laufzeit ausgeführt wird. Der Eingabename des ONNX-Modells wird identifiziert, und die Signaturausgabenamen sind für diese Demonstration nicht von Interesse. Darüber hinaus werden mithilfe der Methode „predict_proba“ die Wahrscheinlichkeiten, konvertiert zu werden oder nicht, extrahiert und als Indikatoren und spezifische Szenariogewichte für das Lead-Scoring-Modell verwendet.

  • 00:40:00 In diesem Abschnitt beginnt der Referent mit der Erstellung einer leeren Lösung in Visual Studio 2022 zur Integration eines scikit-learn-ML-Modells, insbesondere eines logistischen Regressionsmodells, mit dem .NET-Ökosystem unter Verwendung von ONNX. Der Referent erstellt dann eine Azure-Funktion in der Lösung und erhält den Boilerplate-Code für die Implementierung mit .NET 6 als HTTP-Trigger. Sie verwenden Insomnia, um eine neue Anfrage mit Eingabefunktionen im JSON-Format zu erstellen, die analysiert und für die Systemintegration verwendet werden. Der Referent installiert das Microsoft ML ONNX-Laufzeitpaket von NuGet und erstellt eine Klasse, um den Eingabefeaturesatz zu erläutern. Der Sprecher verwendet dann Codeschnipsel, um den Integrationsprozess zu beschleunigen.

  • 00:45:00 In diesem Abschnitt erläutert der Referent, wie der Anforderungstext mithilfe des JSON-Konverters von einer API abgerufen und deserialisiert wird, um ihn als Eingabe an ein ML-Modell zu senden. Sie erstellen ein Objekt der Parameterklasse LSLead Scoring Model und weisen ihm Werte aus dem deserialisierten Anforderungstext zu. Sie erklären auch, wie wichtig es ist, Eingabetensoren zu implementieren und Eingabedaten in ein TensorFlow-Objekt des Tensors umzuwandeln, damit sie in die Inferenzsitzung integriert werden können. Schließlich erstellen sie mit der ONNX-Laufzeit eine Inferenzsitzung und rufen die Sitzungsausgabe ab, um das ML-Modell auszuführen.

  • 00:50:00 In diesem Abschnitt versucht der Moderator zu zeigen, wie scikit-learn-ML-Modelle mit ML.NET mithilfe von ONNX integriert werden, stößt jedoch auf technische Schwierigkeiten mit Visual Studio. Nach dem Versuch, das Problem zu beheben, zeigt der Moderator die Codeausschnitte und erläutert die erforderlichen Pakete und Eingabetensoren, die für die Integration benötigt werden. Trotz der Rückschläge kann der Moderator einen Link zu den in der Demo verwendeten Funktionen und Eingabefeatures bereitstellen, damit die Zuschauer darauf zugreifen und sie selbst ausprobieren können.

  • 00:55:00 In diesem Abschnitt demonstriert der Moderator, wie ONNX verwendet wird, um scikit-learn-Modelle für maschinelles Lernen mit ML.NET zu integrieren. Sie zeigen zunächst, wie die Wahrscheinlichkeitsausgabe aus der Predict-Probability-Implementierung entpackt und in ein Wörterbuch mit Long- und Float-Werten umgewandelt wird, die die Wahrscheinlichkeiten darstellen, ob sie konvertiert werden oder nicht. Anschließend verwenden sie diese Wahrscheinlichkeiten, um einen Lead-Score für Konversion und Nicht-Konversion zu erhalten, den sie in einer Insomnia-Nachricht anzeigen. Schließlich verwenden sie ein Jupyter-Notebook, um zu zeigen, wie ein Datensatz aus dem Testsatz an das Modell gesendet wird, und rufen den entsprechenden Ausgabewert von eins ab, der angibt, dass die Person wahrscheinlich konvertiert wird.

  • 01:00:00 In diesem Abschnitt demonstriert der Referent, wie die Verwendung des Open Neural Network Exchange (ONNX)-Formats die Erstellung eines Lead-Scoring-ONNX-Modells ermöglicht, das als Teil eines anderen Frameworks implementiert werden kann. Der Moderator zeigt, dass dies mit TensorFlow, Keras und dem Dot Net-Targeting-Framework möglich ist. Der Moderator zeigt auch, dass sie auf der Grundlage des resultierenden ONNX-Modells in der Lage waren, dieses Dateiformat in das Dot Net-Ökosystem zu integrieren und anschließend eine einfache Lösung zu erstellen, mit der die Sitzung ausgeführt und Ergebnisse abgerufen werden konnten. Sie diskutieren auch, wie die Verwendung des ONNX-Formats eine plattformübergreifende Laufzeit-Engine ermöglicht und dabei hilft, die Lücke zwischen Datenwissenschaftlern und Anwendungsentwicklern zu schließen. Der Moderator teilt ein Code-Repository auf GitHub, das ein Notebook-Dokument und einen Arbeitsbereich enthält, die für die Integration von ONNX-Modellen in das Dot-Net-Ökosystem erforderlich sind.

  • 01:05:00 In diesem Abschnitt teilt der Moderator ein GitHub-Repository, das die verwendeten Techniken, Bibliotheken und Schritt-für-Schritt-Anleitungen zum Erstellen des ONNX-Modells enthält, wobei der wichtigste Teil die Integration von ONNX und ONNX-Laufzeitpaketen ist . Der Moderator betont auch, dass die Implementierung parallel zu ML.NET verwendet werden kann, was die Ausführung von ONNX-Modellen mit der ONNX-Laufzeit ermöglicht, während maschinelles Lernen mit ML.NET durchgeführt wird. Abschließend dankt der Moderator den Teilnehmern für ihre Geduld und Zeit und stellt fest, dass der Wert der Sitzung in der praktischen Implementierung eines Proof-of-Concept-Systems liegt, das mit anderen Algorithmen verwendet werden kann.
Integrating scikit-learn ML Models with ML.NET Using ONNX - Practical ML.NET User Group 02/18/2022
Integrating scikit-learn ML Models with ML.NET Using ONNX - Practical ML.NET User Group 02/18/2022
  • 2022.02.18
  • www.youtube.com
A look at the technical approach addressing the challenge of converting and deploying machine learning models from Python and Scikit-learn to the .NET ecosys...
 

Modelle für maschinelles Lernen mit ONNX und .NET | .NET Konferenz 2022



Modelle für maschinelles Lernen mit ONNX und .NET | .NET Konferenz 2022

Das Video „Machine Learning Models with ONNX and .NET“ von der .NET Conf 2022 führt die Zuschauer in die Konzepte von KI und maschinellem Lernen ein, einschließlich des Unterschieds zwischen Deep Learning und traditioneller Programmierung. Die Referenten geben einen Überblick über Azure Machine Learning, PyTorch und ONNX und zeigen, wie Sie mithilfe von Azure Machine Learning eine Pipeline erstellen, um Modelle für maschinelles Lernen mit ONNX und .NET zu trainieren. Sie erklären auch, wie man ein maschinelles Lernmodell in eine .NET-Maui-Anwendung integriert, und erörtern Techniken zur Reduzierung der Größe von ONNX-Modellen für mobile Geräte. Der Abschnitt endet mit der Vorstellung des nächsten Redners, Rory, der über Barrierefreiheit sprechen wird.

  • 00:00:00 In diesem Abschnitt des Videos stellen Beatriz und Henk KI und maschinelles Lernen sowie den Unterschied zwischen beiden vor. Sie erklären, dass maschinelles Lernen eine Teilmenge der KI ist und die Fähigkeit hat, aus Daten zu lernen, ohne explizit mit einem Algorithmus programmiert zu werden. Stattdessen erstellt es auf der Grundlage der bereitgestellten Daten ein Modell, das dann verwendet werden kann, um Vorhersagen oder Entscheidungen zu treffen.

  • 00:05:00 In diesem Abschnitt erklärt der Referent den Unterschied zwischen der Trainings- und der Vorhersagephase des maschinellen Lernens. Die Vorhersagephase funktioniert wie die herkömmliche Programmierung, bei der ein Modell oder Algorithmus Eingaben erhält, eine Antwort oder Vorhersage erzeugt und das Lösen komplexer Probleme ermöglicht, die mit herkömmlicher Programmierung schwierig zu lösen sind. Der Referent spricht auch über Deep Learning, eine Teilmenge des maschinellen Lernens, das auf vom Gehirn inspirierten künstlichen neuronalen Netzen basiert. Die Demo, die der Sprecher im Video präsentiert, verwendet Computer Vision, ein Gebiet der künstlichen Intelligenz, das Computer trainiert, die visuelle Welt zu interpretieren und zu verstehen, was Klassifizierung, Objekterkennung und Bildsegmentierung umfasst. Abschließend erörtert der Referent das Konzept des Transferlernens, bei dem ein für eine Aufgabe trainiertes Modell als Ausgangspunkt für eine andere Aufgabe verwendet wird, wodurch Zeit beim Trainieren des Modells gespart wird.

  • 00:10:00 In diesem Abschnitt geben die Referenten einen Überblick über die beiden Frameworks, die sie für ihr maschinelles Lernmodell verwenden werden: PyTorch und ONNX. PyTorch ist ein Open-Source-Framework für Deep Learning, das die Präsentatoren für diese Demo bevorzugen, während ONNX ein offenes Format ist, das zur Darstellung von Modellen für maschinelles Lernen entwickelt wurde und es KI-Entwicklern ermöglicht, Modelle in einer Vielzahl von Frameworks zu verwenden. Sie erklären, dass ONNX es ihnen ermöglicht, PyTorch zu verwenden, um ihr Modell zu erstellen und es dann in ONNX zu speichern, wodurch es möglich wird, dieses Modell in .NET MAUI zu lesen. Sie führen auch Azure Machine Learning ein, das eine Reihe von Clouddiensten umfasst, die kollaborative Arbeitslasten für maschinelles Lernen ermöglichen, zusammen mit seinen Schlüsselelementen: Experimente, Datenspeicher, Umgebungen und Modellverwaltung. Sie erklären, dass die Modellverwaltung der Schlüssel zu ihrer Geschichte ist, weil sie ihr Modell in PyTorch trainieren und es in der Modellverwaltung registrieren werden, damit andere es auschecken und in der Software ihrer Wahl verwenden können. Sie bieten auch einen Überblick über Pipelines für maschinelles Lernen, bei denen es sich um Workflows von Schritten handelt, die Datenquellen und Datasets verwenden und auf Computezielen ausgeführt werden können.

  • 00:15:00 In diesem Abschnitt erläutert der Referent, wie Sie mit dem Azure Machine Learning Designer eine Pipeline erstellen, um Modelle für maschinelles Lernen mit ONNX und .NET zu trainieren. Der erste Schritt besteht darin, die Daten zu überprüfen, die in Blob Storage gespeichert sind. Als Nächstes erstellen sie mithilfe des Designers eine neue Pipeline, mit der sie Komponenten per Drag-and-Drop auf die Arbeitsfläche ziehen können. Zu den ausgewählten Komponenten gehören das PyTorch-Modell, der ONNX-Konverter und der Modelltrainer. Sobald die Komponenten definiert sind, führt der Sprecher die Pipeline auf seinem Azure Machine Learning-Computer namens BumbleBee aus. Sie demonstrieren die Features der Komponentendefinition und den Code für die Trainingsdatei.

  • 00:20:00 In diesem Abschnitt demonstriert der Moderator, wie ONNX und .NET verwendet werden, um ein maschinelles Lernmodell zu erstellen und es in eine .NET-Maui-Anwendung zu integrieren. Das Modell wurde mithilfe von Azure Machine Learning mit Python und PyTorch trainiert und in das ONNX-Format konvertiert. Das Modell wurde dann in Model Management registriert und in einer .NET-Anwendung verwendet. Der Moderator erklärt, wie wichtig es ist, Datenwissenschaftlern die Möglichkeit zu geben, mit der Sprache ihrer Wahl zu arbeiten, und Entwicklern die Möglichkeit zu geben, Anwendungen in ihrer Sprache zu erstellen. Alle in der Präsentation verwendeten Beispielcodes sowie andere Ressourcen, um mehr über maschinelles Lernen und die Rolle des KI-Entwicklers zu erfahren, finden Sie unter dem bereitgestellten Link.

  • 00:25:00 In diesem Abschnitt des Videos diskutieren die Moderatoren die Dateigröße von ONNX-Modellen und die Techniken, die verwendet werden, um sie kleiner zu machen und besser auf Mobilgeräten zu funktionieren. Sie betonen, dass es einen riesigen Bereich des maschinellen Lernens gibt, der sich der Reduzierung der Größe von Modellen widmet, auch wenn dies bedeutet, dass etwas Leistung geopfert wird. Sie erwähnen auch ein Projekt namens Seeing AI, das verschiedene KI-Modelle in einer mobilen App verwendet, und schlagen vor, dass die Zuschauer es selbst ausprobieren. Schließlich stellen die Moderatoren Rory als nächsten Redner vor, der über Barrierefreiheit sprechen wird.
Machine learning models with ONNX and .NET | .NET Conf 2022
Machine learning models with ONNX and .NET | .NET Conf 2022
  • 2022.11.14
  • www.youtube.com
Most machine learning models are trained in Python using frameworks like PyTorch and TensorFlow. You might expect that an application that runs the trained m...
 

Auf .NET Live - Operationalisierung von ML-Modellen mit ONNX, C# .... und Pokemon!



Auf .NET Live - Operationalisierung von ML-Modellen mit ONNX, C# .... und Pokemon!

In diesem On.NET Live-Video erörtern die Moderatoren die Operationalisierung von Modellen für maschinelles Lernen mit ONNX und laden Cassie Kozyrkov als besonderen Gast ein. Kozyrkov betont die Bedeutung von Mentoring und diskutiert die Verwendung von ONNX als eine Möglichkeit, die Lücke zwischen Data Scientists und Software Engineers zu schließen. Das Gespräch umfasst verschiedene Themen, von der Erstellung eines maschinellen Lernmodells mithilfe der Verarbeitung natürlicher Sprache und der Bedeutung der Datentransformation bis hin zum Testen mit unsichtbaren Daten und der Bereitstellung des Modells über Azure Functions. Die Referenten erörtern auch Azure Machine Learning und die Ressourcen, die für diejenigen verfügbar sind, die daran interessiert sind, ONNX und Modelle für maschinelles Lernen auf breiterer Ebene zu erkunden.

Das On.NET Live-Video erläutert die Operationalisierung von ML-Modellen mit ONNX, C# und (zum Spaß) Pokemon. Der erste Referent spricht über ONNX, ein maschinelles Lernformat, das das Speichern und Laden von Modellen über verschiedene Frameworks hinweg ermöglicht, und wie die Modelle mit .NET operationalisiert werden können. Der zweite Referent erörtert die Verwendung von ML.NET zum Erstellen eines Pokemon-Bildklassifizierers und zeigt, wie er für die Bereitstellung operationalisiert werden kann. Insgesamt bietet das Video einen großartigen Überblick über die Operationalisierung von Modellen für maschinelles Lernen mit ONNX und C#.

  • 00:00:00 In diesem Abschnitt des Videos stellen die Moderatoren einen besonderen Gast vor, Cassie, die mit Onnx und möglicherweise sogar Pokémon über maschinelles Lernen sprechen wird. Das Gespräch umfasst auch Ankündigungen zu bevorstehenden Konferenzen wie .NET Conf und Start Dev Change, die von Cassie und dem Team veranstaltet wurden, um Menschen dabei zu helfen, neue Entwicklungsfähigkeiten zu erlernen und Quereinsteiger zu stärken. Die Konferenz umfasste verschiedene technische Bereiche mit dem Ziel, Einzelpersonen dabei zu helfen, ihre Leidenschaft zu finden und eine berufliche Veränderung zu verfolgen.

  • 00:05:00 In diesem Abschnitt spricht Cassie Kozyrkov über die Bedeutung von Mentoring und die Notwendigkeit für Menschen, sich an Initiativen wie Start Dev Change zu beteiligen, insbesondere in diesen Zeiten, in denen Menschen aufgrund der Pandemie zu kämpfen haben. Anschließend spricht sie über ONNX, das offene Format zum Speichern von Modellen für maschinelles Lernen und deren Bereitstellung in verschiedenen Umgebungen. Cassie erklärt, dass ONNX es einfacher macht, die Welt zwischen dem, was Datenwissenschaftler tun, und dem, was Softwareingenieure tun, zu überbrücken, insbesondere in Fällen, in denen es eine Trennung zwischen den Abteilungen gibt. Mit ONNX können die Modelle an die DevOps-Seite weitergegeben werden, die sie so bereitstellen kann, wie es für das Projekt am besten funktioniert, und sie können in verschiedenen Anwendungen verwendet werden, einschließlich C#, C++ und Python.

  • 00:10:00 In diesem Abschnitt beschreibt der Referent den Aufbau eines maschinellen Lernmodells mithilfe der Verarbeitung natürlicher Sprache, um Daten aus Weinbeschreibungen zu entnehmen und diese zur Vorhersage der Sorte, des Punktewerts und der Preisspanne des Weins zu verwenden. Sie erwähnen die Verwendung einer riesigen Bibliothek mit Daten von Weinmagiern und den Aufbau des Modells mit verschiedenen Funktionen. Das Modell wird mit Python erstellt und in Jupyter Notebooks trainiert. Der Referent erklärt auch, wie Pandas verwendet wird, um die Daten zu manipulieren, und zeigt eine Wortwolke, um die häufigsten Wörter im Datensatz zu demonstrieren.

  • 00:15:00 In diesem Abschnitt erörtert der Referent verschiedene Ansätze für maschinelles Lernen und wie man den geeigneten für eine bestimmte Aufgabe auswählt. Sie erklären den Unterschied zwischen klassischem Machine Learning und Deep Learning, wobei Deep Learning mehr Schichten und neuronale Netze erfordert. Der Referent empfiehlt, mit scikit-learn, einer klassischen Bibliothek für maschinelles Lernen, zu beginnen und mit verschiedenen Algorithmen zu experimentieren, um zu sehen, was am besten funktioniert. Sie diskutieren auch die Bedeutung der Datentransformation und Tokenisierung bei der Verarbeitung von Textdaten und wie die Modellgenauigkeit mit der Modellgröße in Einklang gebracht werden kann.

  • 00:20:00 In diesem Abschnitt erörtert der Referent die für das maschinelle Lernen erforderliche Datenverarbeitung, bevor das Modell tatsächlich trainiert wird, z. B. Datenbereinigung und Merkmalsextraktion. Sie betonen, wie wichtig es ist, mit unsichtbaren Daten zu testen, und warnen davor, sich ausschließlich auf die Genauigkeit zu verlassen, da die Ergebnisse bei der Anwendung des Modells auf reale Produktionsdaten abweichen können. Der Referent demonstriert auch, wie man eine Datenpipeline einrichtet und ein logistisches Regressionsmodell verwendet, um ein maschinelles Lernmodell zu erstellen, bevor man mit der Bereitstellungsphase fortfährt.

  • 00:25:00 In diesem Abschnitt gehen die Referenten auf das verwendete Natural-Language-Processing-Modell und den dafür verwendeten CountVectorizer-Algorithmus ein, der Teil der scikit-learn-Bibliothek ist. Die im Video gezeigte Pipeline enthält den CountVectorizer und das logistische Regressionsmodell. Die Autoren erklären, wie man das Modell mit der ONNX-Laufzeit exportiert und als ONNX-Datei speichert. Sie fahren fort, die bessere Leistung der Laufzeit zu diskutieren, die die Hardware berücksichtigt, auf der sie bereitgestellt wird, was ihr einen erheblichen Geschwindigkeitsvorteil verschafft.

  • 00:30:00 In diesem Abschnitt erörtern die Referenten den Einsatz des Modells und den Inferenzprozess. Sie erwähnen, dass die Bereitstellung eines Modells die Berücksichtigung der geeigneten Architektur und Projekte für die jeweilige Situation erfordert, die von der Verwendung von Azure Machine Learning bis hin zu Containerressourcen oder serverlosen Angeboten wie Azure-Funktionen reichen können. Das Modell und der Code müssen in die Cloud hochgeladen werden, und in diesem speziellen Fall wird das Modell im Blobspeicher gespeichert und dann von der Funktion verwendet. Die Referenten gehen auch auf die Bedeutung des Zwischenspeicherns von Daten ein, um den Inferenzprozess zu beschleunigen, und erklären, wie die Wörterbuch- und Inferenzsitzung funktioniert, um das Modell in der Funktion auszuführen. Während das Verständnis des Datentyps notwendig ist, muss man nicht verstehen, wie das Modell erstellt wurde, um es erfolgreich auszuführen.

  • 00:35:00 nicht. In diesem Abschnitt erörtert der Referent den Prozess der Operationalisierung von Modellen für maschinelles Lernen mit ONNX und wie dies ohne die Hilfe eines Datenwissenschaftlers erfolgen kann. Sie betonen, wie wichtig es ist, das Eingabeformat zu verstehen und den Tensor zu erstellen, und erklären auch den Prozess des Umwandelns der Modellergebnisse in das gewünschte Format. Der Redner erwähnt die Notwendigkeit einer Vereinfachung der Schichten, die erforderlich sind, um zur Modellausgabe zu gelangen, und wie Daten bereinigt und für bessere Ergebnisse gebuckelt werden können. Sie sprechen auch die Möglichkeit an, Metriken und Feedback zu sammeln, um das Modell neu zu trainieren.

  • 00:40:00 In diesem Abschnitt erörtern die Referenten, wie wichtig es ist, zu testen und zu verstehen, wie ein Modell für maschinelles Lernen bei der Erstellung von Vorhersagen funktioniert. Sie bringen die Idee auf, Unit-Tests zu erstellen und automatisierte Tests in den normalen Entwicklungsprozess zu integrieren. Darüber hinaus erwähnen sie die in Azure Machine Learning verfügbaren Tools für die Modellinterpretierbarkeit, die bei der Identifizierung potenzieller Probleme mit den Vorhersagen des Modells helfen können. Schließlich berühren sie die Bereitstellung des Modells innerhalb eines HTTP-Triggers über die Erweiterung von Visual Studio Code.

  • 00:45:00 In diesem Abschnitt besprechen die Redner ein lustiges Weinverkostungsspiel, das mithilfe von maschinellem Lernen erstellt und auf Azure bereitgestellt wurde. Sie teilen den Link zur Website und sprechen darüber, wie das Modell mithilfe von Sommelier-Beschreibungen von Winemag trainiert wurde und wie sie Azure-Funktionen verwendet haben, um das Modell in Azure bereitzustellen. Sie diskutieren auch die breiteren Einsatzmöglichkeiten von Azure Machine Learning, einschließlich Tools für Cloud-Computing, GPU-Beschleunigung und Modellversionierung, wodurch es ideal für maschinelles Lernen in Unternehmen ist. Trotzdem kann es vorkommen, dass die Bereitstellung auf einem Endpunkt nicht erforderlich ist, und Azure Machine Learning ermöglicht diese Einfachheit.

  • 00:50:00 In diesem Abschnitt erörtert der Referent die verschiedenen Features und Fähigkeiten von Azure Machine Learning, das über das bloße Erstellen eines Modells und dessen Nutzung durch Endpunkte hinausgeht. Sie heben die Experimentation Workbench, Model Versioning and Compute und DevOps-Plugins hervor, die die Zusammenarbeit zwischen Data Scientists und Entwicklern bei der Erstellung und Bereitstellung von Modellen für maschinelles Lernen ermöglichen. Sie erwähnen auch die sich ständig weiterentwickelnde Natur des Tools und empfehlen, es erneut zu besuchen, wenn Benutzer es sich eine Weile nicht angesehen haben. Der Referent bietet Links zu seinem GitHub-Repository und seinem Blogbeitrag für diejenigen, die mehr über die Verwendung von ONNX mit C# und dessen Bereitstellung über Azure Functions erfahren möchten.

  • 00:55:00 In diesem Abschnitt erörtern die Referenten verschiedene Ressourcen, die für diejenigen verfügbar sind, die an der Erforschung von ONNX und Modellen für maschinelles Lernen im Allgemeinen interessiert sind. Sie empfehlen, sich das von ONNX bereitgestellte Tutorial und die Beispiel-Notebooks anzusehen und ihren Open-Source-Code auf Github zu erkunden. Darüber hinaus erörtern sie kurz die Verwendung von Tools wie Custom Vision, um Computer-Vision-Modelle zu erstellen, ohne dass umfangreicher Code erforderlich ist. Schließlich machen sie Witze darüber, in Zukunft ein Pokemon-Erkennungsmodell zu erstellen, und empfehlen, die im November stattfindende .NET Conf zu besuchen, um weitere Ankündigungen zum maschinellen Lernen zu erhalten.
On .NET Live - Operationalizing ML models with ONNX, C# .... and Pokemon!
On .NET Live - Operationalizing ML models with ONNX, C# .... and Pokemon!
  • 2020.10.29
  • www.youtube.com
ONNX defines a common set of operators and a common file format to enable AI developers to use models with a variety of frameworks, tools, runtimes, and comp...
 

Machine Learning Community Standup – Deep Learning mit PyTorch ONNX



Machine Learning Community Standup – Deep Learning mit PyTorch und ONNX

Das Video „Machine Learning Community Standup – Deep Learning with PyTorch & ONNX“ behandelt verschiedene Themen im Zusammenhang mit maschinellem Lernen, PyTorch und ONNX. Ein Abschnitt behandelt Overfitting und wie man es in neuronalen Netzen durch Dropout und Kreuzvalidierung verhindert. Die Gastgeber heben auch verschiedene Community-basierte Projekte zum maschinellen Lernen und ihre bevorstehenden Veranstaltungen zur Verwendung von .NET mit maschinellem Lernen hervor. Das Video stellt auch PyTorch vor, eine beliebte Bibliothek für maschinelles Lernen, die für Computer Vision und Natural Language Processing verwendet wird, mit verschiedenen integrierten Modulen wie Torch Vision und Transformationen. Die Referenten erklären das ONNX-Format zur Darstellung von Modellen für maschinelles Lernen und seine Laufzeit zum Ausführen von Inferenz und Training in mehreren Sprachen. Das Tutorial erläutert auch, wie vorgefertigte Modelle im Modellzoo von PyTorch verwendet werden, und behandelt das Debuggen und Verwalten von Python-Paketen und -Umgebungen mit Jupyter Notebooks und Anaconda. Darüber hinaus behandelt das Tutorial die Details zum Trainieren und Exportieren eines PyTorch-Modells mit ONNX, das mit der ONNX-Laufzeit verwendet werden kann, um die Leistung der Modelle zu verbessern.

Das Video behandelt auch verschiedene Themen im Zusammenhang mit maschinellem Lernen und Deep Learning. Die Referenten sprechen über die Verwendung von Skiasharp für die Bildverarbeitung in Xamarin und die Einschränkungen von Modellen auf dem Gerät aufgrund ihrer Größe, weisen aber auf die Vorteile von Modellen auf dem Gerät hin. Sie schlagen auch verschiedene Ressourcen zum Erlernen der Theorie des maschinellen Lernens vor, z. B. die Andrew Ng Coursera-Klasse und eine Klasse für angewandtes maschinelles Lernen, die allgemeine Informationen zur Verwendung von Tools und Bibliotheken zum Erstellen von Modellen für maschinelles Lernen bietet. Es wird auch erwähnt, wie wichtig es ist, beim Lernen über maschinelles Lernen ein Ziel zu haben und das Lernen in den Job zu integrieren. Abschließend weist der Redner auf bevorstehende Inhalte hin, die für das Publikum von Interesse sein könnten.

  • 00:00:00 In diesem Abschnitt stellen die Moderatoren ihren Gast vor, Cassie Breviu, Senior Program Manager bei Microsoft im ONNX-Laufzeitteam, die über PyTorch und ONNX sprechen wird. Sie fassen kurz das Thema des vorherigen Streams zusammen, bei dem es um die Verwendung von .NET mit Bibliotheken wie PyTorch ging. Bevor sie sich mit dem Hauptthema befassen, stellen die Moderatoren ein neues Segment vor, in dem sie über Konzepte des maschinellen Lernens sprechen, beginnend mit Dropout. Dropout ist eine Methode zur Vermeidung von Overfitting in neuronalen Netzwerken, die durch zufälliges Dropout einiger Knoten während des Trainings erreicht wird.

  • 00:05:00 In diesem Abschnitt des Videos erörtern die Moderatoren Overfitting und wie die Verwendung von Dropout und Kreuzvalidierung zur Lösung des Problems in maschinellen Lernmodellen beitragen kann. Sie erwähnen, dass eine 100-prozentige Genauigkeit bei einem Trainingssatz nicht immer gut ist und zu einer schlechten Leistung bei echten Daten führen kann. Sie stellen eine Analogie zum Lernen für einen Test und dem Auswendiglernen von Antworten her, ohne die Konzepte dahinter zu verstehen. Die Hosts gehen dann zu Community-Links über und erwähnen mehrere Projekte und Präsentationen aus der Community, darunter das Erstellen serverloser Lösungen für maschinelles Lernen, Stimmungsanalyseanwendungen, die Verwendung von AutoML und Model Builder sowie das Trainieren eines Bildklassifizierungsmodells mit Azure. Diese Projekte zielen darauf ab, Benutzern dabei zu helfen, KI-Lösungen effizienter zu erstellen und einzusetzen.

  • 00:10:00 In diesem Abschnitt spricht der Referent über ein Tutorial zur Verwendung von Azure zum Trainieren von Bildklassifizierungsmodellen sowie über eine Demonstration der Verwendung der ONNX-Laufzeit und Objekterkennung mit dem YOLO v5-Modell. Sie erwähnen auch mehrere anstehende Veranstaltungen zu maschinellem Lernen und .NET, einschließlich der Veranstaltung Let's Learn .NET Focus on Machine Learning, bei der die Teilnehmer ein Lernmodul durchlaufen werden, das später in diesem Monat herauskommt. Anschließend besprechen sie die neue Funktion in Visual Studio, die die Verwendung von Notebooks ermöglicht, ähnlich wie Jupiter-Notebooks, und wie dies Benutzern das Reverse Engineering von einer Low-Code-Benutzeroberfläche zu Codierung, maschinellem Lernen und tieferem Lernen ermöglicht. Schließlich bringen sie ihre Hoffnung zum Ausdruck, dass Notebooks zum Standardformat für Benutzerhandbücher und Beispiele werden, sodass Benutzer Notebook-Dateien herunterladen können, um Codezellen auszuführen und zu lernen, wie man eine API verwendet, anstatt Wiki-Seiten oder andere Markdown-Dateien durchzulesen.

  • 00:15:00 In diesem Abschnitt diskutieren die Referenten verschiedene Aktualisierungen und Verbesserungen, die an Microsoft Learn und ML.NET vorgenommen werden. Sie erwähnen die interaktive Notebook-Unterstützung, auf die über die Web-Benutzeroberfläche zugegriffen werden kann, was es für diejenigen einfacher macht, die nicht wissen, wie man lokale Python-Umgebungen konfiguriert. Sie heben auch die Torch Sharp-Bibliothek hervor, die es Benutzern ermöglicht, benutzerdefinierte neuronale Netze zu erstellen und diese eng in die ONNX-Laufzeit zu integrieren, wodurch die Erfahrung beim Konsumieren von Deep-Learning-Modellen verbessert wird. Darüber hinaus liegt ein Fokus auf ethischer und verantwortungsbewusster KI innerhalb von ML.NET, mit Plänen unter anderem für Namenserkennung, dynamische Dateneingabe und -ausgabe sowie Zeitreihenprognosen. Insgesamt betonen die Referenten die Bedeutung des Feedbacks der Nutzer und ermutigen sie, Verbesserungsvorschläge zu machen.

  • 00:20:00 In diesem Abschnitt des Videos erörtert der Sprecher, wie sich der Entwicklungsfluss beim Erstellen von Modellen für maschinelles Lernen ändern kann, insbesondere im Hinblick auf die verschiedenen verwendeten Tools und Bibliotheken. Sie vergleichen herkömmliches Programmieren mit maschinellem Lernen und erklären, dass bei letzterem Daten in einen Algorithmus eingespeist werden, um ein Modell zu erstellen, das dann für Schlussfolgerungen verwendet wird. Anschließend stellt der Referent PyTorch vor, eine Open-Source-Bibliothek für maschinelles Lernen, und ihre verschiedenen Komponenten, einschließlich der neuronalen Netzwerkfunktion und Datendienstprogramme. Sie berühren auch andere Bibliotheken wie TensorFlow und scikit-learn sowie Tools wie Jupyter-Notebooks und VS Code.

  • 00:25:00 In diesem Abschnitt gibt der Referent einen Überblick über PyTorch, eine beliebte Bibliothek für maschinelles Lernen, die häufig in Computer Vision und Verarbeitung natürlicher Sprache verwendet wird. Die Bibliothek umfasst mehrere Module wie Torch Vision für Computer Vision, Torch Audio für Audiodaten und Torch Text für die Verarbeitung natürlicher Sprache. Da Daten das Rückgrat für maschinelles Lernen sind, bieten die Module auch Vorverarbeitungsfunktionen wie Datensätze, Datenlader und Transformationen, um Daten für das Training durch ein Modell vorzubereiten. Der Referent empfiehlt die Verwendung eines interaktiven Tutorials zu PyTorch, um mehr über die Bibliothek und ihre Funktionalitäten zu erfahren. Sie stellen auch ONNX vor, ein offenes Format, das zur Darstellung von Modellen für maschinelles Lernen entwickelt wurde, und ONNX Runtime, ein plattformübergreifendes Bereitstellungstool, das Rückschlüsse und Schulungen in mehreren Sprachen ermöglicht.

  • 00:30:00 In diesem Abschnitt diskutieren die Redner die Verwendung von ONNX-Modellen in Blazor, wobei Cassie zugibt, dass sie es noch nicht ausprobiert hat. Sie sprechen auch darüber, wie man Modelle mithilfe von Bibliotheken wie PyTorch, Scikit-learn oder TensorFlow in das ONNX-Format konvertiert. Die Verwendung von ONNX-Modellen ist einfach, da Sie nur die ONNX-Laufzeitbibliothek importieren, eine Inferenzsitzung erstellen und Ihre Eingabedaten übergeben müssen, um ein Ergebnis zu erhalten. Die Schwierigkeit besteht bei der Datenmanipulation in verschiedenen Sprachen, da Python in dieser Hinsicht im Vergleich zu anderen Sprachen als leistungsfähig gilt. Die Redner erwähnen auch den Modellzoo, der über vorgefertigte Modelle verfügt, die für Rückschlüsse verwendet werden können, wobei Beispielcode als Hilfestellung zur Verfügung steht.

  • 00:35:00 In diesem Abschnitt erläutert der Referent, wie vorgefertigte Modelle im Modellzoo von PyTorch verwendet werden, mit Schwerpunkt auf der Objektsegmentierung mit schnellem rcnn, einer Art Convolutional Neural Network (CNN). Der Referent geht auch kurz auf die Arbeit mit Tensoren und deren Manipulation mit NumPy ein und weist darauf hin, dass PyTorch ein interaktives Notizbuch zum Erlernen der effizienten Manipulation von Tensoren bietet. Darüber hinaus stellt der Redner fest, dass die Datensätze von PyTorch mithilfe von „torchvision.datasets“ bezogen werden, das sie aus einem Open-Source-Repository herunterlädt.

  • 00:40:00 In diesem Abschnitt des Videos erörtert der Sprecher die Open-Source-Natur von PyTorch, die den Zugriff auf den Code und die verschiedenen verwendeten Blob-Speicherorte ermöglicht. Sie heben hervor, wie die Dokumentation von PyTorch alle verfügbaren Datensätze auflistet, auf die zugegriffen werden kann, wobei die Datensätze nur ein Wrapper um verschiedene Open-Source-Datensätze sind. Der Referent hebt die rechtlichen Auswirkungen der Verwendung von Open-Source-Datensätzen hervor und zeigt auf, was aus der Quelle entnommen werden darf und was nicht gehostet werden sollte. Das Video behandelt auch Datensätze und Datenladeprogramme, Testdaten zur Validierung und das Erstellen benutzerdefinierter Datensätze. Abschließend gehen sie kurz auf Transformationen und ihre Bedeutung bei der Manipulation von Daten ein, um sie in Tensoren umzuwandeln und durch den Algorithmus zu verarbeiten.

  • 00:45:00 In diesem Abschnitt spricht der Sprecher über die Tools, die er zum Verwalten von Python-Paketen und -Umgebungen verwendet. Er hebt Anaconda hervor, ein Tool, das er liebt und das er seinem Windows-Terminal hinzugefügt hat, wo er schnell verschiedene vorkonfigurierte Pakete für verschiedene Bibliotheken für maschinelles Lernen aktivieren und verwenden kann. Er zeigt weiter, wie er Jupyter Notebooks in VS Code verwendet, das mehr Tools, Intellisense und die Möglichkeit bietet, einen Cloud-Computer zum Ausführen von Modellen zu verwenden, die eine größere GPU benötigen. Abschließend weist er darauf hin, dass für diejenigen, die die .NET-Umgebung bevorzugen, das Jupiter Notebook-Erlebnis dank der Ausführung von Anaconda direkt installierbar ist.

  • 00:50:00 In diesem Abschnitt erörtert der Referent die Jupyter Notebook-Erfahrung mit PyTorch in Azure Machine Learning Studio, wo Benutzer alle erforderlichen Pakete installieren und das von ihnen bevorzugte Tool verwenden können. Der Referent geht kurz auf die Schnellstartanleitung für PyTorch ein, die auf Azure Machine Learning Studio und der PyTorch-Website verfügbar ist, und verlagert dann die Diskussion auf ONNX. Ohne zu tief einzutauchen, gibt der Referent einen kurzen Überblick über die Modellarchitektur, die Verlustfunktion und den Optimierer, die zum Trainieren eines Modells erforderlich sind. Der Redner erwähnt auch kurz Copilot und seine Fähigkeit, Kommentare für Benutzer zu schreiben.

  • 00:55:00 In diesem Abschnitt erklärt der Referent, wie man ein PyTorch-Deep-Learning-Modell mit ONNX trainiert und exportiert. Um das Modell zu trainieren, müssen Benutzer die Anzahl der Epochen und die Validierungsdaten festlegen und sicherstellen, dass sie sich von den Testdaten unterscheiden, um eine Überanpassung zu vermeiden. Der Lautsprecher zeigt ein Diagramm des Verlusts des Modells in jeder Epoche, während es jeden Stapel durchläuft, und sobald das Training abgeschlossen ist, kann das Modell im ONNX-Format exportiert werden, indem eine Funktion verwendet wird, die einen Tensor an das Gerät sendet. Das exportierte Modell kann verwendet werden, um Inferenzen mithilfe der ONNX-Laufzeit mit Eingabetensoren und optimierten Diagrammoptimierungen für eine bessere Leistung auszuführen. Der Referent demonstriert auch eine in Kürze erscheinende Xamarin-Unterstützung für die ONNX-Laufzeit.

  • 01:00:00 In diesem Abschnitt erörtern die Referenten die Verwendung von SkiaSharp für die Bildverarbeitung in Xamarin und wie die ONNX-Laufzeit zur Verarbeitung der Daten verwendet wird. Sie erwähnen die Einschränkungen bei der Verwendung von On-Device-Modellen aufgrund ihrer Größe, weisen aber auf die Vorteile von On-Device-Modellen hin. Die Referenten gehen auch kurz auf die Architektur von Xamarin und die Erstellung von Gerüsten ein. Die Diskussion endet mit einer Erwähnung des Wunsches nach mehr Zusammenarbeit zwischen C#-Entwicklern und der KI-Welt und wie jeder, der Fragen zu maschinellem Lernen oder Deep Learning hat, Cassidy Williams auf Twitter oder das Twitter-Handle der ONNX-Laufzeit um Antworten bitten kann.

  • 01:05:00 In diesem Abschnitt diskutieren die Moderatoren Ressourcen für diejenigen, die daran interessiert sind, die Theorie des maschinellen Lernens zu lernen. Sie schlagen vor, einen Coursera-Kurs zu belegen, wie den von Andrew Ng, der sich mit der Funktionsweise von Deep-Learning-Modellen hinter den Kulissen befasst. Sie weisen darauf hin, dass es zwei Möglichkeiten gibt, maschinelles Lernen anzugehen: die angewandte Methode und die theoretische Methode. Zu den weiteren Ressourcen gehören ein Kurs für angewandtes maschinelles Lernen auf Coursera, der allgemeine Informationen zur Verwendung von Tools und Bibliotheken zum Erstellen von Modellen für maschinelles Lernen enthält, und der PyTorch-Lernpfad, der tiefer geht und einen Teil der Mathematik abdeckt. Darüber hinaus erwähnen die Moderatoren einen Hackathon für ML.Net, der in den kommenden Wochen stattfinden wird.

  • 01:10:00 In diesem Abschnitt erörtert der Referent, wie wichtig es ist, beim Lernen über maschinelles Lernen und Deep Learning ein Ziel zu haben. Es gibt viele kostenlose Ressourcen online, aber es kann überwältigend sein, sich zu entscheiden, wo man anfangen soll. Der Sprecher schlägt vor, sich ein Ziel zu setzen, z. B. ein Computer-Vision-Modell zu trainieren, und Ressourcen zu finden, die mit diesem Ziel übereinstimmen. Hilfreich kann es auch sein, das Lernen in den Job einzubauen, etwa Hackathons oder Projektsprints zu nutzen, um Neues auszuprobieren. Der Redner erwähnt auch, dass es wichtig ist, die harten Teile durchzustehen und nicht aufzugeben, bis das Ziel erreicht ist. Abschließend weist der Redner auf bevorstehende Inhalte hin, die für das Publikum von Interesse sein könnten.
Machine Learning Community Standup - Deep Learning with PyTorch & ONNX
Machine Learning Community Standup - Deep Learning with PyTorch & ONNX
  • 2021.10.13
  • www.youtube.com
Join us to learn how to get started building deep learning models with PyTorch & ONNX. Community Links: https://www.theurlist.com/mlnet-standup-2021-10-13Fea...
 
Object-Detection Yolov7, ML.NET onnx model
Object-Detection Yolov7, ML.NET onnx model
  • 2023.01.13
  • www.youtube.com
Github:https://github.com/ptiszai/Object-Detection-yolov7-ML.NET-onnx