Apprendre ONNX pour le trading - page 7

 

Déployer des modèles ML avec Azure Functions et ONNX Runtime



Déployer des modèles ML avec Azure Functions et ONNX Runtime

La vidéo montre comment déployer un modèle d'apprentissage automatique à l'aide d'ONNX Runtime et d'Azure Functions dans VS Code. Le processus comprend la création d'un projet Azure Function, la mise à jour du code avec le script de score, le chargement du modèle à partir du chemin du modèle, la création d'une session d'inférence avec ONNX Runtime et le renvoi de la sortie. La vidéo montre également comment déployer la fonction sur Azure et la tester là-bas. Cette méthode permet un déploiement efficace des modèles via Azure Functions et le runtime ONNX, permettant un accès facile aux résultats.

  • 00:00:00 Dans cette section, la vidéo montre comment déployer un modèle d'apprentissage automatique à l'aide d'ONNX Runtime et d'Azure Functions dans VS Code. Le processus implique la création d'un projet Azure Function avec Python et un déclencheur HTTP, la mise à jour du code avec le script de score, le redimensionnement et le remodelage de l'image et son prétraitement, le chargement du modèle à partir du chemin du modèle, la création d'une session d'inférence avec ONNX Runtime, et renvoyant la sortie. Après avoir vérifié la fonctionnalité du code, la vidéo montre comment déployer la fonction sur Azure et la tester là-bas.

  • 00:05:00 Dans cette section, l'orateur montre comment tester la fonction déployée en obtenant l'URL de la fonction et en la collant sur le test. Le conférencier montre comment la fonction déployée peut être utilisée pour obtenir facilement un résultat via Azure Functions et le runtime ONNX, permettant un déploiement efficace des modèles.
 

Déployer des modèles ONNX sur Flink - Isaac Mckillen-Godfried



Déployer des modèles ONNX sur Flink - Isaac Mckillen-Godfried

Isaac McKillen-Godfried discute des défis liés à l'intégration de modèles d'apprentissage automatique de pointe issus d'environnements de recherche dans la production pour une utilisation efficace. L'objectif de la conférence est de faciliter le passage des modèles des environnements de recherche à la production et de permettre l'incorporation de modèles de pointe dans différentes plateformes. Il explique les avantages du format ONNX et les différentes options d'intégration de modèles d'apprentissage profond en Java. De plus, il discute du déploiement de modèles ONNX sur Flink à l'aide de Jep, un interpréteur Python écrit en Java, et explique un projet open source qui permet de consommer des données à partir du connecteur Flink Twitter, puis de filtrer les tweets non anglais. La conférence met également en évidence la mise en œuvre actuelle du déploiement de modèles ONNX sur Flink uniquement par CPU et le potentiel de futures implémentations GPU ou hybrides.

  • 00:00:00 Dans cette section de la vidéo, l'orateur discute des défis liés à l'intégration de modèles d'apprentissage automatique de pointe issus d'environnements de recherche dans la production pour une utilisation efficace. Il mentionne que la plupart des frameworks populaires sont écrits en Java et Scala, tandis que la majorité du code et des articles sont écrits en Python. L'objectif de la conférence est de faciliter le passage des modèles des environnements de recherche à la production et de permettre l'incorporation de modèles de pointe dans différentes plateformes. L'orateur parle également des défis, y compris le faible support Python dans Flink et la difficulté d'intégrer ONNX dans Java. Il mentionne également la popularité de PyTorch dans la communauté de la recherche et sa mise en œuvre croissante dans les cadres d'apprentissage automatique.

  • 00:05:00 Dans cette section, le conférencier discute du format ONNX et de ses avantages. ONNX est un format d'échange de réseau neuronal ouvert qui permet d'exporter et d'importer facilement des modèles à partir de divers frameworks. L'objectif d'ONNX est de permettre l'exécution de modèles dans différents langages et frameworks, ce qui en fait un outil précieux pour les développeurs. De plus, le conférencier parle des divers cadres et outils ONNX disponibles pour exporter et importer des modèles. Ils introduisent également un tableau de bord qui mesure le support des opérations dans ONNX, TensorFlow et Caffe2 ayant un support considérable. L'orateur aborde ensuite les différentes options d'intégration de modèles d'apprentissage en profondeur dans Java, notamment la création d'un microservice, Java Embedded Python et l'exécution de frameworks ONNX back-end basés sur JVM.

  • 00:10:00 Dans cette section, les limites de l'utilisation de Java avec les modèles ONNX sont abordées, y compris la prise en charge limitée des opérations de réseau neuronal dans des frameworks tels que Meno et Vespa. Le processus d'exportation peut également être difficile et prendre du temps et il peut être nécessaire de recycler entièrement les modèles. Une solution consiste à utiliser async et des microservices, mais cette approche nécessite une mise à l'échelle et la maintenance d'un service distinct. Une autre approche discutée consiste à utiliser Java Embedded Python (JEP), qui permet l'utilisation de n'importe quelle bibliothèque Python et s'est avéré fonctionner rapidement avec des frameworks tels que Keras. Cependant, il peut y avoir des problèmes avec les bibliothèques partagées qui doivent être résolus.

  • 00:15:00 Dans cette section de la vidéo, l'orateur discute du déploiement de modèles ONNX sur Flink et des problèmes de configuration potentiels qui peuvent survenir. Bien qu'il soit possible de transférer des primitives Java dans Python et vice versa, il peut y avoir des problèmes avec la configuration des dépendances. L'orateur recommande de créer une image Docker personnalisée qui inclut à la fois les packages Flink et Python pour faciliter la configuration. L'orateur présente également Flair, un framework PyTorch pour les tâches NLP, et explique comment l'intégrer dans Flink à l'aide de JEP. L'exemple de code utilise une fonction de carte riche pour renvoyer les résultats de Flair sous forme de chaîne.

  • 00:20:00 Dans cette section, l'intervenant parle du déploiement de modèles ONNX sur Flink à l'aide de Jep, un interpréteur Python écrit en Java. L'orateur montre un exemple d'analyse des sentiments sur les données Twitter avec le connecteur Flink Twitter et explique l'importance de charger le modèle dans la partie ouverte de la fonction pour l'empêcher de recharger à chaque itération. Ils montrent également comment définir des variables en Python à l'aide de Jep et comment renvoyer le résultat à Java sous forme de chaîne. L'orateur souligne l'utilisation d'un interpréteur partagé dans Jep pour éviter les erreurs lors de l'utilisation des modules Python, et suggère de convertir le résultat en JSON pour un traitement plus facile en Java.

  • 00:25:00 Dans cette section, Isaac McKillen-Godfried parle d'un projet open source qui permet de consommer des données à partir du connecteur Flink Twitter, puis de filtrer les tweets non anglais. Les données seraient ensuite traitées via des modèles de reconnaissance d'entités nommées multitâches, qui peuvent gérer plusieurs langues, et des modèles de langue spécifiques. La reconnaissance des entités nommées et l'analyse des sentiments auraient lieu avant d'être converties en tables et d'utiliser des requêtes pour les regrouper par leur entité et leur sentiment. En incorporant l'apprentissage en profondeur et d'autres modèles dans Flink, une vue en temps réel des entités nommées et de leur sentiment sur le texte Twitter peut être vue. Bien que les backends onnx manquent de maturité, cela permet de gagner du temps en ayant à convertir du code et à réécrire, et l'exécution du modèle sur un cluster est rapide. McKillen-Godfried prévoit de faire des benchmarks pour mesurer l'augmentation de la latence dans un avenir proche.

  • 00:30:00 Dans cette section, Isaac Mckillen-Godfried discute de la mise en œuvre actuelle du déploiement de modèles ONNX sur Flink, uniquement CPU, et du potentiel de futures implémentations GPU ou hybrides qui pourraient encore accélérer le processus. Il note qu'il n'a testé le modèle que sur des processeurs et qu'il n'a pas encore exploré les possibilités d'augmenter l'efficacité grâce à l'utilisation du GPU.
 

