Apprendre ONNX pour le trading - page 12

 

ONNX et la JVM


ONNX et la JVM

La prise en charge d'ONNX sur la machine virtuelle Java (JVM) est cruciale car les modèles ML deviennent de plus en plus importants dans pratiquement toutes les applications. Java étant l'une des plus grandes plates-formes utilisées dans la création d'applications logicielles en direct, il est essentiel de fournir une prise en charge dans les langages de programmation, tels que Java ou C#. Oracle vise à fournir l'API C d'exécution ONNX en Java, permettant un déploiement facile avec un impact minimal sur les performances grâce à l'utilisation d'une fine couche de l'API Java sur l'API C. L'orateur discute également d'une bibliothèque open source pour écrire des modèles ONNX à partir de Java, présente un exemple de graphique de régression logistique et invite à contribuer aux éléments d'exportation ONNX dans Trippo tout en discutant du manque de normalisation dans le format de métadonnées ONNX.

  • 00:00:00 Dans cette section, Adam Pocock, chercheur du groupe de recherche sur l'apprentissage automatique d'Oracle Labs, explique pourquoi il est important de prendre en charge ONNX sur la machine virtuelle Java (JVM). Les modèles ML devenant de plus en plus importants dans presque toutes les applications, il est essentiel de fournir une prise en charge dans les langages dans lesquels les applications sont écrites, comme Java ou C#. Selon Pocock, Java est l'une des plus grandes plates-formes de création d'applications logicielles en direct dans le monde, avec des millions de développeurs Java. Par conséquent, l'objectif d'Oracle est de fournir l'API C d'exécution ONNX en Java, ce qui facilite son déploiement pour les utilisateurs, avec un impact minimal sur les performances. Un exemple de code rapide est présenté pour illustrer la fine couche de l'API Java sur l'API C.

  • 00:05:00 Dans cette section, l'orateur discute des défis liés à l'utilisation d'objets Java avec un objet natif couplé afin de minimiser les frais généraux pour les modèles d'apprentissage automatique. Ils expliquent qu'il existe des filets de sécurité en place pour s'assurer que tout est nettoyé, mais l'utilisation de baies régulières n'est pas recommandée. L'orateur présente également une bibliothèque open source pour écrire des modèles ONNX à partir de Java, qui inclut la validation et la vérification des attributs et la possibilité d'exporter facilement des tableaux Java. Ils fournissent un exemple de la façon d'écrire un graphique de régression logistique à l'aide de cette bibliothèque et mentionnent des plans pour étendre l'énumération de l'opérateur et intégrer la provenance et les métadonnées dans les modèles convertis.

  • 00:10:00 Dans cette section, l'orateur discute du manque de standardisation concernant le format des métadonnées dans ONNX. Bien qu'il soit possible d'inclure des données telles que des données d'entraînement et des hyperparamètres dans les métadonnées ONNX, elles ne sont pas standardisées. L'orateur exprime son intérêt pour le travail qu'effectue Intel pour normaliser le format des métadonnées. L'orateur invite également toute contribution aux éléments d'exportation ONNX à Trippo et encourage la discussion sur le sujet.
 

Créez votre solution d'inférence de modèle hautes performances avec DJL et ONNX Runtime



Créez votre solution d'inférence de modèle hautes performances avec DJL et ONNX Runtime

La bibliothèque Deep Java (DJL) est une bibliothèque d'apprentissage automatique basée sur Java qui résume les bibliothèques d'apprentissage en profondeur et offre plusieurs backends, tels qu'Apache MXNet, TensorFlow et PyTorch. La bibliothèque dispose d'un ensemble de modèles pré-formés pour diverses tâches et est prête pour le service, après avoir subi des tests rigoureux pour garantir des performances optimales tout en contrôlant l'utilisation de la mémoire. Les haut-parleurs introduisent également le concept de moteur hybride qui charge les deux moteurs ensemble, offrant une transition plus fluide entre les moteurs pour l'inférence. Les développements ultérieurs incluent la prise en charge des serveurs ARM, l'exécution d'ONNX Runtime sur les appareils Android et l'apport de la solution de moteur hybride aux appareils périphériques.

  • 00:00:00 Dans cette section, l'orateur présente la bibliothèque Deep Java (DJL) et son intégration avec ONNX Runtime, qui s'est avérée avoir de bonnes performances pour les cas d'utilisation d'apprentissage automatique à l'intérieur et à l'extérieur d'Amazon. DJL est une bibliothèque d'apprentissage automatique basée sur Java qui résume les bibliothèques d'apprentissage en profondeur et offre plusieurs backends, tels qu'Apache MXNet, TensorFlow et PyTorch. DJL propose un ensemble de modèles pré-formés, y compris des modèles populaires de Hugging Face et Torch Hub, pour des tâches telles que la classification d'images, la détection d'objets, l'analyse des sentiments et la reconnaissance d'actions. L'avantage de DJL est qu'il est prêt pour le service et a subi des tests rigoureux pour garantir des performances optimales tout en contrôlant l'utilisation de la mémoire. L'orateur partage également certains cas d'utilisation réussis de clients qui ont tiré parti d'ONNX Runtime et de DJL, présentant des améliorations significatives de la vitesse d'inférence de modèle et de l'inférence multi-threading, même lors de la conversion à partir de différents frameworks d'apprentissage en profondeur tels que TensorFlow et PaddlePaddle, qui ne prennent pas en charge la sécurité des threads. multi-threading.

  • 00:05:00 Dans cette section, les conférenciers discutent des défis auxquels sont confrontés les utilisateurs d'ONNX Runtime en raison du manque d'opérateurs intégrés, ce qui rend difficile le prétraitement et le post-traitement en Java pour le tableau non dimensionnel opération. Ils proposent un nouveau concept appelé le moteur hybride, qui charge les deux moteurs ensemble simultanément, permettant une transition plus fluide entre les moteurs pour l'inférence. La bibliothèque Deep Java offre une classe de critères où l'utilisateur peut définir comment son modèle sera chargé, et le traducteur fournit une abstraction pour effectuer le pré-traitement et le post-traitement. Ils introduisent également le ND Manager, une architecture arborescente qui remplace le système de récupération de place de Java pour fournir une récupération de mémoire rentable. Les conférenciers mentionnent d'autres développements, tels que la prise en charge du serveur ARM, l'exécution d'ONNX Runtime sur les appareils Android et l'apport de la solution de moteur hybride aux appareils périphériques.
 

[FlexFlow Bootcamp 2020] Prise en charge frontale FlexFlow : TensorFlow Keras, PyTorch, ONNX, etc.



[FlexFlow Bootcamp 2020] Prise en charge frontale FlexFlow : TensorFlow Keras, PyTorch, ONNX, etc.

Dans cette section de la vidéo, l'orateur discute de l'API FlexFlow Python, qui prend en charge TensorFlow Keras, PyTorch et ONNX. Le processus de création et de formation d'un modèle implique l'ajout d'opérateurs au modèle, la compilation du modèle, la création de chargeurs de données et l'initialisation/la formation du modèle à l'aide de la fonction d'ajustement ou de procédures de formation personnalisées. Les conférenciers discutent également de la prise en charge des modèles Keras et PyTorch dans FlexFlow, ainsi que de la possibilité d'importer des modèles préexistants via la représentation intermédiaire ONNX. Cependant, il est important d'assurer la cohérence entre la bibliothèque utilisée pour construire FlexFlow et celle utilisée pour construire le package python ONNX.

  • 00:00:00 Dans cette section de la vidéo, les présentateurs présentent la prise en charge frontale dans FlexFlow, en particulier l'API Python. Le runtime FlexFlow est construit au-dessus du runtime Legion, qui est un système de programme basé sur les tâches développé par des chercheurs de l'Université de Stanford, de NVIDIA et de Los Alamos. L'API Python appelle l'API C++ via la bibliothèque cffi, et une fine couche d'API Python offre les mêmes performances que l'utilisation de l'API C++. Les présentateurs discutent ensuite des étapes pour créer un modèle avec l'API Python FlexFlow, ce qui implique d'abord de créer un fichier de configuration, puis de créer un tenseur d'entrée au format NCHW. De plus, ils introduisent la prise en charge de Keras et ONNX.

  • 00:05:00 Dans cette section de la vidéo, le conférencier décrit le processus de création et de formation d'un modèle à l'aide de l'API FlexFlow Python, qui prend en charge TensorFlow Keras, PyTorch et ONNX. L'orateur commence par expliquer comment ajouter des opérateurs au modèle, comme l'opérateur de convolution 2D, qui prend toujours un tenseur d'entrée et renvoie un tenseur de sortie. L'étape suivante consiste à compiler le modèle, qui alloue des tenseurs et optimise la stratégie de parallélisation et la fusion de modèles. Ensuite, des chargeurs de données sont créés et le modèle est initialisé et formé à l'aide de la fonction d'ajustement ou de procédures de formation personnalisées. Le conférencier souligne également les similitudes entre les API Python et C++ et présente une liste d'opérateurs pris en charge par FlexFlow, avec la possibilité d'implémenter de nouveaux opérateurs sur demande. Enfin, le conférencier discute de la prise en charge des modèles Keras et PyTorch dans FlexFlow, avec une démonstration prévue pour l'exercice pratique.

  • 00:10:00 Dans cette section, les conférenciers discutent de l'importation de modèles préexistants dans FlexFlow, en particulier via la représentation intermédiaire ONNX. Le package ONNX permet d'exporter des modèles à partir d'autres frameworks d'apprentissage en profondeur, tels que PyTorch ou TensorFlow, et de les importer dans FlexFlow en utilisant le même nom de fichier. Cependant, il est important de s'assurer que la bibliothèque utilisée pour construire FlexFlow est la même que celle utilisée pour construire le package python ONNX. La prise en charge d'ONNX est toujours en cours et les correctifs sont les bienvenus.
 