Déployez des modèles de transformateurs dans le navigateur avec #ONNXRuntime



Déployez des modèles de transformateurs dans le navigateur avec #ONNXRuntime

La vidéo montre comment affiner et déployer un modèle BERT optimisé sur un navigateur à l'aide d'ONNXRuntime. Le présentateur montre comment convertir le modèle PyTorch au format ONNX à l'aide de l'API Transformers, utiliser ONNXRuntime pour quantifier le modèle pour la réduction de taille et créer une session d'inférence. La vidéo couvre également les étapes nécessaires pour importer des packages dans JavaScript à l'aide de WebAssembly et comment exécuter des entrées de texte via le modèle transformé pour la classification des émotions. Malgré une réduction de la précision des prédictions, la taille réduite du modèle est idéale pour un déploiement sur un navigateur. Des liens vers le modèle, les ensembles de données, le code source et un article de blog sont fournis.

  • 00:00:00 Dans cette section, le présentateur vidéo montre comment opérationnaliser les modèles de transformateur et montre le projet final qui inclut un modèle de transformateur qui a été optimisé et déployé sur un navigateur. Le modèle utilisé dans le projet est un modèle bert optimisé qui a été distillé par Microsoft pour réduire sa taille et rendre les tests agnostiques. L'ensemble de données sur les émotions utilisé pour affiner le modèle est disponible sur le hub du visage étreignant. Le présentateur parcourt le processus de réglage fin à l'aide de l'API des transformateurs et montre comment convertir le modèle PyTorch au format ONNX à l'aide de l'outil de conversion intégré des transformateurs. Enfin, le package Web ONNX Runtime est utilisé pour l'inférence en JavaScript, où différents ensembles d'opérations peuvent être choisis en fonction des opérateurs requis.

  • 00:05:00 Dans cette section, la vidéo explique comment déployer des modèles de transformateur dans le navigateur avec ONNXRuntime. Tout d'abord, la vidéo explique comment utiliser ONNXRuntime pour quantifier le modèle afin de réduire sa taille, après quoi une session d'inférence est créée pour les modèles non quantifiés et quantifiés. La vidéo montre ensuite comment importer les packages nécessaires dans JavaScript à l'aide de WebAssembly et comment coder les entrées de texte avant de les exécuter via le modèle ONNXRuntime. La démo montre comment le modèle transformé peut être utilisé pour prédire différentes émotions en fonction d'un texte d'entrée. Malgré une baisse de la précision des prédictions, la vidéo conclut que la taille réduite du modèle le rend idéal pour un déploiement sur le Web.

  • 00:10:00 Dans cette section, le présentateur explique comment il a pu prendre un grand modèle de transformateur, le distiller et le quantifier, et utiliser ONNX Runtime pour effectuer une inférence sur le bord. Ils fournissent également des liens vers le modèle et les ensembles de données utilisés ainsi que le code source et un article de blog sur la démo.
 

Déploiement du modèle Tiny YOLOv2 ONNX sur Jetson Nano à l'aide de DeepStream



Déploiement du modèle Tiny YOLOv2 ONNX sur Jetson Nano à l'aide de DeepStream

Cette vidéo montre l'efficacité de l'utilisation d'un modèle Tiny YOLOv2 pré-formé au format ONNX pour traiter simultanément quatre flux vidéo.
Les flux proviennent de quatre fichiers distincts et sont traités sur Jetson Nano à l'aide du SDK DeepStream. Le système a atteint un FPS d'environ 6,7 tout en traitant les quatre vidéos en parallèle.

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

GitHub - thatbrguy/Deep-Stream-ONNX: How to deploy ONNX models using DeepStream on Jetson Nano
GitHub - thatbrguy/Deep-Stream-ONNX: How to deploy ONNX models using DeepStream on Jetson Nano
  • thatbrguy
  • github.com
How to deploy ONNX models using DeepStream on Jetson Nano. [Blog] [Performance] This repository provides complementary material to this blog post about deploying an ONNX object detection model using the DeepStream SDK on Jetson Nano. Various experiments were designed to test the features and performance of DeepStream. NOTE (May 2021) : There...
 

Le moteur d'inférence ONNX Runtime est capable d'exécuter des modèles d'apprentissage automatique dans différents environnements



Exécution ONNX

ONNX Runtime est un moteur d'inférence open source optimisé pour les performances, l'évolutivité et l'extensibilité, capable d'exécuter de nouveaux opérateurs avant qu'ils ne soient standardisés. Le format ONNX permet une représentation et un déploiement faciles des modèles développés sur les outils préférés de manière commune. Microsoft s'est associé à Xilinx pour créer le fournisseur d'exécution de la bibliothèque logicielle Vitis AI, qui permet l'inférence et l'accélération de l'IA sur les plates-formes matérielles Xilinx. La boîte à outils Vitis AI se compose d'outils IP, de bibliothèques, de modèles et d'exemples de conceptions pour les développeurs FPGA, avec des chiffres de référence montrant une accélération maximale pour les solutions d'imagerie géospatiale. Le fournisseur d'exécution Vitis AI peut être construit à partir de la source ou déployé via une bibliothèque de logiciels pré-construite qui sera bientôt publiée sur Azure Marketplace.

  • 00:00:00 Dans cette section, Manash Goswami, responsable de programme principal pour les cadres d'IA chez Microsoft, présente le runtime ONNX, qui est un moteur d'inférence open source utilisé pour exécuter des modèles ONNX. Le format ONNX permet aux équipes de science des données d'utiliser leurs outils préférés pour le développement de modèles tout en garantissant que le modèle peut être représenté et déployé de manière commune et facilement exécutable. Le runtime ONNX est optimisé pour les performances, l'extensibilité et l'évolutivité, et il prend en charge les opérateurs personnalisés, ce qui le rend capable d'exécuter de nouveaux opérateurs avant qu'ils ne soient standardisés. Le runtime est compatible en amont et en aval, et son interface de fournisseur d'exécution permet l'exécution du modèle ML sur différentes plates-formes matérielles. Microsoft s'est associé à Xilinx pour créer le fournisseur d'exécution de la bibliothèque logicielle Vitis AI, qui exécute les modèles ONNX sur la plate-forme FPGA Xilinx U250.

  • 00:05:00 Dans cette section, nous découvrons la bibliothèque logicielle Vitis AI, la plate-forme de développement Xilinx spécialisée pour l'inférence IA sur les plates-formes matérielles Xilinx. Le FPGA U250 peut être utilisé avec la pile logicielle Vitis AI en préversion privée dans Azure, en tant que file d'attente de machines virtuelles NP pour les utilisateurs. La boîte à outils Vitis AI se compose d'outils IP optimisés, de bibliothèques, de modèles et d'exemples de conceptions que les développeurs peuvent utiliser avec les FPGA, leur permettant de combiner l'inférence et l'accélération de l'IA. Peakspeed, une startup qui fournit des solutions analytiques géospatiales, intègre ONNX Runtime et la pile Vitis AI avec l'application ArcGIS Pro d'Esri pour créer les solutions d'imagerie géospatiale les plus rapides au monde. Peakspeed a réussi à accélérer le processus de correction ou d'orthorectification géospatiale sur les processeurs, en enregistrant des chiffres de référence comparant TrueView exécuté sur un FPGA Azure NP hébergeant Xilinx U250 avec le même algorithme exécuté sur un processeur Xeon Platinum.

  • 00:10:00 Dans cette section, Manash explique comment les développeurs et les clients peuvent infuser leurs applications avec un apprentissage en profondeur à l'aide d'ONNX Runtime et de la pile Vitis AI pour accélérer sur les points de terminaison FPGA dans Azure, ainsi que sur site avec le matériel Xilinx U250. Il souligne également que les développeurs peuvent créer le fournisseur d'exécution Vitis AI avec ONNX Runtime à partir de la source, et Xilinx publiera bientôt une image de machine virtuelle sur Azure Marketplace avec toutes les bibliothèques de logiciels prédéfinies intégrées en un seul endroit pour un déploiement facile dans la machine virtuelle Azure NP.
 

Open Neural Network Exchange (ONNX) dans l'entreprise : comment Microsoft fait évoluer l'apprentissage automatique



Open Neural Network Exchange (ONNX) dans l'entreprise : comment Microsoft fait évoluer le ML - BRK3012