Apprentissage Machine Learning avec .NET, PyTorch et ONNX Runtime



Apprentissage Machine Learning avec .NET, PyTorch et ONNX Runtime

Dans cette vidéo sur l'apprentissage de l'apprentissage automatique avec .NET, PyTorch et le runtime ONNX, les conférenciers présentent le runtime ONNX et expliquent les différentes étapes de formation d'un modèle d'apprentissage automatique. Ils montrent également comment utiliser le format ONNX avec .NET pour un apprentissage en profondeur et discutent de l'importance de comprendre les hyperparamètres et la méthode d'optimisation pour des prédictions de modèles précises. Les conférenciers montrent également comment utiliser le runtime ONNX pour charger un modèle et faire des prédictions, ainsi que comment gérer les erreurs potentielles avec un try-block lors de l'exécution d'une session. De plus, ils discutent de l'utilisation du vecteur d'incertitude pour montrer l'incertitude de l'IA dans ses prédictions et mentionnent certaines industries où l'IA est utilisée, comme les systèmes de détection de fraude et de recommandation.

  • 00:00:00 Dans cette section de la vidéo "Apprentissage de l'apprentissage automatique avec .NET, PyTorch et le runtime ONNX", les hôtes présentent le runtime ONNX et comment il peut être utilisé avec .NET pour un apprentissage en profondeur. Ils expliquent qu'une fois qu'un modèle est formé, l'étape suivante consiste à intégrer le fichier de modèle dans le projet et à obtenir la réponse. Ils utilisent l'exemple de la reconnaissance des nombres et montrent un référentiel Py Torch GitHub avec un modèle de réseau neuronal convolutif. Ils soulignent également l'utilité de VS Code en tant qu'IDE pour Python, avec ses fonctionnalités et fonctionnalités intégrées.

  • 00:05:00 Dans cette section, l'orateur explique comment il utilise les données de test pour former son modèle d'apprentissage automatique, et une fois qu'il a trouvé la meilleure façon d'ajuster les boutons, il enregistre le modèle et coupe l'eau. Ils présentent un exemple de modèle qu'ils ont formé avec des images de nombres de zéro à neuf, expliquant qu'il y a dix éléments dans la sortie car les images ne sont que de zéro à neuf. Ils soulignent également l'importance de la fonction de perte, qui mesure la différence entre le résultat prévu et le résultat réel, et la précision, qui mesure le nombre de résultats corrects ou incorrects. L'orateur suggère que le choix de la bonne forme de modèle, des hyperparamètres tels que le taux d'apprentissage, la taille des lots et les époques, et les tests sur différents ensembles de données sont des étapes essentielles pour garantir que l'algorithme d'apprentissage automatique atteint une grande précision.

  • 00:10:00 Dans cette section de la vidéo, les conférenciers discutent de l'utilisation du format ONNX, qui est décrit comme le "PDF pour les réseaux de neurones". Ils illustrent la création d'un fichier ONNX, puis montrent comment l'utiliser dans une application .NET à l'aide du runtime ONNX. L'utilisation de la variable globale de session d'inférence est expliquée, afin d'éviter d'avoir à recharger le fichier à chaque inférence. L'importance de comprendre la méthode d'optimisation et les hyper-paramètres du modèle est également soulignée. Enfin, les différences de taille entre les modèles sont discutées et comment cela affecte la difficulté de faire des prédictions.

  • 00:15:00 Dans cette section, l'orateur explique comment utiliser le runtime ONNX pour charger un modèle et faire des prédictions, en particulier dans le contexte de la vision par ordinateur. Ils démontrent à l'aide d'un exemple de dessin le nombre 3 et de le convertir en une image de 28 par 28 pixels, suivi de la création d'un seul tableau flottant et de prendre la moyenne de toutes les couleurs tout en soustrayant 255. L'orateur discute également de l'utilisation du tenseur de t , un type de données utilisé par le runtime ONNX, pour une indexation efficace dans la mémoire et l'importance de normaliser l'image pour une entrée correcte. Ils montrent également comment créer un tenseur à partir de la valeur ONNX nommée et comment gérer les erreurs potentielles avec un try-block lors de l'exécution d'une session.

  • 00:20:00 Dans cette section, les conférenciers démontrent le processus d'utilisation de PyTorch et .NET pour reconnaître les nombres à l'aide de l'apprentissage automatique. Le système identifie les chiffres comme des matrices et est formé pour identifier des chiffres spécifiques à l'aide d'algorithmes d'optimisation. Le système n'a pas la capacité de dire "Je ne sais pas" et à la place, il va toujours donner une réponse dans la mesure du possible, même si elle peut être erronée lorsqu'elle est présentée avec une entrée inconnue. La sortie finale est un vecteur de probabilités, qui est ensuite transformé en un format lisible par l'homme.

  • 00:25:00 Dans cette section, l'orateur explique comment un vecteur d'incertitude peut être utilisé pour montrer l'incertitude de l'IA dans ses prédictions. L'orateur note que cette fonctionnalité n'est disponible que si elle a été formée dans un tel ensemble de données d'incertitude. L'orateur clarifie ensuite la différence entre les étapes de formation et d'inférence dans l'apprentissage automatique et comment elles sont séparées dans ML.NET. L'orateur mentionne également que le format ONNX peut être utilisé dans les applications .NET et qu'il est généralement utilisé pour des ensembles de données plus complexes comme les modèles de réseaux de neurones. Enfin, l'orateur mentionne que l'IA est actuellement utilisée dans diverses industries comme les systèmes de détection et de recommandation de fraude.
 

Comment lire et écrire un modèle ONNX dans ML.NET



Comment lire et écrire un modèle ONNX dans ML.NET

La vidéo commence par présenter ONNX - un format ouvert créé par Microsoft et Facebook qui permet l'échange de modèles d'apprentissage automatique entre différents frameworks. Le présentateur explique comment ML.NET, une bibliothèque d'apprentissage automatique open source et multiplateforme, prend en charge les modèles ONNX. La vidéo montre ensuite comment créer et exporter un modèle ML.NET dans un fichier ONNX, à l'aide du package ONNX Runtime. Une fois le modèle ONNX créé, la vidéo explique comment l'utiliser pour faire des prédictions sur de nouvelles données dans ML.NET. Dans l'ensemble, la vidéo fournit un guide complet sur l'utilisation des modèles ONNX avec ML.NET pour les applications d'apprentissage automatique.

 

Intégration des modèles ML scikit-learn avec ML.NET à l'aide d'ONNX - Groupe d'utilisateurs pratiques de ML.NET 18/02/2022



Intégration des modèles ML scikit-learn avec ML.NET à l'aide d'ONNX - Groupe d'utilisateurs pratiques de ML.NET 18/02/2022

Dans cette vidéo, le conférencier discute de l'intégration des modèles d'apprentissage automatique Scikit-learn avec l'écosystème .NET à l'aide d'ONNX. Ils utilisent la notation des prospects dans le domaine du marketing numérique comme exemple pratique de la manière de créer, déployer et tester des modèles d'apprentissage automatique pour les systèmes clients. Le présentateur explique le processus de notation des prospects et souligne l'importance de créer un outil automatisé qui maximise l'efficacité des équipes marketing et commerciales. L'orateur discute du défi que représente le déploiement de modèles d'apprentissage automatique pour les systèmes clients et présente ONNX en tant que solution. Ils fournissent un aperçu des outils, packages et techniques utilisés pour intégrer les modèles Scikit-learn ML avec ML.NET à l'aide d'ONNX. Le conférencier montre comment créer et sérialiser un modèle de régression logistique, le convertir au format ONNX et exécuter le modèle ONNX, avant de l'intégrer à l'écosystème .NET à l'aide d'Azure Functions. Dans l'ensemble, cette vidéo sert de guide pratique aux développeurs qui cherchent à intégrer les modèles Scikit-learn ML à l'écosystème .NET à l'aide d'ONNX.

Dans cette session pratique du groupe d'utilisateurs ML.NET, le présentateur démontre l'utilisation du format ONNX pour créer un modèle ONNX de notation des prospects qui peut être intégré à l'écosystème Dot Net. L'implémentation peut être utilisée en parallèle avec ML.NET, permettant l'exécution de modèles ONNX à l'aide du runtime ONNX tout en effectuant un apprentissage automatique à l'aide de ML.NET. Le présentateur partage un référentiel GitHub qui contient les techniques utilisées, les bibliothèques et les instructions pas à pas pour construire le modèle ONNX. L'utilisation du format ONNX permet un moteur d'exécution multiplateforme et aide à combler le fossé entre les scientifiques des données et les développeurs d'applications. La valeur de la session réside dans la mise en œuvre pratique d'un système de preuve de concept, qui peut être utilisé avec d'autres algorithmes.

  • 00:00:00 Dans cette section, l'orateur présente son sujet d'intégration des modèles d'apprentissage automatique Scikit-learn dans l'écosystème .NET et montre un exemple pratique de la façon de procéder. Ils discutent également du format Open Neural Network Exchange (ONNX) et de la manière dont il aide à déployer des modèles au sein de l'écosystème .NET. Le conférencier présente le projet de notation des prospects de son équipe dans le domaine du marketing numérique, en utilisant ses connaissances du domaine d'affaires pour développer un outil complémentaire qui automatise le processus de notation des prospects. Ils fournissent un bref aperçu du processus de notation des prospects et soulignent l'importance de construire un système qui est opérationnel à la fin de la journée.

  • 00:05:00 Dans cette section, l'orateur explique le processus de conversion des prospects et la nécessité de l'apprentissage automatique pour optimiser le processus de notation et de génération des prospects. Le conférencier souligne l'importance des mégadonnées générées par les équipes de marketing et de vente numériques, et la nécessité d'un format structuré prédéterminé pour les données. En utilisant l'apprentissage automatique, ils peuvent adopter une approche supervisée pour récupérer les données historiques et améliorer le processus de conversion des prospects. L'outil automatisé vise à maximiser l'efficacité des équipes marketing et commerciales en fournissant des informations à partir des données, telles que l'identification des fonctionnalités les plus importantes et l'ajustement de la stratégie marketing pour générer plus de prospects. Le prototype consiste à récupérer des données à partir de différentes sources et à mettre en œuvre des techniques traditionnelles de science des données telles que le nettoyage des données, l'analyse exploratoire des données et la préparation des données avant d'appliquer le modèle d'apprentissage automatique.

  • 00:10:00 Dans cette section de la vidéo, l'orateur discute du processus de génération d'informations sur les données et de construction de modèles d'apprentissage automatique, ainsi que du défi de déployer ces modèles pour qu'ils soient utilisés par les clients et les entreprises. Ils présentent ONNX (Open Neural Network Exchange) comme une solution possible à ce défi de déploiement. ONNX est un format de fichier qui représente des modèles sous forme de graphiques et qui est indépendant du framework, ce qui signifie qu'il peut être partagé entre différents outils et frameworks d'apprentissage automatique. Le runtime ONNX est un ensemble d'API permettant d'intégrer des modèles dans des environnements cibles. Il est multiplateforme et hautes performances. L'orateur fournit des liens vers le site Web ONNX et GitHub pour plus d'informations.

  • 00:15:00 Dans cette section, l'orateur discute du défi d'intégrer des modèles d'apprentissage automatique dans les systèmes clients après qu'ils ont été développés à l'aide d'outils de science des données comme Python. Ils recommandent d'utiliser ONNX comme format unifié pour les modèles et montrent comment importer, lire, créer, déployer et tester le modèle dans un écosystème .NET. L'orateur mentionne également un ensemble de données de notation des prospects accessible au public qui peut être utilisé pour créer un prototype de marketing basé sur les données. Ils discutent de techniques telles que le nettoyage des données, l'analyse exploratoire des données et l'apprentissage automatique supervisé, y compris la régression et la classification pour les scénarios de notation des prospects. L'objectif est de maximiser l'efficacité des équipes marketing et commerciales et de contribuer à améliorer les performances en se concentrant sur les clients les plus potentiels.

  • 00:20:00 Dans cette section de la vidéo, le conférencier donne un aperçu des outils et des packages qu'il utilise pour intégrer les modèles ML scikit-learn avec ML.NET à l'aide d'ONNX. Ils mentionnent qu'ils utilisent la distribution Anaconda pour l'informatique Python, le bloc-notes Jupyter pour créer les modèles avec la bibliothèque scikit-learn basée sur Python et la version 6 de .NET avec la version 1.9 d'ONNX et la version d'exécution ONNX 181. L'orateur passe brièvement en revue l'ensemble de données qu'ils utilisent et les techniques qu'ils ont mises en œuvre pour le traitement des données, l'analyse exploratoire des données et les mesures d'évaluation des performances. Ils mentionnent également qu'ils ont construit un modèle logistique avec une précision de plus de 82 % en utilisant la régression logistique à des fins de classification à l'aide de l'algorithme Lipliner.

  • 00:25:00 Dans cette section, le présentateur décrit le processus de création d'un modèle de régression logistique pour prédire la notation des leads, puis sa sérialisation à l'aide de la bibliothèque pickle en Python pour l'enregistrer en tant que fichier pkl. Ensuite, le présentateur charge le fichier pkl pour tester le modèle, et le résultat montre une précision de 0,76 sur l'ensemble de test. Le présentateur montre ensuite comment convertir le modèle de scikit-learn au format ONNX, ce qui est nécessaire pour déployer le modèle dans l'écosystème Microsoft.NET. Cette section peut servir de guide pratique sur la façon d'intégrer des modèles d'apprentissage automatique scikit-learn avec ML.NET à l'aide d'ONNX.

  • 00:30:00 Dans cette section, l'orateur discute du processus d'intégration des modèles ML scikit-learn avec ML.NET à l'aide d'ONNX. Ils suggèrent de vérifier la liste des algorithmes pris en charge par les convertisseurs ONNX de ML.NET avant de mettre en œuvre tout apprentissage automatique et de montrer comment importer les convertisseurs pris en charge par SK2ONNX. Ils définissent ensuite le chemin pour stocker le modèle et le nombre de fonctionnalités, en soulignant l'importance du schéma dans la dénomination des entrées et en les convertissant en type de tenseur de flux. Enfin, ils montrent comment construire le modèle ONNX à l'aide de la fonction convert_sklearn, en utilisant le modèle et les types initiaux précédemment définis.

  • 00:35:00 Dans cette section, le conférencier montre comment enregistrer un modèle d'apprentissage automatique scikit-learn basé sur Python au format ONNX et comment exécuter le modèle ONNX à l'aide de la session d'inférence du runtime ONNX. Le nom d'entrée du modèle ONNX est identifié et les noms de sortie de signature ne présentent pas d'intérêt pour cette démonstration. De plus, en utilisant la méthode predict_proba, les probabilités d'être ou de ne pas être converti sont extraites, et elles sont utilisées comme indicateurs et pondérations de scénario spécifiques pour le modèle de notation des leads.

  • 00:40:00 Dans cette section, l'orateur commence par créer une solution vierge dans Visual Studio 2022 pour intégrer un modèle ML scikit-learn, en particulier un modèle de régression logistique, avec l'écosystème .NET utilisant ONNX. L'orateur crée ensuite une fonction Azure dans la solution et obtient le code passe-partout pour l'implémenter avec .NET 6 en tant que déclencheur HTTP. Ils utilisent Insomnia pour créer une nouvelle requête avec des fonctionnalités d'entrée au format JSON, qui seront analysées et utilisées pour l'intégration du système. L'orateur installe le package d'exécution Microsoft ML ONNX à partir de NuGet et crée une classe pour expliquer l'ensemble de fonctionnalités d'entrée. L'orateur utilise ensuite des extraits de code pour accélérer le processus d'intégration.

  • 00:45:00 Dans cette section, l'orateur explique comment récupérer et désérialiser le corps de la requête d'une API à l'aide du convertisseur JSON, afin de l'envoyer en entrée d'un modèle ML. Ils créent un objet de la classe de paramètres LSLead Scoring Model et lui attribuent des valeurs à partir du corps de requête désérialisé. Ils expliquent également l'importance de mettre en œuvre le tenseur d'entrée et de convertir les données d'entrée en un objet TensorFlow du tenseur, afin qu'elles puissent être incorporées dans la session d'inférence. Enfin, ils créent une session d'inférence à l'aide de l'environnement d'exécution ONNX et récupèrent la sortie de la session pour exécuter le modèle ML.

  • 00:50:00 Dans cette section, le présentateur tente de montrer comment intégrer des modèles ML scikit-learn avec ML.NET à l'aide d'ONNX, mais rencontre des difficultés techniques avec Visual Studio. Après avoir tenté de résoudre le problème, le présentateur a recours à l'affichage des extraits de code et discute des packages et des tenseurs d'entrée nécessaires à l'intégration. Malgré les revers, le présentateur est en mesure de fournir un lien vers l'ensemble de fonctions et de fonctionnalités d'entrée utilisé dans la démo pour que les téléspectateurs puissent y accéder et essayer par eux-mêmes.

  • 00:55:00 Dans cette section, le présentateur montre comment utiliser ONNX pour intégrer des modèles d'apprentissage automatique scikit-learn avec ML.NET. Ils montrent d'abord comment déballer la sortie de probabilités de l'implémentation de prédiction-probabilité et les convertir en un dictionnaire de valeurs longues et flottantes représentant les probabilités d'être ou non converties. Ils utilisent ensuite ces probabilités pour obtenir un score de prospect pour être converti et non converti, qu'ils affichent dans un message d'insomnie. Enfin, ils utilisent un cahier Jupyter pour montrer comment un enregistrement de l'ensemble de test est envoyé au modèle et récupérer la valeur de sortie correspondante de un, indiquant que l'individu est susceptible d'être converti.

  • 01:00:00 Dans cette section, le présentateur démontre comment l'utilisation du format Open Neural Network Exchange (ONNX) permet la création d'un modèle ONNX de notation des prospects qui peut être mis en œuvre dans le cadre d'un autre cadre. Le présentateur montre que cela peut être fait en utilisant le cadre de ciblage TensorFlow, Keras et Dot Net. Le présentateur montre également que sur la base du modèle ONNX résultant, ils ont pu incorporer ce format de fichier dans l'écosystème Dot Net et ensuite construire une solution simple qui pourrait exécuter la session et récupérer les résultats. Ils expliquent également comment l'utilisation du format ONNX permet un moteur d'exécution multiplateforme et aide à combler le fossé entre les scientifiques des données et les développeurs d'applications. Le présentateur partage un référentiel de code sur GitHub qui comprend un document de bloc-notes et un espace de travail nécessaires pour commencer à intégrer les modèles ONNX dans l'écosystème Dot Net.

  • 01:05:00 Dans cette section, le présentateur partage un référentiel GitHub qui contient les techniques utilisées, les bibliothèques et les instructions pas à pas pour construire le modèle ONNX, la partie la plus importante étant l'incorporation des packages d'exécution ONNX et ONNX . Le présentateur souligne également que l'implémentation peut être utilisée en parallèle avec ML.NET, permettant l'exécution de modèles ONNX à l'aide du runtime ONNX tout en effectuant un apprentissage automatique à l'aide de ML.NET. Enfin, le présentateur remercie les participants pour leur patience et leur temps et note que la valeur de la session réside dans la mise en œuvre pratique d'un système de preuve de concept, qui peut être utilisé avec d'autres algorithmes.
 