L'Open Neural Network Exchange (ONNX) est présenté comme une solution aux défis du déploiement de modèles d'apprentissage automatique en production, y compris la gestion de plusieurs cadres de formation et cibles de déploiement, Microsoft adoptant déjà largement ONNX pour des produits tels que Bing, Bing ads et Office 365 ONNX permet l'évolutivité et la maintenance des modèles d'apprentissage automatique, ainsi que des améliorations significatives des performances et des économies de coûts attribuées à l'utilisation d'accélérateurs matériels tels que les GPU. De plus, l'écosystème ONNX comprend des partenaires tels qu'Intel pour l'optimisation de l'exécution, avec des kits de développement et des techniques de quantification facilement disponibles pour convertir les modèles FP32 en types de données de précision inférieure, ce qui se traduit par une efficacité accrue. Les conférenciers soulignent également les avantages de l'utilisation d'ONNX pour l'informatique de pointe, car le temps d'exécution est flexible et peut déployer des modèles sur différentes plates-formes matérielles.

  • 00:00:00 Dans cette section, les présentateurs discutent de l'ampleur des initiatives d'apprentissage automatique de Microsoft, y compris plus de 180 millions d'utilisateurs actifs mensuels dans Office 365 et de la technologie d'apprentissage automatique déployée sur des centaines de millions d'appareils Windows. Ils mentionnent également que Microsoft utilise plus de six cadres d'apprentissage automatique et que le déploiement de modèles d'apprentissage automatique en production présente des difficultés. Ils présentent ONNX et ONNX Runtime comme des solutions à ces défis, qui peuvent être utilisées avec des accélérateurs matériels tels qu'Intel et NVIDIA et sur Azure Machine Learning.

  • 00:05:00 Dans cette section de la vidéo, l'orateur discute des défis qui surviennent lors de la formation de modèles d'apprentissage automatique et de leur déploiement en production. Avec autant de cadres de formation et d'objectifs de déploiement différents, il devient difficile de gérer et de maintenir des performances applicatives efficaces. Pour résoudre ce problème, Microsoft présente ONNX (Open Neural Network Exchange), une norme industrielle qui permet la conversion de modèles d'apprentissage automatique au format ONNX, quel que soit le cadre utilisé pour la formation. Cela permet le déploiement de modèles ONNX sur n'importe quel cadre pris en charge, ce qui en fait une solution plus flexible et évolutive. De plus, Microsoft construit un solide écosystème de partenaires pour prendre en charge ONNX et assurer son succès en tant que norme de l'industrie.

  • 00:10:00 Dans cette section, l'orateur discute de cas d'utilisation réels en production d'Open Neural Network Exchange (ONNX) et de l'environnement d'exécution ONNX pour montrer comment ils apportent une valeur commerciale aux produits et aux clients de Microsoft. Certains produits de Microsoft, tels que Bing, Bing ads et Office 365, ont déjà largement adopté ONNX et l'environnement d'exécution ONNX, et ont constaté des améliorations significatives des performances du modèle et une latence réduite. Par exemple, avec ONNX et l'environnement d'exécution ONNX, la fonction de vérification grammaticale d'Office 365 a connu une amélioration de 14,6 fois des performances, ce qui a entraîné une réduction des coûts et de la latence. Un autre cas d'utilisation, l'OCR, a également considérablement bénéficié de l'environnement d'exécution ONNX et ONNX.

  • 00:15:00 Dans cette section, le conférencier explique comment Microsoft utilise Open Neural Network Exchange (ONNX) pour faire évoluer l'apprentissage automatique dans divers scénarios, y compris l'amélioration de la qualité et des performances de son service communautaire Azure Cognitive Services OCR, ainsi que l'amélioration leur qualité de recherche et permettant de nouveaux scénarios comme les questions et réponses avec des assistants personnels. L'orateur mentionne également comment ONNX et ONNX Runtime ont amélioré la vitesse des modèles d'apprentissage automatique de 3,5 fois et 2,8 fois, respectivement, apportant une grande valeur à leurs équipes de produits. Ils soulignent également l'importance de former des modèles d'apprentissage automatique pour vraiment comprendre la signification sémantique des images afin d'améliorer la recherche multimédia.

  • 00:20:00 Dans cette section, les conférenciers discutent de l'utilisation des modèles Open Neural Network Exchange (ONNX) dans les produits Microsoft, en particulier la fonction de recherche visuelle Bing. ONNX permet la mise à l'échelle et la maintenance des modèles d'apprentissage automatique, ainsi que des améliorations significatives des performances et des économies de coûts, grâce à l'utilisation d'accélérateurs matériels tels que les GPU. Les conférenciers soulignent également la polyvalence d'ONNX, qui peut fonctionner sur diverses plates-formes, y compris les architectures x64 et ARM, et est un moteur d'inférence open source pour les modèles ONNX, disponible sur Windows, Mac et Linux. L'utilisation d'ONNX permet d'optimiser l'exécution sur un matériel cible spécifique sans modifier l'interface du modèle, ce qui en fait un outil précieux pour la mise à l'échelle et la maintenance des déploiements de production.

  • 00:25:00 Dans cette section, l'orateur discute de l'interface du fournisseur d'exécution utilisée pour exécuter les modèles ONNX sur différentes plates-formes matérielles, notamment les processeurs, les GPU et les FPGA. L'écosystème de partenaires comprend Intel, avec qui Microsoft a collaboré à l'optimisation de l'exécution à l'aide de fournisseurs d'exécution ouverts basés sur VINO. Ils proposent également des kits de développement facilement disponibles, y compris la clé de calcul neuronal, pour accélérer les charges de travail d'IA pour divers secteurs verticaux tels que la fabrication, la vente au détail et le transport. Microsoft et Intel ont également collaboré sur la quantification pour convertir les modèles FP32 en un type de données de précision inférieure, ce qui réduit la bande passante mémoire, réduit l'empreinte mémoire du modèle et augmente le nombre de quatre tops par watt avec une perte de précision minimale.

  • 00:30:00 Dans cette section, l'orateur explique comment ils ont pu utiliser les instructions de traitement vectoriel et la fusion de graphes pour améliorer les performances et les besoins en mémoire des noyaux de gemmes entières pour les réseaux de neurones convolutifs. Ils ont pu obtenir 4 fois plus de ressources de calcul et 4 fois moins de mémoire requise. Ils ont présenté les avantages de l'utilisation de n-graph en tant que fournisseur d'exécution ainsi que leur capacité de traitement matériel en montrant l'évolution des performances pour différentes tailles de lots. La perte de précision était très faible et répondait aux avantages motivationnels de la quantification. Ils ont également discuté des différentes manières de générer des modèles ONNX, telles que l'utilisation du zoo modèle ONNX, Azure Machine Learning Experimentation et les services de vision personnalisés de Microsoft.

  • 00:35:00 Dans cette section, l'orateur explique comment exécuter des sessions d'inférence à l'aide du runtime ONNX dans une application. Après avoir converti le modèle, l'utilisateur le charge dans le runtime ONNX et commence à analyser le graphique. Le runtime identifie les optimisations disponibles et interroge le matériel sous-jacent pour identifier le type d'opérations prises en charge par les bibliothèques matérielles. Le runtime ONNX est conçu pour être cohérent, de sorte que les extraits de code pour Python et C-sharp sont très similaires. L'orateur mentionne également AutoML, qui permet à l'utilisateur d'entrer des données pour recevoir une proposition d'application qui convertit automatiquement le code en Python et C-sharp. De plus, l'orateur décrit une image docker qui inclut des convertisseurs pour différents frameworks et permet à l'utilisateur de démarrer rapidement avec le runtime ONNX. Le flux de travail est illustré par l'utilisation d'Azure Notebooks.

  • 00:40:00 Dans cette section, le conférencier explique comment utiliser l'Open Neural Network Exchange (ONNX) et les outils d'apprentissage automatique de Microsoft pour mettre à l'échelle des modèles dans l'entreprise. Le processus implique l'utilisation d'un espace de travail ML pour créer un fichier de notation qui comprend à la fois des étapes de prétraitement et d'inférence. L'orateur montre ensuite comment créer des images de conteneur pour l'ordinateur et l'environnement cibles, y compris des images de base telles qu'une image de base d'exécution ONNX. Enfin, les images sont déployées sur un service cloud IKS avec la possibilité d'envoyer des images de test pour l'inférence sur les points de terminaison CPU et GPU.

  • 00:45:00 Dans cette section, l'orateur démontre la flexibilité de l'environnement d'exécution Open Neural Network Exchange (ONNX) en montrant une démo où le même code est utilisé pour pointer une application vers différentes plates-formes matérielles, telles que les processeurs par rapport aux GPU et x86 contre ARM. L'orateur présente également une démonstration du déploiement de l'environnement d'exécution et des modèles ONNX sur les périphériques de périphérie, en particulier sur le carré Intel, pour détecter des scénarios de sécurité dans un scénario d'ouvrier d'usine à l'aide d'un flux vidéo préenregistré et d'un post-traitement des cadres de délimitation. Le code utilisé dans la démo est identique, mais différents accélérateurs matériels sont utilisés pour optimiser l'application. L'orateur résume qu'ONNX devient le format commun pour représenter les modèles de réseaux de neurones et que le runtime ONNX permet le déploiement à la fois dans le cloud et sur les appareils de périphérie.

  • 00:50:00 Dans cette section, les présentateurs discutent des avantages de l'utilisation d'Open Neural Network Exchange (ONNX) pour créer et déployer des applications d'apprentissage automatique avec Azure. Ils répondent également aux questions du public sur l'apprentissage automatique sur différents processeurs, l'utilisation d'ONNX avec des pipelines existants et la possibilité de revenir d'ONNX aux frameworks précédents. De plus, ils mentionnent leurs projets d'expansion du zoo modèle ONNX avec des scénarios et des données ciblés.

  • 00:55:00 Dans cette section, les conférenciers discutent des avantages d'ONNX en termes de flexibilité du cadre, car les modèles ONNX peuvent être utilisés avec une variété de cadres pour servir. Ils mentionnent également l'intégration d'ONNX avec Azure Machine Learning, qui permet aux utilisateurs de télécharger la télémétrie d'inférence pour se recycler ou expérimenter. La session aborde également la possibilité d'une intégration native d'ONNX avec Excel, bien que celle-ci soit encore en développement. Ils abordent également la question de la création d'algorithmes personnalisés et de leur conversion en ONNX, avec la possibilité d'utiliser Python pour manipuler le format de fichier ONNX. Enfin, la session mentionne la nécessité d'une approche de signature des modèles ONNX pour la distribution, qui sera considérée comme un retour d'expérience pour les améliorations futures.
 

#OpenVINO Execution Provider For #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68



#OpenVINO Execution Provider For #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68