Intégration des modèles ML scikit-learn avec ML.NET à l'aide d'ONNX - Groupe d'utilisateurs pratiques de ML.NET 18/02/2022



Intégration des modèles ML scikit-learn avec ML.NET à l'aide d'ONNX - Groupe d'utilisateurs pratiques de ML.NET 18/02/2022

Dans cette vidéo, le conférencier discute de l'intégration des modèles d'apprentissage automatique Scikit-learn avec l'écosystème .NET à l'aide d'ONNX. Ils utilisent la notation des prospects dans le domaine du marketing numérique comme exemple pratique de la manière de créer, déployer et tester des modèles d'apprentissage automatique pour les systèmes clients. Le présentateur explique le processus de notation des prospects et souligne l'importance de créer un outil automatisé qui maximise l'efficacité des équipes marketing et commerciales. L'orateur discute du défi que représente le déploiement de modèles d'apprentissage automatique pour les systèmes clients et présente ONNX en tant que solution. Ils fournissent un aperçu des outils, packages et techniques utilisés pour intégrer les modèles Scikit-learn ML avec ML.NET à l'aide d'ONNX. Le conférencier montre comment créer et sérialiser un modèle de régression logistique, le convertir au format ONNX et exécuter le modèle ONNX, avant de l'intégrer à l'écosystème .NET à l'aide d'Azure Functions. Dans l'ensemble, cette vidéo sert de guide pratique aux développeurs qui cherchent à intégrer les modèles Scikit-learn ML à l'écosystème .NET à l'aide d'ONNX.

Dans cette session pratique du groupe d'utilisateurs ML.NET, le présentateur démontre l'utilisation du format ONNX pour créer un modèle ONNX de notation des prospects qui peut être intégré à l'écosystème Dot Net. L'implémentation peut être utilisée en parallèle avec ML.NET, permettant l'exécution de modèles ONNX à l'aide du runtime ONNX tout en effectuant un apprentissage automatique à l'aide de ML.NET. Le présentateur partage un référentiel GitHub qui contient les techniques utilisées, les bibliothèques et les instructions pas à pas pour construire le modèle ONNX. L'utilisation du format ONNX permet un moteur d'exécution multiplateforme et aide à combler le fossé entre les scientifiques des données et les développeurs d'applications. La valeur de la session réside dans la mise en œuvre pratique d'un système de preuve de concept, qui peut être utilisé avec d'autres algorithmes.

  • 00:00:00 Dans cette section, l'orateur présente son sujet d'intégration des modèles d'apprentissage automatique Scikit-learn dans l'écosystème .NET et montre un exemple pratique de la façon de procéder. Ils discutent également du format Open Neural Network Exchange (ONNX) et de la manière dont il aide à déployer des modèles au sein de l'écosystème .NET. Le conférencier présente le projet de notation des prospects de son équipe dans le domaine du marketing numérique, en utilisant ses connaissances du domaine d'affaires pour développer un outil complémentaire qui automatise le processus de notation des prospects. Ils fournissent un bref aperçu du processus de notation des prospects et soulignent l'importance de construire un système qui est opérationnel à la fin de la journée.

  • 00:05:00 Dans cette section, l'orateur explique le processus de conversion des prospects et la nécessité de l'apprentissage automatique pour optimiser le processus de notation et de génération des prospects. Le conférencier souligne l'importance des mégadonnées générées par les équipes de marketing et de vente numériques, et la nécessité d'un format structuré prédéterminé pour les données. En utilisant l'apprentissage automatique, ils peuvent adopter une approche supervisée pour récupérer les données historiques et améliorer le processus de conversion des prospects. L'outil automatisé vise à maximiser l'efficacité des équipes marketing et commerciales en fournissant des informations à partir des données, telles que l'identification des fonctionnalités les plus importantes et l'ajustement de la stratégie marketing pour générer plus de prospects. Le prototype consiste à récupérer des données à partir de différentes sources et à mettre en œuvre des techniques traditionnelles de science des données telles que le nettoyage des données, l'analyse exploratoire des données et la préparation des données avant d'appliquer le modèle d'apprentissage automatique.

  • 00:10:00 Dans cette section de la vidéo, l'orateur discute du processus de génération d'informations sur les données et de construction de modèles d'apprentissage automatique, ainsi que du défi de déployer ces modèles pour qu'ils soient utilisés par les clients et les entreprises. Ils présentent ONNX (Open Neural Network Exchange) comme une solution possible à ce défi de déploiement. ONNX est un format de fichier qui représente des modèles sous forme de graphiques et qui est indépendant du framework, ce qui signifie qu'il peut être partagé entre différents outils et frameworks d'apprentissage automatique. Le runtime ONNX est un ensemble d'API permettant d'intégrer des modèles dans des environnements cibles. Il est multiplateforme et hautes performances. L'orateur fournit des liens vers le site Web ONNX et GitHub pour plus d'informations.

  • 00:15:00 Dans cette section, l'orateur discute du défi d'intégrer des modèles d'apprentissage automatique dans les systèmes clients après qu'ils ont été développés à l'aide d'outils de science des données comme Python. Ils recommandent d'utiliser ONNX comme format unifié pour les modèles et montrent comment importer, lire, créer, déployer et tester le modèle dans un écosystème .NET. L'orateur mentionne également un ensemble de données de notation des prospects accessible au public qui peut être utilisé pour créer un prototype de marketing basé sur les données. Ils discutent de techniques telles que le nettoyage des données, l'analyse exploratoire des données et l'apprentissage automatique supervisé, y compris la régression et la classification pour les scénarios de notation des prospects. L'objectif est de maximiser l'efficacité des équipes marketing et commerciales et de contribuer à améliorer les performances en se concentrant sur les clients les plus potentiels.

  • 00:20:00 Dans cette section de la vidéo, le conférencier donne un aperçu des outils et des packages qu'il utilise pour intégrer les modèles ML scikit-learn avec ML.NET à l'aide d'ONNX. Ils mentionnent qu'ils utilisent la distribution Anaconda pour l'informatique Python, le bloc-notes Jupyter pour créer les modèles avec la bibliothèque scikit-learn basée sur Python et la version 6 de .NET avec la version 1.9 d'ONNX et la version d'exécution ONNX 181. L'orateur passe brièvement en revue l'ensemble de données qu'ils utilisent et les techniques qu'ils ont mises en œuvre pour le traitement des données, l'analyse exploratoire des données et les mesures d'évaluation des performances. Ils mentionnent également qu'ils ont construit un modèle logistique avec une précision de plus de 82 % en utilisant la régression logistique à des fins de classification à l'aide de l'algorithme Lipliner.

  • 00:25:00 Dans cette section, le présentateur décrit le processus de création d'un modèle de régression logistique pour prédire la notation des leads, puis sa sérialisation à l'aide de la bibliothèque pickle en Python pour l'enregistrer en tant que fichier pkl. Ensuite, le présentateur charge le fichier pkl pour tester le modèle, et le résultat montre une précision de 0,76 sur l'ensemble de test. Le présentateur montre ensuite comment convertir le modèle de scikit-learn au format ONNX, ce qui est nécessaire pour déployer le modèle dans l'écosystème Microsoft.NET. Cette section peut servir de guide pratique sur la façon d'intégrer des modèles d'apprentissage automatique scikit-learn avec ML.NET à l'aide d'ONNX.

  • 00:30:00 Dans cette section, l'orateur discute du processus d'intégration des modèles ML scikit-learn avec ML.NET à l'aide d'ONNX. Ils suggèrent de vérifier la liste des algorithmes pris en charge par les convertisseurs ONNX de ML.NET avant de mettre en œuvre tout apprentissage automatique et de montrer comment importer les convertisseurs pris en charge par SK2ONNX. Ils définissent ensuite le chemin pour stocker le modèle et le nombre de fonctionnalités, en soulignant l'importance du schéma dans la dénomination des entrées et en les convertissant en type de tenseur de flux. Enfin, ils montrent comment construire le modèle ONNX à l'aide de la fonction convert_sklearn, en utilisant le modèle et les types initiaux précédemment définis.

  • 00:35:00 Dans cette section, le conférencier montre comment enregistrer un modèle d'apprentissage automatique scikit-learn basé sur Python au format ONNX et comment exécuter le modèle ONNX à l'aide de la session d'inférence du runtime ONNX. Le nom d'entrée du modèle ONNX est identifié et les noms de sortie de signature ne présentent pas d'intérêt pour cette démonstration. De plus, en utilisant la méthode predict_proba, les probabilités d'être ou de ne pas être converti sont extraites, et elles sont utilisées comme indicateurs et pondérations de scénario spécifiques pour le modèle de notation des leads.

  • 00:40:00 Dans cette section, l'orateur commence par créer une solution vierge dans Visual Studio 2022 pour intégrer un modèle ML scikit-learn, en particulier un modèle de régression logistique, avec l'écosystème .NET utilisant ONNX. L'orateur crée ensuite une fonction Azure dans la solution et obtient le code passe-partout pour l'implémenter avec .NET 6 en tant que déclencheur HTTP. Ils utilisent Insomnia pour créer une nouvelle requête avec des fonctionnalités d'entrée au format JSON, qui seront analysées et utilisées pour l'intégration du système. L'orateur installe le package d'exécution Microsoft ML ONNX à partir de NuGet et crée une classe pour expliquer l'ensemble de fonctionnalités d'entrée. L'orateur utilise ensuite des extraits de code pour accélérer le processus d'intégration.

  • 00:45:00 Dans cette section, l'orateur explique comment récupérer et désérialiser le corps de la requête d'une API à l'aide du convertisseur JSON, afin de l'envoyer en entrée d'un modèle ML. Ils créent un objet de la classe de paramètres LSLead Scoring Model et lui attribuent des valeurs à partir du corps de requête désérialisé. Ils expliquent également l'importance de mettre en œuvre le tenseur d'entrée et de convertir les données d'entrée en un objet TensorFlow du tenseur, afin qu'elles puissent être incorporées dans la session d'inférence. Enfin, ils créent une session d'inférence à l'aide de l'environnement d'exécution ONNX et récupèrent la sortie de la session pour exécuter le modèle ML.

  • 00:50:00 Dans cette section, le présentateur tente de montrer comment intégrer des modèles ML scikit-learn avec ML.NET à l'aide d'ONNX, mais rencontre des difficultés techniques avec Visual Studio. Après avoir tenté de résoudre le problème, le présentateur a recours à l'affichage des extraits de code et discute des packages et des tenseurs d'entrée nécessaires à l'intégration. Malgré les revers, le présentateur est en mesure de fournir un lien vers l'ensemble de fonctions et de fonctionnalités d'entrée utilisé dans la démo pour que les téléspectateurs puissent y accéder et essayer par eux-mêmes.

  • 00:55:00 Dans cette section, le présentateur montre comment utiliser ONNX pour intégrer des modèles d'apprentissage automatique scikit-learn avec ML.NET. Ils montrent d'abord comment déballer la sortie de probabilités de l'implémentation de prédiction-probabilité et les convertir en un dictionnaire de valeurs longues et flottantes représentant les probabilités d'être ou non converties. Ils utilisent ensuite ces probabilités pour obtenir un score de prospect pour être converti et non converti, qu'ils affichent dans un message d'insomnie. Enfin, ils utilisent un cahier Jupyter pour montrer comment un enregistrement de l'ensemble de test est envoyé au modèle et récupérer la valeur de sortie correspondante de un, indiquant que l'individu est susceptible d'être converti.

  • 01:00:00 Dans cette section, le présentateur démontre comment l'utilisation du format Open Neural Network Exchange (ONNX) permet la création d'un modèle ONNX de notation des prospects qui peut être mis en œuvre dans le cadre d'un autre cadre. Le présentateur montre que cela peut être fait en utilisant le cadre de ciblage TensorFlow, Keras et Dot Net. Le présentateur montre également que sur la base du modèle ONNX résultant, ils ont pu incorporer ce format de fichier dans l'écosystème Dot Net et ensuite construire une solution simple qui pourrait exécuter la session et récupérer les résultats. Ils expliquent également comment l'utilisation du format ONNX permet un moteur d'exécution multiplateforme et aide à combler le fossé entre les scientifiques des données et les développeurs d'applications. Le présentateur partage un référentiel de code sur GitHub qui comprend un document de bloc-notes et un espace de travail nécessaires pour commencer à intégrer les modèles ONNX dans l'écosystème Dot Net.

  • 01:05:00 Dans cette section, le présentateur partage un référentiel GitHub qui contient les techniques utilisées, les bibliothèques et les instructions pas à pas pour construire le modèle ONNX, la partie la plus importante étant l'incorporation des packages d'exécution ONNX et ONNX . Le présentateur souligne également que l'implémentation peut être utilisée en parallèle avec ML.NET, permettant l'exécution de modèles ONNX à l'aide du runtime ONNX tout en effectuant un apprentissage automatique à l'aide de ML.NET. Enfin, le présentateur remercie les participants pour leur patience et leur temps et note que la valeur de la session réside dans la mise en œuvre pratique d'un système de preuve de concept, qui peut être utilisé avec d'autres algorithmes.
 

Modèles d'apprentissage automatique avec ONNX et .NET | Conférence .NET 2022



Modèles d'apprentissage automatique avec ONNX et .NET | Conférence .NET 2022

La vidéo "Modèles d'apprentissage automatique avec ONNX et .NET" de .NET Conf 2022 présente aux téléspectateurs les concepts de l'IA et de l'apprentissage automatique, y compris la différence entre l'apprentissage en profondeur et la programmation traditionnelle. Les présentateurs fournissent une vue d'ensemble d'Azure Machine Learning, PyTorch et ONNX, et montrent comment créer un pipeline à l'aide d'Azure Machine Learning pour former des modèles d'apprentissage machine avec ONNX et .NET. Ils expliquent également comment intégrer un modèle d'apprentissage automatique dans une application .NET Maui et discutent des techniques permettant de réduire la taille des modèles ONNX pour les appareils mobiles. La section se termine en présentant le prochain conférencier, Rory, qui discutera de l'accessibilité.

  • 00:00:00 Dans cette section de la vidéo, Beatriz et Henk présentent l'IA et l'apprentissage automatique, et la différence entre les deux. Ils expliquent que l'apprentissage automatique est un sous-ensemble de l'IA et a la capacité d'apprendre à partir de données sans être explicitement programmé avec un algorithme. Au lieu de cela, il produit un modèle basé sur les données fournies, qui peut ensuite être utilisé pour faire des prédictions ou prendre des décisions.

  • 00:05:00 Dans cette section, l'orateur explique la différence entre les phases d'apprentissage et de prédiction de l'apprentissage automatique. La phase de prédiction fonctionne comme la programmation traditionnelle où un modèle ou un algorithme reçoit une entrée, produit une réponse ou une prédiction et permet de résoudre des problèmes complexes difficiles à résoudre avec la programmation traditionnelle. Le conférencier parle également d'apprentissage en profondeur, qui est un sous-ensemble de l'apprentissage automatique basé sur des réseaux de neurones artificiels inspirés du cerveau. La démonstration que le conférencier présente dans la vidéo utilise la vision par ordinateur, un domaine de l'intelligence artificielle qui entraîne les ordinateurs à interpréter et à comprendre le monde visuel, ce qui inclut la classification, la détection d'objets et la segmentation d'images. Enfin, l'orateur discute du concept d'apprentissage par transfert, où un modèle formé pour une tâche est utilisé comme point de départ pour une tâche différente, ce qui permet de gagner du temps dans la formation du modèle.

  • 00:10:00 Dans cette section, les présentateurs donnent un aperçu des deux frameworks qu'ils utiliseront pour leur modèle d'apprentissage automatique : PyTorch et ONNX. PyTorch est un framework d'apprentissage en profondeur open source que les présentateurs préfèrent pour cette démo, tandis qu'ONNX est un format ouvert conçu pour représenter des modèles d'apprentissage automatique qui permet aux développeurs d'IA d'utiliser des modèles dans une variété de frameworks. Ils expliquent qu'ONNX leur permet d'utiliser PyTorch pour créer leur modèle, puis de l'enregistrer dans ONNX, ce qui permet de lire ce modèle depuis .NET MAUI. Ils présentent également Azure Machine Learning, qui comprend un ensemble de services cloud qui permettent des charges de travail collaboratives d'apprentissage automatique, ainsi que ses éléments clés : expériences, magasins de données, environnements et gestion des modèles. Ils expliquent que la gestion des modèles est la clé de leur histoire car ils formeront leur modèle dans PyTorch et l'enregistreront dans la gestion des modèles afin que d'autres puissent le vérifier et l'utiliser dans le logiciel de leur choix. Ils fournissent également une vue d'ensemble des pipelines d'apprentissage automatique, qui sont des flux de travail d'étapes qui peuvent utiliser des sources de données, des ensembles de données et s'exécuter sur des cibles de calcul.

  • 00:15:00 Dans cette section, le conférencier explique comment créer un pipeline à l'aide d'Azure Machine Learning Designer pour former des modèles d'apprentissage automatique avec ONNX et .NET. La première étape consiste à examiner les données, qui sont stockées dans Blob Storage. Ensuite, ils créent un nouveau pipeline à l'aide du concepteur, ce qui leur permet de faire glisser et de déposer des composants sur le canevas. Les composants qu'ils sélectionnent incluent le modèle PyTorch, le convertisseur ONNX et le modèle d'entraînement. Une fois les composants définis, l'orateur exécute le pipeline sur son calcul Azure Machine Learning appelé BumbleBee. Ils illustrent les fonctionnalités de la définition du composant et le code du fichier de formation.

  • 00:20:00 Dans cette section, le présentateur montre comment utiliser ONNX et .NET pour créer un modèle d'apprentissage automatique et l'intégrer dans une application .NET Maui. Le modèle a été formé à l'aide d'Azure Machine Learning avec Python et PyTorch et converti au format ONNX. Le modèle a ensuite été enregistré dans Model Management et utilisé dans une application .NET. Le présentateur explique l'importance de permettre aux data scientists de travailler avec le langage de leur choix et aux développeurs de créer des applications dans le leur. Tous les exemples de codes utilisés dans la présentation peuvent être trouvés dans le lien fourni, ainsi que d'autres ressources pour en savoir plus sur l'apprentissage automatique et le rôle de développeur d'IA.

  • 00:25:00 Dans cette section de la vidéo, les présentateurs discutent de la taille de fichier des modèles ONNX et des techniques utilisées pour les réduire et mieux fonctionner sur mobile. Ils soulignent qu'il existe un vaste domaine de l'apprentissage automatique dédié à la réduction de la taille des modèles, quitte à sacrifier certaines performances. Ils mentionnent également un projet appelé Seeing AI, qui utilise différents modèles d'IA dans une application mobile, et suggèrent aux téléspectateurs de le vérifier par eux-mêmes. Enfin, les présentateurs présentent Rory comme le prochain conférencier qui discutera de l'accessibilité.
 