Le fournisseur d'exécution OpenVINO pour ONNX Runtime a été le principal sujet de discussion de ce webinaire hebdomadaire OpenCV. Le produit vise à accélérer les performances des modèles ONNX sur le matériel Intel tout en nécessitant un minimum d'effort de la part de l'utilisateur. Le webinaire a abordé les défis du déploiement de modèles d'apprentissage en profondeur dans le monde réel, avec OpenVINO présenté comme la solution à ces défis. OpenVINO peut optimiser les modèles d'IA pour des performances efficaces sur divers appareils et matériels. Le runtime ONNX, un projet open source conçu pour accélérer l'inférence d'apprentissage automatique, a été longuement discuté. Le webinaire a également présenté une démonstration de l'amélioration des performances obtenue avec le fournisseur d'exécution OpenVINO pour ONNX Runtime, ainsi que ses fonctionnalités telles que l'inférence multithread, la prise en charge complète de divers plugins et la mise en cache de modèles. L'intégration entre OpenVINO et PyTorch via le fournisseur d'exécution OpenVINO a également été discutée. Les présentateurs ont répondu aux questions du public sur des sujets tels que la compatibilité avec les appareils ARM et la perte potentielle de performances ou de précision lors de l'utilisation des formats d'échange ONNX.

  • 00:00:00 Dans cette section, les hôtes présentent leurs invités, Devon Agarwal et Prita Veeramalai, qui sont respectivement chef de produit technique et ingénieur du framework AI chez OpenVINO. Ils fournissent une brève introduction à l'émission et discutent de certains cadeaux à venir pour les téléspectateurs. Le principal sujet de discussion tourne autour du fournisseur d'exécution OpenVINO pour le runtime ONNX, qui vise à accélérer les performances des modèles ONNX sur le matériel Intel avec un minimum d'effort requis de la part de l'utilisateur. Les hôtes décrivent également l'ordre du jour de la session, qui comprend un aperçu de l'apprentissage en profondeur et de ses défis, suivi d'une introduction à OpenVINO et à ses capacités.

  • 00:05:00 Dans cette section de la vidéo, l'orateur présente le fournisseur d'exécution OpenVINO pour ONNX Runtime et explique son objectif. Ils donnent également un aperçu d'OpenVINO, ONNX et ONNX Runtime, suivi d'un guide sur la façon de démarrer avec le fournisseur d'exécution OpenVINO pour ONNX Runtime et de l'intégrer dans les applications ONNX. L'orateur discute également de l'ensemble des fonctionnalités du produit et des plans futurs, y compris un aperçu d'un produit en avant-première bêta pour les développeurs. La conversation passe ensuite à l'importance de l'apprentissage en profondeur dans le monde d'aujourd'hui, au besoin d'IA sur les appareils de pointe et aux demandes informatiques pour l'IA. La vidéo couvre également les défis associés au développement et au déploiement de modèles d'apprentissage en profondeur, y compris les besoins d'inférence uniques, les défis d'intégration et l'absence d'une solution unique.

  • 00:10:00 Dans cette section, les défis du déploiement de modèles d'apprentissage en profondeur dans le monde réel sont abordés. Il existe des défis techniques résultant de la déconnexion entre la formation en réseau d'apprentissage en profondeur et l'inférence qui se produit sur les plates-formes embarquées. Il existe également des variantes de langage de programmation et de matériel, qui nécessitent une API dédiée pour la communication logicielle et matérielle. La boîte à outils OpenVINO d'Intel est présentée comme une solution à ces défis. La boîte à outils rationalise le flux de travail de développement et permet aux développeurs d'écrire une application une seule fois et de la déployer sur l'architecture Intel, offrant une approche d'écriture unique et de déploiement n'importe où. La boîte à outils est capable de déployer des applications ciblant CPU, iGPU, Movidius VPU et GNA. Il peut être utile dans divers secteurs, notamment l'industrie, la santé et les sciences de la vie, la vente au détail, la sûreté et la sécurité, offrant des résultats plus rapides, plus précis et plus efficaces pour un déploiement dans le monde réel.

  • 00:15:00 Dans cette section, l'orateur explique le concept d'OpenVino et comment il optimise les modèles d'IA pour les appareils périphériques. Ils expliquent comment, une fois intégrés dans des frameworks comme PyTorch ou TensorFlow, les modèles d'IA doivent être optimisés pour des performances efficaces sur des appareils spécifiques tels que les CPU, les GPU ou les VPU. OpenVino automatise ce processus de conversion pour divers appareils et matériels, garantissant que les modèles seront optimisés pour des performances efficaces sur l'appareil sur lequel ils sont déployés. L'orateur explique ensuite ce qu'est ONNX, un format ouvert pour représenter des modèles d'apprentissage automatique, définissant un ensemble commun d'opérateurs comme éléments constitutifs des modèles d'apprentissage automatique et d'apprentissage en profondeur. Dans l'ensemble, ONNX permet aux développeurs d'IA d'utiliser une variété de frameworks, d'outils, d'environnements d'exécution et de compilateurs sans se soucier des implications d'inférence en aval.

  • 00:20:00 Dans cette section, les intervenants évoquent le format ONNX, un modèle intermédiaire ouvert qui permet de lire dans un format standardisé la conversion de modèles produits par différents outils. Le runtime ONNX est un projet open source conçu pour accélérer l'inférence d'apprentissage automatique sur divers systèmes d'exploitation et plates-formes matérielles. Il identifie automatiquement les opportunités d'optimisation et donne accès à la meilleure accélération matérielle disponible. Le fournisseur d'exécution OpenVINO pour ONNX permet à la puissance de la boîte à outils OpenVINO d'accélérer l'inférence des modèles ONNX sur les CPU, GPU et VPU Intel. Il permet aux utilisateurs d'exécuter l'inférence à l'aide des API d'exécution ONNX tout en intégrant facilement la boîte à outils OpenVINO en tant que backend.

  • 00:25:00 Dans cette section, l'intégration entre le runtime ONNX et le fournisseur d'exécution OpenVINO est abordée. Cette intégration permet une exécution efficace des modèles d'apprentissage en profondeur sur les appareils Intel. La boîte à outils OpenVINO fournit des bibliothèques optimisées pour exécuter des modèles sur des appareils Intel. Lorsque le fournisseur d'exécution OpenVINO est activé, il sélectionne intelligemment les opérateurs du modèle à exécuter sur le back-end OpenVINO pour une efficacité maximale. Les opérateurs restants sont exécutés à l'aide du framework d'exécution ONNX natif. L'utilisateur peut installer le fournisseur d'exécution OpenVINO en construisant à partir de la source, en extrayant l'image Docker ou en utilisant pip install. Le package OpenVINO d'exécution ONNX est disponible sur PyPI.

  • 00:30:00 Dans cette section du webinaire, les présentateurs expliquent comment utiliser le fournisseur d'exécution OpenVINO pour ONNX Runtime et démontrent ses capacités. Ils expliquent comment installer le produit à l'aide de pip et fournissent des extraits de code pour montrer comment importer la bibliothèque d'exécution ONNX et démarrer une session d'inférence. Ils montrent également à quel point il est facile d'utiliser le fournisseur d'exécution OpenVINO avec une simple modification d'une ligne de code existante. Les présentateurs invitent ensuite les téléspectateurs à scanner les codes QR pour accéder à des démos et des échantillons à essayer par eux-mêmes.

  • 00:35:00 Dans cette section, la vidéo présente une démonstration de l'amélioration des performances obtenue avec le fournisseur d'exécution OpenVINO (EP) pour ONNX Runtime. La vidéo montre une comparaison entre les 5 ips obtenus avec le fournisseur d'exécution CPU et les 8 ips obtenus avec l'OpenVINO EP. De plus, la vidéo présente une démonstration de quantification à l'aide d'OpenVINO EP pour ONNX Runtime, qui a entraîné un gain de performances 2x avec une perte de précision négligeable. Le bloc-notes de démonstration est disponible sur Intel DevCloud, qui fournit un accès à distance au matériel Intel réel pour l'analyse comparative et l'analyse.

  • 00:40:00 terminé la démonstration ? Dans cette section, le présentateur montre comment lancer le fournisseur d'exécution OpenVINO pour ONNX Runtime et sélectionner le matériel, tel que i3, i5, xénon ou Core i9, et la division graphique. Ils présentent également le bloc-notes Jupyter et l'échantillon de détection d'objet, qui prend une vidéo d'entrée et un modèle ONNX pour exécuter des interférences sur l'appareil. Le présentateur explique qu'il existe une prise en charge des supports CPU, GPU et FP16 VADM, et ils mentionnent également le fournisseur d'exécution CPU, qui est le backend d'exécution ONNX natif. Enfin, le présentateur discute de l'utilité du fournisseur d'exécution OpenVINO pour tester différents matériels sans acheter ou louer chaque appareil.

  • 00:45:00 Dans cette section, les fonctionnalités du fournisseur d'exécution OpenVINO sont abordées. Il offre une inférence multithread, une prise en charge complète de divers plugins et la mise en cache de modèles. La quantification de modèles et le partitionnement de graphes sont également disponibles, ainsi que des API pour plusieurs langues. Des optimisations de tampon d'E/S sont présentes pour améliorer les performances, et l'enregistrement de fichiers externes est disponible pour les modèles ONNX. Une question est posée au public pour gagner un prix, et un aperçu de l'intégration OpenVINO pour les modèles PyTorch est partagé.

  • 00:50:00 Dans cette section, ils discutent de l'intégration d'OpenVINO avec PyTorch via le fournisseur d'exécution OpenVINO. Ce produit peut accélérer les performances des modèles PyTorch sur le matériel Intel en utilisant seulement deux lignes de code supplémentaires. L'utilisateur peut envelopper son nn.module dans le module d'inférence torch orp/ort qui prépare le module pour l'inférence à l'aide du fournisseur d'exécution OpenVINO et exporte le module vers un graphique en mémoire via onnx.export. La session ONNXruntime partitionne ensuite le graphe en sous-graphes avec des opérateurs pris en charge et non pris en charge pour le partitionnement de sous-graphes, et les nœuds compatibles OpenVINO seront exécutés par le fournisseur et peuvent s'exécuter sur des CPU, GPU ou VPU Intel, tandis que tous les autres nœuds retomberont sur le fournisseur d'exécution CPU ML par défaut. Le processus d'installation est simple, avec la possibilité de construire à partir de la source, d'effectuer une simple installation pip et d'accéder à la gamme complète d'API Python.

  • 00:55:00 Dans cette section, les hôtes du webinaire hebdomadaire OpenCV lisent les questions du public sur des sujets tels que la compatibilité d'OpenVINO avec les appareils ARM et la perte potentielle de performances ou de précision lors de l'utilisation des formats d'échange ONNX. Les hôtes et les présentateurs expliquent qu'OpenVINO peut en effet fonctionner et donner un coup de pouce aux appareils à processeur ARM, et ONNX peut même améliorer les performances de la plupart des modèles. Cependant, il est toujours conseillé de tester la précision sur un jeu de test lors de la conversion d'un format à un autre. Les hôtes précisent également qu'ONNX prend en charge les modèles de forme dynamique, contrairement à une question du public. Enfin, les hôtes et les présentateurs remercient le public et Phil, l'organisateur, pour une excellente présentation et une session informative.
 

Importation de réseaux de neurones avec ONNX



Importation de réseaux de neurones avec ONNX

Cette vidéo explore l'importance du projet Open Neural Network Exchange (ONNX) dans l'apprentissage automatique et ses avantages dans la conversion de modèles à travers divers outils. Le conférencier discute des défis liés au chargement manuel des modèles ou à l'aide d'outils automatisés et comment ONNX élimine ce problème grâce à son modèle de calcul basé sur des graphes. Le conférencier souligne également les avantages d'ONNX dans la conversion manuelle de modèles complexes et sa compatibilité avec différents frameworks. La vidéo aborde les modèles de réseau paramétrés, la structure d'ONNX et les défis potentiels qui peuvent survenir lors de l'utilisation du projet. Malgré ces défis, le conférencier pense qu'ONNX prospérera grâce à son soutien substantiel de diverses entreprises.

  • 00:00:00 Dans cette section, le conférencier discute de l'importance d'ONNX dans l'apprentissage automatique et des difficultés rencontrées lors du chargement de modèles manuellement ou par des outils automatisés. L'orateur explique qu'avec l'introduction de PyTorch et TensorFlow, la plupart des modèles sont développés dans ces frameworks, ce qui rend difficile l'intégration de modèles externes dans d'autres frameworks. Le processus manuel de conversion des modèles prend du temps et est fastidieux car le processus implique de lier des poids à l'architecture, ce qui n'est pas une chose amusante à faire. L'orateur discute ensuite de la croissance du référentiel de réseaux neuronaux et de la manière dont ils ont ajouté plusieurs modèles au référentiel depuis la version 12. Ils présentent également le MobileNet, un réseau de classification d'images introduit en 2018, qui réduit la taille des réseaux de classification d'images et fonctionne plus rapide.

  • 00:05:00 La section se concentre sur l'importance des modèles de réseaux paramétrés et pourquoi ils sont nécessaires dans le référentiel de réseaux neuronaux. Sans paramétrage, le référentiel deviendrait trop long et difficile à naviguer. Il explique également comment choisir un modèle autre que celui par défaut et donne un exemple du modèle BPE, qui segmente les segments en mots ou sous-mots selon la langue. La section met également en évidence la nécessité d'ONNX dans la conversion manuelle, car la conversion manuelle de modèles complexes comme le célèbre modèle sorti le 14 février 2019, peut être difficile.

  • 00:10:00 Dans cette section, l'orateur décrit les détails de la fonction d'encodeur réseau utilisée dans le modèle GPD2. Cette fonction a tout le prétraitement dont le modèle a besoin et convertit une chaîne en une liste de jetons. De plus, il donne l'index de position et a un vecteur de taille 768, selon la taille du modèle utilisé. L'orateur explique qu'il n'était pas possible de créer manuellement l'architecture du réseau de couches 800-1000, et c'est pourquoi ils avaient besoin d'ONNX. L'avantage d'utiliser ONNX est qu'il élimine le besoin de maintenir un seul convertisseur pour chaque type, et il dispose d'un zoo de modèles que les utilisateurs peuvent exploiter pour importer efficacement différents modèles.

  • 00:15:00 Dans cette section, le YouTuber discute des avantages et des spécifications du projet Open Neural Network Exchange (ONNX). Le projet permet la conversion de modèles à partir d'outils de pointe, ce qui facilite le choix du meilleur outil pour la création de modèles. ONNX dispose d'une vaste liste de partenaires communautaires, y compris de grandes entreprises, ce qui facilite le déplacement des modèles entre différents outils. Le projet fournit des outils d'optimisation matérielle et des outils de visualisation, qui manquent dans de nombreux autres frameworks. Le YouTuber pense que puisque le projet bénéficie d'un soutien considérable de la part de diverses entreprises, il continuera à prospérer.

  • 00:20:00 Dans cette section, l'orateur discute de la structure d'ONNX, un modèle de calcul basé sur des graphes qui a des opérateurs implémentés à l'extérieur du graphe. Chaque nœud du graphe est référencé en tant qu'opérateur et possède une ou plusieurs entrées et sorties qui doivent être portables entre les frameworks. L'orateur donne un exemple du fonctionnement d'ONNX, démontrant avec une fonction interne qui prend le modèle au format de protocole et le convertit en une association mathématique. Le graphique contient les métadonnées liées au modèle. L'orateur explique ensuite comment le graphe a différents nœuds, et il passe du temps à discuter des propriétés d'une couche de convolution, qui est l'un des nœuds du graphe. Enfin, il montre comment obtenir des informations sur les dimensions de la couche.

  • 00:25:00 Dans cette section, le conférencier aborde certains des problèmes qui peuvent survenir lors de l'utilisation d'ONNX. Certaines erreurs peuvent se produire avec l'opérateur de remodelage lorsqu'il n'a pas de dimensions de badge, de sorte que la couverture de l'opérateur doit être améliorée pour prendre en charge ces types de cas. L'orateur mentionne qu'il reste du travail à faire pour ajouter la prise en charge des RNN et des hyperréseaux statiques, ainsi que pour connecter d'autres outils tels que l'inférence de version et de forme et les vérificateurs de modèles. De plus, l'amélioration de la couverture des opérateurs reste un travail en cours. Cependant, l'orateur souligne qu'ONNX est activement développé et bénéficie du soutien de grandes entreprises.
 