Sur .NET Live - Opérationnalisation des modèles ML avec ONNX, C# .... et Pokemon !



Sur .NET Live - Opérationnalisation des modèles ML avec ONNX, C# .... et Pokemon !

Dans cette vidéo On.NET Live, les hôtes discutent de l'opérationnalisation des modèles d'apprentissage automatique avec ONNX et invitent Cassie Kozyrkov en tant qu'invitée spéciale. Kozyrkov souligne l'importance du mentorat et discute de l'utilisation d'ONNX comme moyen de combler le fossé entre les scientifiques des données et les ingénieurs en logiciel. La conversation couvre divers sujets, de la création d'un modèle d'apprentissage automatique à l'aide du traitement du langage naturel à l'importance de la transformation des données, en passant par les tests avec des données invisibles et le déploiement du modèle via Azure Functions. Les conférenciers discutent également d'Azure Machine Learning et des ressources disponibles pour ceux qui souhaitent explorer ONNX et les modèles d'apprentissage automatique plus largement.

La vidéo On.NET Live traite de l'opérationnalisation des modèles ML avec ONNX, C# et (pour le plaisir) Pokemon. Le premier présentateur parle d'ONNX, un format d'apprentissage automatique qui permet d'enregistrer et de charger des modèles dans différents cadres, et de la façon d'opérationnaliser les modèles à l'aide de .NET. Le deuxième présentateur discute de l'utilisation de ML.NET pour créer un classificateur d'images Pokemon et montre comment il peut être opérationnalisé pour le déploiement. Dans l'ensemble, la vidéo fournit un excellent aperçu de l'opérationnalisation des modèles d'apprentissage automatique avec ONNX et C#.

  • 00:00:00 Dans cette section de la vidéo, les hôtes présentent une invitée spéciale, Cassie, qui discutera de l'apprentissage automatique avec Onnx et peut-être même Pokémon. La conversation comprend également des annonces sur les conférences à venir, telles que .NET Conf et Start Dev Change, qui ont été organisées par Cassie et l'équipe pour aider les gens à acquérir de nouvelles compétences en développement et à autonomiser les changeurs de carrière. La conférence a couvert divers domaines techniques dans le but d'aider les individus à trouver leur passion et à poursuivre un changement de carrière.

  • 00:05:00 Dans cette section, Cassie Kozyrkov parle de l'importance du mentorat et de la nécessité pour les gens de s'engager dans des initiatives comme Start Dev Change, en particulier en ces temps où les gens se débattent à cause de la pandémie. Elle aborde ensuite ONNX, le format ouvert permettant d'enregistrer des modèles d'apprentissage automatique et de les déployer dans différents environnements. Cassie explique qu'ONNX facilite le rapprochement entre ce que font les scientifiques des données et ce que font les ingénieurs en logiciel, en particulier dans les cas où il y a une déconnexion entre les départements. Avec ONNX, les modèles peuvent être transmis au côté DevOps, qui peut les déployer de la manière qui convient le mieux au projet, et il peut être utilisé dans différentes applications, notamment C#, C++ et Python.

  • 00:10:00 Dans cette section, l'orateur décrit la construction d'un modèle d'apprentissage automatique utilisant le traitement du langage naturel pour extraire des données des descriptions de vins et les utiliser pour prédire la variété, la valeur en points et la fourchette de prix du vin. Ils mentionnent l'utilisation d'une énorme bibliothèque de données de magiciens du vin et la construction du modèle avec différentes fonctionnalités. Le modèle est créé avec Python et formé dans Jupyter Notebooks. L'orateur explique également comment Pandas est utilisé pour manipuler les données et montre un nuage de mots pour démontrer les mots les plus courants dans l'ensemble de données.

  • 00:15:00 Dans cette section, l'orateur discute des différentes approches de l'apprentissage automatique et de la manière de choisir celle qui convient à une tâche donnée. Ils expliquent la différence entre l'apprentissage automatique classique et l'apprentissage en profondeur, l'apprentissage en profondeur nécessitant davantage de couches et de réseaux de neurones. L'orateur recommande de commencer par scikit-learn, une bibliothèque d'apprentissage automatique classique, et d'expérimenter différents algorithmes pour voir ce qui fonctionne le mieux. Ils discutent également de l'importance de la transformation des données et de la tokenisation lors du traitement des données textuelles, et de la manière d'équilibrer la précision du modèle avec la taille du modèle.

  • 00:20:00 Dans cette section, l'orateur discute du traitement des données requis pour l'apprentissage automatique avant de former réellement le modèle, comme le nettoyage des données et l'extraction des caractéristiques. Ils soulignent l'importance de tester avec des données inédites et mettent en garde contre le fait de se fier uniquement à la précision, car les résultats peuvent différer lors de l'application du modèle à des données de production réelles. L'orateur montre également comment configurer un pipeline de données et utiliser un modèle de régression logistique pour créer un modèle d'apprentissage automatique, avant de passer à l'étape de déploiement.

  • 00:25:00 Dans cette section, les intervenants discutent du modèle de traitement du langage naturel utilisé et de l'algorithme CountVectorizer utilisé pour celui-ci, qui fait partie de la bibliothèque scikit-learn. Le pipeline présenté dans la vidéo inclut le CountVectorizer et le modèle de régression logistique. Les auteurs expliquent comment exporter le modèle à l'aide du runtime ONNX et l'enregistrer en tant que fichier ONNX. Ils discutent ensuite des meilleures performances du runtime, qui tiennent compte du matériel sur lequel il se déploie, ce qui lui confère un avantage de vitesse significatif.

  • 00:30:00 Dans cette section, les présentateurs discutent du déploiement du modèle et du processus d'inférence. Ils mentionnent que le déploiement d'un modèle implique de considérer l'architecture et les projets appropriés pour la situation donnée, qui peuvent varier de l'utilisation de l'apprentissage automatique Azure à la ressource de conteneur ou aux offres sans serveur comme la fonction Azure. Le modèle et le code doivent être téléchargés dans le cloud, et dans ce cas particulier, le modèle est stocké dans le stockage blob, puis consommé par la fonction. Les présentateurs abordent également l'importance de la mise en cache des données pour accélérer le processus d'inférence et expliquent comment le dictionnaire et la session d'inférence fonctionnent pour exécuter le modèle dans la fonction. Bien qu'il soit nécessaire de comprendre le type de données, il n'est pas nécessaire de comprendre comment le modèle a été créé pour l'exécuter avec succès.

  • 00:35:00 non. Dans cette section, l'orateur discute du processus d'opérationnalisation des modèles d'apprentissage automatique avec ONNX et comment cela peut être fait sans l'aide d'un scientifique des données. Ils soulignent l'importance de comprendre le format d'entrée et de créer le tenseur, et expliquent également le processus de conversion des résultats du modèle dans le format souhaité. L'orateur mentionne la nécessité de simplifier les couches nécessaires pour accéder à la sortie du modèle, et comment les données peuvent être nettoyées et regroupées pour de meilleurs résultats. Ils abordent également la possibilité de collecter des métriques et des retours d'expérience pour recycler le modèle.

  • 00:40:00 Dans cette section, les conférenciers discutent de l'importance de tester et de comprendre le fonctionnement d'un modèle d'apprentissage automatique pour faire des prédictions. Ils évoquent l'idée de créer des tests unitaires et d'intégrer des tests automatisés dans le processus de développement normal. De plus, ils mentionnent les outils disponibles dans Azure Machine Learning pour l'interprétabilité du modèle, ce qui peut aider à identifier les problèmes potentiels avec les prédictions du modèle. Enfin, ils abordent le déploiement du modèle dans un déclencheur HTTP via l'extension de Visual Studio Code.

  • 00:45:00 Dans cette section, les conférenciers discutent d'un jeu amusant de dégustation de vin qui a été créé à l'aide de l'apprentissage automatique et déployé sur Azure. Ils partagent le lien vers le site Web et expliquent comment le modèle a été formé à l'aide des descriptions de sommelier de Winemag, et comment ils ont utilisé les fonctions Azure pour déployer le modèle sur Azure. Ils discutent également des utilisations plus larges d'Azure Machine Learning, y compris des outils de calcul cloud, d'accélération GPU et de gestion des versions de modèle, ce qui le rend idéal pour l'apprentissage automatique d'entreprise. Malgré cela, il peut encore y avoir des moments où le déploiement sur un point de terminaison n'est pas nécessaire, et Azure Machine Learning permet cette simplicité.

  • 00:50:00 Dans cette section, le conférencier aborde les différentes fonctionnalités et capacités d'Azure Machine Learning, qui va au-delà de la simple création d'un modèle et de sa consommation via des points de terminaison. Ils mettent en évidence l'atelier d'expérimentation, la gestion des versions et le calcul des modèles, ainsi que les plug-ins DevOps qui permettent la collaboration entre les scientifiques des données et les développeurs dans la création et le déploiement de modèles d'apprentissage automatique. Ils mentionnent également la nature en constante évolution de l'outil et recommandent de le revoir si les utilisateurs ne l'ont pas consulté depuis un certain temps. Le conférencier fournit des liens vers son référentiel GitHub et son article de blog pour ceux qui souhaitent en savoir plus sur l'utilisation d'ONNX avec C# et son déploiement via Azure Functions.

  • 00:55:00 Dans cette section, les conférenciers discutent de diverses ressources disponibles pour ceux qui souhaitent explorer ONNX et les modèles d'apprentissage automatique en général. Ils recommandent de consulter le didacticiel et les exemples de cahiers fournis par ONNX, ainsi que d'explorer leur code open source sur Github. De plus, ils discutent brièvement de l'utilisation d'outils tels que Custom Vision pour créer des modèles de vision par ordinateur sans avoir besoin d'un code étendu. Enfin, ils plaisantent sur la création d'un modèle de détection Pokemon à l'avenir et recommandent de consulter .NET Conf en novembre pour plus d'annonces sur l'apprentissage automatique.
 