Importation et exportation de réseaux de neurones avec ONNX



Importation et exportation de réseaux de neurones avec ONNX

La vidéo montre l'utilisation d'ONNX en tant que spécification multiplateforme et format de fichier pour les modèles d'apprentissage automatique afin d'échanger des modèles entre différents cadres de réseaux neuronaux. Les conférenciers montrent comment importer et exporter des réseaux de neurones à l'aide d'ONNX via Mathematica et Keras, et comment inspecter et importer des métadonnées, ainsi que définir des métadonnées lors de l'exportation. Ils discutent également de l'exportation et de l'importation de modèles entre Core ML, PyTorch et Wolfram Language, et de l'importance d'utiliser le bon décalage lors de la conversion. Les conférenciers discutent de l'avenir d'ONNX, y compris l'extension de la prise en charge de l'importation et de l'exportation, l'amélioration des cas difficiles pour l'importateur et la possibilité d'exporter vers plusieurs versions d'ensembles d'opérateurs. De plus, le conférencier explique la différence entre ONNX et MXNet et fournit des informations sur la façon de vérifier quelles fonctions peuvent être exportées vers ONNX à l'aide d'utilitaires internes.

  • 00:00:00 Dans cette section, Matteo Salvarezza et Maria Sarksyan présentent ONNX, une spécification multiplateforme et un format de fichier pour les modèles d'apprentissage automatique qui permet à différents cadres de réseaux neuronaux d'échanger des modèles entre eux. Ils montrent comment importer et exporter des réseaux de neurones à l'aide d'ONNX via Mathematica et Keras, montrant comment inspecter et importer des métadonnées et comment définir des métadonnées lors de l'exportation. Ils présentent ensuite la conversion d'un modèle Fortnite de Mathematica vers Keras puis vers ONNX avant de le réimporter dans Mathematica.

  • 00:05:00 Dans cette section, l'orateur discute du modèle de segmentation qui segmente une image en matière blanche et en matière grise pour signifier différents tissus anatomiques du cerveau humain. L'architecture de ce modèle est constituée d'un codeur de type unité partagée et de décodeurs distincts. L'orateur décrit le processus d'exportation d'une image cérébrale dans un fichier JPEG, son importation dans Python, l'exécution du modèle pour évaluer l'image et l'exportation de l'image segmentée dans un fichier NS pour la réimporter dans Mathematica. Le processus implique l'utilisation de la bibliothèque OneNext et l'exécution d'un vérificateur supplémentaire, puis l'importation de l'exportation ONNX, la configuration d'une entrée pour le modèle Keras, la réalisation de la prédiction et l'exportation de l'image segmentée dans un fichier NS. Enfin, l'orateur note l'importance de s'assurer que la plage importée de l'image est de zéro à un et divisée par 255.

  • 00:10:00 Dans cette section de la vidéo, l'intervenant discute de l'importation et de l'exportation de réseaux de neurones à l'aide d'ONNX. Ils mentionnent la possibilité d'exporter des modèles de Keras vers ONNX, puis de les réimporter dans Mathematica. Le conférencier souligne l'importance d'utiliser le bon décalage dans le processus de conversion et note que certaines opérations peuvent devoir être remplacées par des opérateurs de chirurgie du filet. Ils montrent ensuite comment déplacer un modèle de Core ML vers ONNX à l'aide du package d'outils ONNX ML et comment exporter un modèle pré-entraîné et ses classes vers Core ML. La vidéo souligne que le processus comporte de nombreuses étapes et fournit des exemples que les utilisateurs peuvent évaluer par eux-mêmes.

  • 00:15:00 Dans cette section, l'orateur explique comment exporter d'ONNX vers Core ML, y compris la correction de la moyenne et de la variance, en utilisant les fonctions appropriées. Ils couvrent également la conversion d'un réseau de PyTorch en ONNX, puis en langage Wolfram complet. Le processus implique une intervention chirurgicale nécessaire pour rendre le format final utilisable, et l'orateur montre comment il a pu obtenir un format utilisable et l'évaluer. Enfin, l'orateur démontre l'étape finale du passage du langage Wolfram à PyTorch via ONNX en prenant le réseau et les classes pré-formés et en les exportant.

  • 00:20:00 Dans cette section de la vidéo, les intervenants discutent de l'importation et de l'exportation de réseaux de neurones avec ONNX. Ils expliquent qu'une fois le modèle ONNX chargé, il peut être converti et évalué dans PyTorch, et des transformations telles que le redimensionnement, le recadrage central et la normalisation sont utilisées. Le modèle est évalué pour obtenir les trois classes avec les probabilités les plus élevées. Les conférenciers discutent ensuite de l'avenir de l'importation et de l'exportation ONNX, y compris l'extension de la prise en charge de l'importation et de l'exportation, l'amélioration des cas difficiles pour l'importateur et la possibilité d'exporter vers plusieurs versions d'ensembles d'opérateurs.

  • 00:25:00 Dans cette section, l'orateur explique la différence entre ONNX et MXNet. MXNet est un cadre de réseau neuronal complet, tandis que ONNX n'est qu'un format de fichier utilisé pour exporter et importer des réseaux neuronaux. L'orateur mentionne également qu'il existe un logiciel distinct appelé runtime ONNX, qui agit comme un véritable framework. Le haut-parleur fournit également des informations sur la façon de vérifier quelles fonctions peuvent être exportées vers ONNX à l'aide d'utilitaires internes.
 

Conversion du modèle Tensorflow au format ONNX - Détection des émotions humaines



Conversion du modèle Tensorflow au format Onnx - Détection des émotions humaines

La vidéo présente les avantages de la conversion de modèles TensorFlow pré-formés au format ONNX, qui fournit un format commun pour représenter des modèles d'apprentissage automatique pouvant être interprétés sur différentes plates-formes matérielles à l'aide de l'environnement d'exécution ONNX. En convertissant les modèles, les développeurs peuvent les exécuter plus efficacement dans différents frameworks ou les utiliser plus facilement avec d'autres praticiens. La vidéo montre le processus de conversion des modèles TensorFlow et Keras au format ONNX à l'aide des outils et des spécifications fournis sur le référentiel ONNX GitHub, et souligne comment le format ONNX optimise le modèle et réduit le temps d'exécution pour les prédictions. Le modèle ONNX surpasse également le modèle TensorFlow pour la détection des émotions humaines sur un processeur.

  • 00:00:00 Dans cette section de la vidéo, le présentateur discute du format ONNX, qui signifie échange de réseau neuronal ouvert. La norme ONNX, co-développée par Microsoft, Facebook et AWS, fournit un format commun pour représenter des modèles d'apprentissage automatique qui peuvent être interprétés sur différentes plates-formes matérielles à l'aide de l'environnement d'exécution ONNX. En convertissant les modèles TensorFlow préformés au format ONNX, les développeurs peuvent ensuite les convertir en modèles dans d'autres frameworks tels que PyTorch, permettant aux modèles de s'exécuter encore plus efficacement dans un framework différent ou d'être utilisés par d'autres praticiens. Le runtime ONNX est un moteur d'inférence léger et modulaire qui permet aux développeurs d'exécuter des modèles ONNX sur la plate-forme matérielle de leur choix. Dans l'ensemble, le présentateur met l'accent sur la flexibilité et la facilité de conversion des modèles au format ONNX, ce qui permet aux développeurs de travailler plus facilement avec n'importe quel framework de leur choix tout en garantissant que leurs modèles peuvent également fonctionner sur n'importe quelle plate-forme matérielle.

  • 00:05:00 Dans cette section, la vidéo couvre le processus de conversion d'un modèle TensorFlow au format ONNX à l'aide de l'outil TensorFlow vers ONNX et de l'environnement d'exécution ONNX. La vidéo explique que si le modèle initial de TensorFlow avait une taille de près d'un gigaoctet et nécessitait la même quantité d'espace pour le déploiement, la version ONNX optimisée ne fait que 327 mégaoctets. De plus, la vidéo montre comment convertir un modèle Keras au format ONNX en utilisant les spécifications fournies sur le dépôt ONNX GitHub. Enfin, la vidéo se termine en mentionnant que le modèle converti peut être testé pour l'inférence.

  • 00:10:00 Dans cette section, l'orateur explique comment exécuter un modèle ONNX à l'aide du runtime ONNX, ce qui élimine le besoin de TensorFlow, en démontrant un modèle de détection d'émotion exécuté sur un processeur. Tout d'abord, le conférencier montre comment spécifier le fournisseur d'exécution du processeur et importer le runtime ONNX. Ensuite, l'orateur souligne l'importance de spécifier correctement les noms de sortie et transmet une image d'entrée à l'aide de NumPy au lieu de TensorFlow. Le modèle ONNX, qui fournit des probabilités pour les émotions, est capable de détecter l'émotion dans l'image d'entrée et de produire les mêmes probabilités beaucoup plus rapidement car il ne nécessite pas de TensorFlow. En important la bibliothèque de temps, l'orateur démontre la différence de vitesse entre l'exécution du modèle de détection d'émotion avec TensorFlow et l'exécution ONNX.

  • 00:15:00 Dans cette section de la vidéo, le présentateur montre comment mesurer le temps d'inférence pour les modèles TensorFlow et ONNX en utilisant à la fois un CPU et un GPU. Le modèle TensorFlow avec un GPU prend 0,15 seconde pour s'exécuter, tandis que le modèle ONNX avec un processeur prend 0,5 seconde. Le présentateur installe ensuite le runtime ONNX avec un GPU et redémarre le runtime pour prendre en compte la version du GPU. Enfin, le temps d'inférence pour le modèle ONNX avec un GPU est mesuré et comparé au modèle TensorFlow.

  • 00:20:00 Dans cette section, la vidéo montre le processus de conversion d'un modèle TensorFlow au format ONNX et comment il peut optimiser le modèle TensorFlow initial. Le format ONNX permet d'optimiser le modèle et de réduire le temps d'exécution des prédictions. La vidéo montre l'exécution du modèle TensorFlow original avec GPU et CPU, puis le format ONNX avec GPU, suivi du test des deux modèles avec 100 prédictions pour mesurer le temps moyen par prédiction. Le modèle ONNX a entraîné un temps moyen de 23 millisecondes pour une seule prédiction, six fois plus rapide que le modèle TensorFlow initial.

  • 00:25:00 Dans cette section, le conférencier discute des performances du modèle ONNX par rapport au modèle Tensorflow pour la détection des émotions humaines. À l'aide d'un processeur, le modèle ONNX fonctionne environ deux fois plus vite que le modèle Tensorflow. L'orateur fournit un exemple spécifique, indiquant que 0,8 divisé par 0,35 a été exécuté avec les deux modèles et que le modèle Onnx a surpassé Tensorflow.