Standup de la communauté Machine Learning - Apprentissage en profondeur avec PyTorch ONNX



Standup de la communauté Machine Learning - Apprentissage en profondeur avec PyTorch et ONNX

La vidéo "Machine Learning Community Standup - Deep Learning with PyTorch & ONNX" couvre divers sujets liés à l'apprentissage automatique, PyTorch et ONNX. Une section couvre le surajustement et comment l'empêcher dans les réseaux de neurones en utilisant l'abandon et la validation croisée. Les hôtes mettent également en évidence divers projets d'apprentissage automatique basés sur la communauté et leurs événements à venir sur l'utilisation de .NET avec l'apprentissage automatique. La vidéo présente également PyTorch, une bibliothèque d'apprentissage automatique populaire utilisée pour la vision par ordinateur et le traitement du langage naturel, avec divers modules intégrés tels que la vision torche et les transformations. Les conférenciers expliquent le format ONNX pour représenter les modèles d'apprentissage automatique et son environnement d'exécution pour exécuter l'inférence et la formation dans plusieurs langues. Le didacticiel explique également comment utiliser des modèles prédéfinis dans le zoo de modèles de PyTorch et couvre le débogage et la gestion des packages et des environnements Python à l'aide de Jupyter Notebooks et d'Anaconda. De plus, le didacticiel couvre les détails de la formation et de l'exportation d'un modèle PyTorch à l'aide d'ONNX, qui peut être utilisé avec le runtime ONNX pour améliorer les performances des modèles.

La vidéo aborde également divers sujets liés à l'apprentissage automatique et à l'apprentissage en profondeur. Les conférenciers parlent de l'utilisation de SkiaSharp pour le traitement d'image dans Xamarin et des limites des modèles sur appareil en raison de leur taille, mais notent les avantages d'avoir des modèles sur appareil. Ils suggèrent également diverses ressources pour apprendre la théorie de l'apprentissage automatique, telles que la classe Andrew Ng Coursera et une classe d'apprentissage automatique appliquée qui donne des informations de haut niveau sur l'utilisation d'outils et de bibliothèques pour créer des modèles d'apprentissage automatique. L'importance d'avoir un objectif lors de l'apprentissage de l'apprentissage automatique et de l'intégration de l'apprentissage dans son travail est également mentionnée. Enfin, l'orateur fait allusion au contenu à venir qui pourrait intéresser le public.

  • 00:00:00 Dans cette section, les hôtes présentent leur invitée, Cassie Breviu, responsable de programme senior chez Microsoft dans l'équipe d'exécution ONNX, qui discutera de PyTorch et ONNX. Ils récapitulent brièvement le sujet du flux précédent, qui concernait l'utilisation de .NET avec des bibliothèques telles que PyTorch. Avant d'aborder le sujet principal, les animateurs introduisent un nouveau segment où ils parlent des concepts d'apprentissage automatique, en commençant par le décrochage. L'abandon est une méthode pour empêcher le surajustement dans les réseaux de neurones, qui est obtenue en abandonnant au hasard certains des nœuds pendant la formation.

  • 00:05:00 Dans cette section de la vidéo, les hôtes discutent du surajustement et de la façon dont l'utilisation de l'abandon et de la validation croisée peut aider à résoudre le problème dans les modèles d'apprentissage automatique. Ils mentionnent qu'obtenir une précision de 100 % sur un ensemble d'entraînement n'est pas toujours une bonne chose et peut entraîner de mauvaises performances sur des données réelles. Ils font une analogie avec l'étude d'un test et la mémorisation des réponses sans comprendre les concepts qui les sous-tendent. Les hôtes passent ensuite aux liens de la communauté et mentionnent plusieurs projets et présentations au sein de la communauté, notamment la création de solutions d'apprentissage automatique sans serveur, des applications d'analyse des sentiments, l'utilisation d'AutoML et de Model Builder, et la formation d'un modèle de classification d'images à l'aide d'Azure. Ces projets visent à aider les utilisateurs à créer et à déployer plus efficacement des solutions d'IA.

  • 00:10:00 Dans cette section, l'orateur parle d'un didacticiel sur l'utilisation d'Azure pour former des modèles de classification d'images, ainsi que d'une démonstration de l'utilisation du runtime ONNX et de la détection d'objets avec le modèle YOLO v5. Ils mentionnent également plusieurs événements à venir sur l'apprentissage automatique et .NET, y compris l'événement Let's Learn .NET Focus on Machine Learning, où les participants suivront un module d'apprentissage qui sortira plus tard ce mois-ci. Ils discutent ensuite de la nouvelle fonctionnalité de Visual Studio qui permet l'utilisation de blocs-notes, similaires aux blocs-notes Jupiter, et de la façon dont cela permet aux utilisateurs de procéder à l'ingénierie inverse d'une interface utilisateur low-code au codage, à l'apprentissage automatique et à l'apprentissage approfondi. Enfin, ils expriment leur espoir que les blocs-notes deviennent le format standard des guides d'utilisation et des exemples, permettant aux utilisateurs de télécharger des fichiers de bloc-notes pour exécuter des cellules de code et apprendre à utiliser une API au lieu de lire des pages wiki ou d'autres fichiers de démarquage.

  • 00:15:00 Dans cette section, les conférenciers discutent des diverses mises à jour et améliorations apportées à Microsoft Learn et ML.NET. Ils mentionnent la prise en charge des blocs-notes interactifs accessible via l'interface utilisateur Web, ce qui facilite la tâche de ceux qui ne savent pas comment configurer les environnements locaux Python. Ils mettent également en évidence la bibliothèque Torch Sharp, qui permet aux utilisateurs de créer des réseaux de neurones personnalisés et de les intégrer étroitement au runtime ONNX, améliorant ainsi l'expérience de consommation de modèles d'apprentissage en profondeur. De plus, l'accent est mis sur l'IA éthique et responsable au sein de ML.NET, avec des plans pour la reconnaissance des noms, la saisie dynamique des données et la prévision des sorties et des séries chronologiques, entre autres. Dans l'ensemble, les conférenciers soulignent l'importance des commentaires des utilisateurs et les encouragent à fournir des suggestions d'amélioration.

  • 00:20:00 Dans cette section de la vidéo, l'orateur discute de la manière dont le flux de développement peut changer lors de la création de modèles d'apprentissage automatique, en particulier en termes de différents outils et bibliothèques utilisés. Ils comparent la programmation traditionnelle à l'apprentissage automatique, expliquant qu'avec ce dernier, les données sont introduites dans un algorithme pour produire un modèle, qui est ensuite utilisé pour l'inférence. L'orateur présente ensuite PyTorch, une bibliothèque d'apprentissage automatique open source, et ses différents composants, y compris la fonction de réseau neuronal et les utilitaires de données. Ils abordent également d'autres bibliothèques comme TensorFlow et scikit-learn, ainsi que des outils comme les cahiers Jupyter et VS Code.

  • 00:25:00 Dans cette section, l'orateur donne un aperçu de PyTorch, qui est une bibliothèque d'apprentissage automatique populaire couramment utilisée dans la vision par ordinateur et le traitement du langage naturel. La bibliothèque comprend plusieurs modules tels que la vision de la torche pour la vision par ordinateur, l'audio de la torche pour les données audio et le texte de la torche pour le traitement du langage naturel. Comme les données sont l'épine dorsale de l'apprentissage automatique, les modules fournissent également des fonctionnalités de prétraitement telles que des ensembles de données, des chargeurs de données et des transformations pour préparer les données à la formation par un modèle. Le conférencier recommande d'utiliser un tutoriel interactif sur PyTorch pour en savoir plus sur la bibliothèque et ses fonctionnalités. Ils présentent également ONNX, un format ouvert conçu pour représenter des modèles d'apprentissage automatique, et ONNX runtime, un outil de déploiement multiplateforme qui permet l'inférence et la formation dans plusieurs langues.

  • 00:30:00 Dans cette section, les intervenants discutent de l'utilisation des modèles ONNX dans Blazor, Cassie admettant qu'elle ne l'a pas encore essayé. Ils expliquent également comment convertir des modèles au format ONNX à l'aide de bibliothèques telles que PyTorch, Scikit-learn ou TensorFlow. L'utilisation des modèles ONNX est simple, car il vous suffit d'importer la bibliothèque d'exécution ONNX, de créer une session d'inférence et de transmettre vos données d'entrée pour obtenir un résultat. La difficulté vient de la manipulation de données dans différents langages, car Python est considéré comme puissant à cet égard par rapport à d'autres langages. Les conférenciers mentionnent également le zoo modèle, qui a des modèles prédéfinis qui peuvent être utilisés pour l'inférence avec un exemple de code disponible pour vous aider.

  • 00:35:00 Dans cette section, l'orateur explique comment utiliser des modèles prédéfinis dans le zoo modèle de PyTorch, en mettant l'accent sur la segmentation d'objets à l'aide de rcnn rapide, un type de réseau neuronal convolutif (CNN). L'orateur aborde également brièvement le travail avec les tenseurs et leur manipulation à l'aide de NumPy, notant que PyTorch fournit un cahier interactif pour apprendre à manipuler efficacement les tenseurs. De plus, l'orateur note que les ensembles de données de PyTorch sont obtenus à l'aide de `torchvision.datasets`, qui les télécharge à partir d'un référentiel open source.

  • 00:40:00 Dans cette section de la vidéo, l'orateur discute de la nature open-source de PyTorch, permettant l'accès au code et aux différents emplacements de stockage de blob qui sont utilisés. Ils soulignent comment la documentation de PyTorch répertorie tous les ensembles de données disponibles accessibles, les ensembles de données n'étant qu'un wrapper autour de différents ensembles de données open source. L'orateur souligne les implications juridiques de l'utilisation d'ensembles de données open source et ce qu'il est acceptable d'extraire de la source et ce qui ne devrait pas être hébergé. La vidéo traite également des ensembles de données et des chargeurs de données, des données de test pour la validation et de la création d'ensembles de données personnalisés. Enfin, ils abordent brièvement les transformations et leur importance dans la manipulation des données pour les transformer en tenseurs et les traiter via l'algorithme.

  • 00:45:00 Dans cette section, l'orateur parle des outils qu'il utilise pour gérer les packages et les environnements Python. Il met en avant Anaconda, un outil qu'il adore et qu'il a ajouté à son terminal Windows où il peut rapidement activer et utiliser différents packages préconfigurés pour différentes bibliothèques d'apprentissage automatique. Il poursuit en montrant comment il utilise Jupyter Notebooks dans VS Code, qui offre plus d'outils, Intellisense et la possibilité d'utiliser un ordinateur cloud pour exécuter des modèles qui nécessitent un GPU plus grand. Enfin, il précise que pour ceux qui préfèrent l'environnement .NET, l'expérience Jupiter Notebook est directement installable, grâce à l'exécution d'Anaconda.

  • 00:50:00 Dans cette section, l'orateur discute de l'expérience Jupyter Notebook avec PyTorch dans Azure Machine Learning Studio, où les utilisateurs peuvent installer tous les packages nécessaires et utiliser l'outil qu'ils préfèrent. L'orateur couvre brièvement le guide de démarrage rapide pour PyTorch, qui est disponible sur Azure Machine Learning Studio et le site Web de PyTorch, puis déplace la discussion vers ONNX. Sans trop approfondir, le conférencier donne un bref aperçu de l'architecture du modèle, de la fonction de perte et de l'optimiseur nécessaires pour former un modèle. Le conférencier mentionne également rapidement Copilot et sa capacité à rédiger des commentaires pour les utilisateurs.

  • 00:55:00 Dans cette section, le conférencier explique comment former et exporter un modèle d'apprentissage en profondeur PyTorch à l'aide d'ONNX. Pour former le modèle, les utilisateurs doivent définir le nombre d'époques et les données de validation, en s'assurant qu'elles sont différentes des données de test pour éviter le surajustement. L'orateur affiche un graphique de la perte du modèle à chaque époque au fur et à mesure qu'il parcourt chaque lot, et une fois la formation terminée, le modèle peut être exporté au format ONNX à l'aide d'une fonction qui envoie un tenseur à l'appareil. Le modèle exporté peut être utilisé pour exécuter l'inférence à l'aide de l'environnement d'exécution ONNX avec des tenseurs d'entrée et des optimisations de graphique optimisées pour de meilleures performances. Le conférencier présente également une prise en charge Xamarin qui sera bientôt publiée pour le runtime ONNX.

  • 01:00:00 Dans cette section, les conférenciers discutent de l'utilisation de SkiaSharp pour le traitement d'image dans Xamarin et de la manière dont le runtime ONNX est utilisé pour traiter les données. Ils mentionnent les limites de l'utilisation de modèles sur appareil en raison de leur taille, mais notent les avantages d'avoir des modèles sur appareil. Les intervenants abordent également brièvement l'architecture de Xamarin et la manière dont il crée des échafaudages. La discussion se termine par une mention de vouloir plus de collaboration entre les développeurs C # et le monde de l'IA et comment toute personne ayant des questions sur l'apprentissage automatique ou l'apprentissage en profondeur peut contacter Cassidy Williams sur Twitter ou le pseudo Twitter de l'environnement d'exécution ONNX pour obtenir des réponses.

  • 01:05:00 Dans cette section, les présentateurs discutent des ressources pour ceux qui souhaitent apprendre la théorie de l'apprentissage automatique. Ils suggèrent de suivre un cours de cours, comme celui enseigné par Andrew Ng, qui plonge dans les coulisses des modèles d'apprentissage en profondeur. Ils mettent en garde qu'il existe deux façons d'aborder l'apprentissage automatique : la méthode appliquée et la méthode théorique. D'autres ressources incluent un cours d'apprentissage automatique appliqué sur coursera, qui donne des informations de haut niveau sur l'utilisation d'outils et de bibliothèques pour créer des modèles d'apprentissage automatique, et le parcours d'apprentissage PyTorch, qui est plus approfondi et couvre une partie des mathématiques. De plus, les présentateurs mentionnent un hackathon pour ML.Net qui aura lieu dans les prochaines semaines.

  • 01:10:00 Dans cette section, l'orateur discute de l'importance d'avoir un objectif lors de l'apprentissage de l'apprentissage automatique et de l'apprentissage en profondeur. Il existe de nombreuses ressources gratuites disponibles en ligne, mais il peut être difficile de décider par où commencer. L'orateur suggère de fixer un objectif, tel que la formation d'un modèle de vision par ordinateur, et de trouver des ressources qui correspondent à cet objectif. Il peut également être utile d'intégrer l'apprentissage dans son travail, par exemple en utilisant des hackathons ou des sprints de projet pour essayer de nouvelles choses. L'orateur mentionne également qu'il est important de continuer à pousser à travers les parties difficiles et de ne pas abandonner tant que l'objectif n'est pas atteint. Enfin, l'orateur fait allusion au contenu à venir qui pourrait intéresser le public.