Apprendre ONNX pour le trading - page 6

 

Apportez la puissance d'ONNX à Spark comme jamais auparavant



Apportez la puissance d'ONNX à Spark comme jamais auparavant

Dans cette vidéo, Shivan Wang de Huawei explique comment apporter la puissance d'ONNX à Spark pour l'inférence. Il discute des défis liés au déploiement de modèles DL sur Spark et comment la communauté Spark a lancé une proposition appelée Spip pour simplifier le processus. L'orateur discute également du processeur d'intelligence artificielle de Huawei, d'Ascent et de l'écosystème d'intelligence artificielle d'Ascent, qui comprend plusieurs modèles de processeurs Ascent et du matériel Atlas. Il suggère d'ajouter Con en tant que nouveau fournisseur d'exécution dans la prochaine exécution pour utiliser directement les modèles ONNX sur le matériel Ascent, sans avoir besoin de traduction de modèle. Enfin, il mentionne que le code POC pour apporter la puissance d'ONNX à Spark est presque terminé et invite les utilisateurs intéressés à laisser un message pour discuter et éventuellement fournir des ressources à des fins de test.

  • 00:00:00 Dans cette section, Shivan Wang de Huawei explique comment apporter la puissance d'Onyx à Spark pour l'inférence. Il explique que l'interface d'inférence de trame de données bien définie est très conviviale pour les ingénieurs de données, qui peuvent facilement charger des données et compléter l'ingénierie des fonctionnalités. Cependant, il existe des lacunes entre les cadres d'IA et les pré-échantillons internes, ce qui rend difficile le déploiement de modèles DL sur Spark. Pour simplifier le processus, la communauté Spark a lancé une discussion sur une proposition appelée Spip, qui fournira une API simple pour faire en sorte que le processus de Spark et de l'IA influence les petites cellules. Enfin, en exécutant l'inférence Onyx dans l'exécuteur Spark, les utilisateurs peuvent facilement compléter l'influence d'Onyx sur le Big Data à l'aide de la plateforme d'inférence Onyx.

  • 00:05:00 Dans cette section, l'orateur discute du processeur AI de Huawei appelé Ascent et de l'écosystème Ascent AI, qui comprend plusieurs modèles de processeur Ascent et du matériel Atlas. La couche logicielle de l'écosystème Ascent s'appelle Cam et fournit des API pour aider les développeurs à créer rapidement des applications d'IA sous des services basés sur la plate-forme Ascent. Pour exécuter un modèle ONNX sur un autre matériel, l'utilisateur doit d'abord utiliser un outil de traduction de modèle fourni par Con pour traduire le modèle d'ONNX vers Ascent. Cependant, l'orateur suggère qu'une meilleure solution consiste à ajouter Con en tant que nouveau fournisseur d'exécution lors de la prochaine exécution, afin que les utilisateurs puissent utiliser directement les modèles ONNX sur le matériel Ascent, sans avoir besoin de traduction de modèle. Ils prévoient de terminer tout le support des opérateurs ONNX d'ici la fin de cette année et de s'assurer que tous les modèles du zoo modèle ONNX fonctionnent bien sur Ascent, suivi d'un développement ultérieur l'année prochaine.

  • 00:10:00 Dans cette section, l'orateur mentionne que le code POC permettant d'apporter la puissance d'ONNX à Spark est presque terminé et que les opérations de base telles que l'opération d'ajout peuvent s'exécuter correctement. Ils invitent également les utilisateurs intéressés à laisser un message pour discuter et éventuellement fournir des ressources à des fins de test. La section se termine en remerciant les téléspectateurs d'avoir regardé.
Bring the power of ONNX to Spark as it never happened before
Bring the power of ONNX to Spark as it never happened before
  • 2022.07.13
  • www.youtube.com
Both data processing platforms and deep learning frameworks are evolving in their own fields. Usually, Spark is used for offline data processing, and then va...
 

Builders Build #3 - Du Colab à la production avec ONNX



Builders Build #3 - Du Colab à la production avec ONNX

La vidéo illustre le processus de déploiement d'un projet de Colab vers la production à l'aide d'ONNX. Le présentateur couvre divers aspects tels que le prétraitement des signaux, la modification du code pour le déploiement, la création d'un gestionnaire sur AWS Lambda, l'acceptation d'une entrée audio sur un site Web, le téléchargement d'une fonction sur S3 et le déploiement de dépendances pour ONNX. Malgré certaines difficultés, l'orateur déploie avec succès son modèle avec AWS et suggère qu'il peut utiliser un objet de fichier de chargement de navigateur base64 ou des extraits de lecture de fichier audio pour les étapes futures.

De plus, la vidéo présente l'utilisation du modèle SimCLR pour l'apprentissage contrastif dans l'audio, en créant un catalogue de chansons en les introduisant dans le modèle et en l'entraînant avec PyTorch pour atteindre une perte nulle et un rappel à k = 1. Le présentateur discute des défis de l'utilisation de PyTorch en production et propose ONNX comme solution. La vidéo montre comment exporter et charger le modèle PyTorch au format ONNX et exécuter l'inférence. Il montre également comment traiter les fichiers audio à l'aide des bibliothèques Torch Audio et Numpy et résout les problèmes lors de la configuration d'un modèle PyTorch pour le déploiement. La vidéo explique comment faire passer les modèles du développement dans les notebooks Colab aux environnements de production.

  • 00:00:00 Dans cette section, l'orateur discute d'un cadre simple pour l'apprentissage contrastif de la représentation visuelle à l'aide du modèle SimCLR, qui consiste à échantillonner deux transformations aléatoires à partir d'un ensemble de transformations différentes appliquées à une image, résultant en deux images différentes (x tilde i et x tilde j), qui sont ensuite passés dans un encodeur (resnet 50) pour donner deux vecteurs (hi et hj) passés à une fonction de projection (MLP) pour renvoyer deux projections (zi et zj). L'objectif est de maximiser la similarité cosinus des deux projections en utilisant une perte contrastive pour apprendre f et g afin que la sortie des deux projections du modèle soit très proche l'une de l'autre. L'orateur applique ce cadre à l'audio, où l'entrée n'est pas une image mais un signal transformé en spectrogramme, et utilise un filtre passe-bas pour modifier la vitesse de lecture comme l'une des différentes transformations.

  • 00:05:00 Dans cette section, le présentateur discute de la mise en œuvre de la perte NT_Xent qui a été utilisée pour le modèle, qui est une perte d'entropie croisée qui implique une paire de positifs et la somme de paires négatives. Ils parlent également de tricher un peu lors de l'évaluation en utilisant les mêmes données de test que les données d'entraînement et en utilisant le rappel à k comme métrique. Enfin, ils mentionnent qu'ils ont trouvé une implémentation de la fonction de perte sur un site Web appelé foudre et cela a bien fonctionné lorsqu'il a été testé sur des données factices.

  • 00:10:00 Dans cette section, l'orateur explique comment il a construit un catalogue de chansons en les introduisant dans le modèle afin d'obtenir un ensemble de vecteurs représentant chaque chanson, qui ont ensuite été enregistrés avec leurs titres, signaux audio et représentations d'index. Ils ont ensuite calculé les similitudes en prenant le produit scalaire des caractéristiques et de l'index du catalogue, normalisé les vecteurs et calculé le rappel à k pour déterminer les meilleures correspondances. Ils ont utilisé une boucle d'entraînement normale dans PyTorch et ajouté l'optimiseur LARS, qui a aidé le modèle à converger vers une perte nulle et à atteindre un rappel à k égal à un, ce qui signifie qu'il a toujours prédit la bonne chanson. L'orateur aborde ensuite le défi d'utiliser PyTorch en production et présente une solution utilisant ONNX, un format qui permet une intégration transparente avec d'autres frameworks et un déploiement sur différents appareils.

  • 00:15:00 Dans cette section, l'orateur discute de l'utilisation d'ONNX, un framework léger d'inférence qui permet d'importer des modèles à partir d'autres frameworks comme PyTorch et TensorFlow pour l'hébergement dans le cloud. L'orateur a l'intention de créer une fonction de gestionnaire python qui tirera parti d'ONNX pour exécuter l'inférence sur les données audio, obtenir le spectrogramme à partir de l'audio, exécuter le modèle sur le spectrogramme et renvoyer un objet JSON avec des prédictions. L'orateur note que pour utiliser ONNX, le modèle doit être enregistré sous une extension de fichier .onnx et explique le processus d'exportation du modèle de PyTorch vers ONNX.

  • 00:20:00 Dans cette section, l'intervenant explique comment exporter un modèle de PyTorch au format ONNX à l'aide des fonctions torch.one et x.export. L'entrée factice permet au format ONNX de comprendre la forme attendue du fichier d'entrée, et les noms de sortie et d'entrée sont spécifiés à l'aide d'un dictionnaire ou d'un objet JSON. L'orateur fournit un exemple d'exportation d'un modèle nommé simclr avec l'horodatage actuel, utilise les paramètres d'exportation pour stocker les poids des paramètres de train dans le fichier de modèle et montre comment ajouter une fonction lambda pour récupérer l'horodatage du modèle.

  • 00:25:00 démarre une nouvelle section où le créateur de la vidéo explore comment charger et exécuter l'inférence sur un modèle à l'aide d'ONNX. Ils discutent de la création d'une session d'inférence et du chargement du modèle à partir d'un chemin de modèle. Le créateur prévoit d'intégrer le modèle dans une API, mais ne sait pas comment obtenir l'audio dans le gestionnaire. Ils envisagent d'utiliser une chose en base 64 et créent un nouveau fichier pour le tester. Ils passent ensuite à la discussion sur la manière d'exécuter l'inférence sans charger de modèle et décident de se concentrer sur cela à la place.

  • 00:30:00 Dans cette section, l'orateur discute de la modification du code pour utiliser l'audio de la torche au lieu d'utiliser un tableau numpy. L'orateur découvre qu'il peut utiliser l'audio de la torche et l'installe pour avancer. Ils discutent ensuite de la modification des noms d'entrée et de sortie et appellent la sortie "projection" pour faire une similarité cosinus avec leur bibliothèque. La bibliothèque est configurée en tant qu'objet JSON avec un tableau de titres, un tableau de formes d'onde et un tableau de projections que le locuteur a l'intention d'utiliser dans ses calculs de similarité cosinus.

  • 00:35:00 Dans cette section, l'orateur écrit du code et explique le processus à haute voix. Ils écrivent un script pour trier une liste de chansons dans une bibliothèque musicale, discutant de diverses techniques comme la multiplication matricielle, les similitudes et les algorithmes de tri en cours de route. Le haut-parleur charge également une bibliothèque JSON et l'utilise dans le script. La vidéo fait partie d'une série sur la création de logiciels de la collaboration à la production à l'aide du framework ONNX.

  • 00:40:00 Dans cette section, le présentateur montre comment utiliser ONNX pour produire et enregistrer un catalogue au format JSON. Le catalogue est créé à partir de tableaux et le présentateur vérifie les formes avant de vider le catalogue sous forme de fichier JSON à l'aide de la fonction `dump()`. L'erreur qui s'ensuit est résolue en remplaçant le `catalog` par une copie de `library`. Le présentateur convertit ensuite les tableaux en listes à l'aide de la méthode `tolist()` et télécharge le fichier JSON. Enfin, le présentateur montre comment charger le fichier JSON enregistré à l'aide de la fonction `load()`.

  • 00:45:00 Dans cette section, l'orateur discute de son approche du traitement des fichiers audio à partir des chemins de fichiers à l'aide des bibliothèques Torch Audio et Numpy en Python. Ils expliquent qu'ils ont téléchargé Torch Audio et qu'ils utiliseront sa méthode de "prétraitement du signal" pour rééchantillonner et prétraiter le fichier audio. Ils utilisent ensuite la fonction moyenne de Numpy pour calculer la moyenne du signal traité tout en conservant les dimensions, puis en complétant le signal à l'aide de np.pad. Dans l'ensemble, le conférencier fournit une explication claire et concise de leur méthode de traitement.

  • 00:50:00 Dans cette section de la vidéo, l'orateur essaie d'obtenir un spectrogramme d'une forme d'onde à l'aide d'une fonction. Cependant, il semble y avoir des problèmes avec la fonction qui ne reconnaît pas la fréquence d'échantillonnage cible et qui entraîne un message d'erreur. L'orateur essaie d'utiliser un clip de test pour dépanner et imprime la forme du spectrogramme, qui renvoie une sortie inattendue. On ne sait pas exactement ce qui cause les problèmes, qu'il s'agisse d'un problème d'entrée ou de modèle.

  • 00: 55: 00 Dans cette section, l'orateur évalue certains des messages d'erreur qui sont apparus lors de la tentative de configuration d'un modèle PyTorch pour le déploiement et identifie les problèmes liés à la taille du package Torch et aux dépendances incompatibles. Ils notent qu'un fichier chargé avec Torch Audio se spécifie comme nécessitant plus de 1 Go de mémoire, ce qui peut entraîner des problèmes lors de l'exécution de modèles avec des entrées de fichier volumineuses. Pour résoudre ce problème, ils suggèrent de charger les fichiers avec librosa à la place et de remplacer Torch Audio lors de la conversion des spécifications telles que la fréquence et le chargement des fichiers. Dans l'ensemble, cette section met l'accent sur la mise en évidence de certains des problèmes qui peuvent survenir lors de la transition des modèles du développement dans les notebooks Colab au déploiement dans des environnements de production.

  • 01:00:00 Dans cette section, l'orateur installe Torch et Torch audio pour continuer à construire le projet, qui a toujours une petite taille de moins de 500 mégaoctets. Ils utilisent Librosa et rééchantillonnent pour s'assurer que le signal revient avec le taux d'échantillonnage d'origine et un taux d'échantillonnage cible. Ils rencontrent des erreurs lors de l'exécution du script et se rendent compte qu'ils doivent mélanger différents canaux pour s'assurer que le résultat n'est pas bizarre. Ils continuent le dépannage pour s'assurer que le projet fonctionne comme prévu.

  • 01:05:00 Dans cette section, l'enceinte travaille avec le prétraitement du signal et charge différents canaux. Ils rencontrent un problème où le signal n'a qu'un seul canal et ils doivent l'étendre plus d'une fois. L'orateur utilise numpy et squeeze expand dims pour résoudre le problème, validant finalement les modifications.

  • 01:10:00 Dans cette section, l'orateur modifie le code pour permettre le déploiement de l'API REST SpeakFluent, qui est une fonction qui gérerait une demande puis exécuterait l'inférence. Ils modifient le gestionnaire pour obtenir une demande contenant le fichier audio et le nom du fichier, puis enregistrent le fichier localement. Ils exécutent l'inférence à l'aide de l'environnement d'exécution ONNX sans Torch, puis renvoient la meilleure correspondance.

  • 01:15:00 Dans cette section, l'orateur discute du gestionnaire python source de l'application, qui renvoie actuellement un tableau de titres de chansons et leurs meilleurs titres correspondants. L'orateur mentionne également les futurs ajouts au gestionnaire qui incluront le retour de l'URI pour un compartiment S3 et le pourcentage de correspondance pour la meilleure correspondance. L'orateur prévoit de faire une pause et reviendra sur la création d'un véritable gestionnaire pouvant être chargé et déployé sur une fonction AWS Lambda.

  • 01:25:00 Dans cette section de la vidéo, le présentateur explique comment créer un gestionnaire sur AWS Lambda à l'aide d'un script et d'un événement. Le gestionnaire Lambda est conçu pour prendre un événement et non une demande, et il recevra la partie audio du formulaire de l'événement. Le présentateur explique que le processus implique la création d'un formulaire sur le front-end et l'obtention de l'ID à partir de l'entrée audio.

  • 01:30:00 Dans cette section de la vidéo, un développeur explique le processus d'acceptation de l'entrée audio sur un site Web à l'aide de Javascript et de téléchargement du fichier sur un serveur pour traitement. Le développeur explique qu'il ajoutera un bouton d'enregistrement au site Web et utilisera Javascript pour créer un fichier et le télécharger automatiquement sur le serveur. Ils discutent ensuite de l'appel à l'inférence sur le fichier téléchargé et du renvoi d'un code d'état 200 avec un corps à l'aide de JSON.dumps. Le développeur envisage également d'utiliser l'encodage base64 de l'audio au lieu d'un fichier pour une efficacité accrue. Ils explorent le processus d'exécution de l'inférence ONNX avec Python dans AWS à l'aide de l'environnement d'exécution Lambda.

  • 01:35:00 Dans cette section, l'orateur discute du processus de téléchargement d'une fonction sur S3 et de création d'une nouvelle fonction à partir de zéro pour le projet nommé Diva. L'orateur exprime son agacement face au processus mais procède à la création d'une nouvelle fonction à l'aide de Python 3.9, débattant de la différence d'ARM et envisageant également de télécharger des fichiers directement dans la fonction.

  • 01:40:00 Dans cette section, l'intervenant explore le tableau de bord Cloud Functions et montre comment télécharger un fichier zip, changer les formats d'événement en JSON et créer un nouvel événement. Ils discutent également de la nécessité de configurations supplémentaires pour la mémoire et les variables d'environnement. Le haut-parleur tente ensuite d'ajouter un enregistrement avec de l'audio base64 mais rencontre un problème avec les options disponibles.

  • 01:45:00 Dans cette section, l'orateur semble copier et coller un gros fichier JSON et l'enregistrer en tant que package de déploiement AWS Lambda. Ils mentionnent vouloir utiliser une méthode différente, mais la suppriment finalement et décident d'utiliser le gestionnaire Lambda à la place. Cependant, ils doivent installer certaines choses et essayer de trouver un moyen de télécharger le package sur AWS. Ils discutent également des fonctions d'exportation.

  • 01:50:00 Dans cette section, l'orateur décrit les étapes pour compiler et déployer les dépendances nécessaires pour ONNX, un projet de gestion de modèle open-source. Ils expliquent qu'il est important de compiler dans un environnement similaire à Lambda pour éviter les problèmes de compatibilité et suggèrent de trouver le dossier d'exécution ONNX et de le copier dans le package de déploiement. Bien que ce processus puisse être considéré comme "méchant", l'orateur explique qu'il est nécessaire de s'assurer que le code fonctionnera correctement. Ils répertorient ensuite les dépendances nécessaires, y compris librosa, scipy et numpy, et discutent de la taille du package de déploiement, qui peut aller jusqu'à 200 mégaoctets.

  • 01:55:00 Dans cette section, l'intervenant discute des étapes à suivre pour déployer son modèle avec AWS. Ils doivent créer un gestionnaire Lambda léger, déterminer comment le déployer avec la limitation AWS et décider s'il faut le stocker dans S3 car il dépasse 50 mégaoctets. L'étape suivante consiste à mettre à jour la fonction de traitement pour prendre un objet audio base64 au lieu d'un fichier, et l'orateur envisage d'utiliser un objet de fichier base64 de chargement de navigateur ou des morceaux de lecture de fichier audio pour y parvenir. Ils concluent en déclarant qu'ils pensent qu'ils peuvent simplement faire cela.
Builders Build #3 - From Colab to Production with ONNX
Builders Build #3 - From Colab to Production with ONNX
  • 2022.03.21
  • www.youtube.com
Last week, we built a Shazam clone using Self-supervised learning (SimCLR).Let's get the model out of Colab and run inference in production with ONNX!I have ...
 

Combiner la puissance d'Optimum, OpenVINO™, ONNX Runtime et Azure



Combiner la puissance d'Optimum, OpenVINO™, ONNX Runtime et Azure

La vidéo présente la combinaison d'Optimum, OpenVINO, ONNX Runtime et Azure pour simplifier le flux de travail du développeur et améliorer la précision et la vitesse de ses modèles. Les conférenciers démontrent l'utilisation des fonctions d'assistance, ONNX Runtime et le fournisseur d'exécution OpenVINO pour optimiser les modèles d'apprentissage en profondeur. Ils montrent également comment optimiser les modèles de visages enlacés à l'aide de la quantification dans le cadre de compression de réseau neuronal et illustrent le processus de formation et d'inférence à l'aide d'Azure ML, Optimum, ONNX Runtime et OpenVINO. La démonstration met en évidence la puissance de ces outils pour améliorer les performances des modèles tout en minimisant la perte de précision.

  • 00:00:00 Dans cette section de la vidéo, Cassie parle aux représentants d'Intel de la boîte à outils OpenVINO et de l'environnement d'exécution Onyx. La boîte à outils OpenVINO utilise des techniques d'optimisation avancées spécialement conçues pour le matériel Intel afin d'améliorer les performances des modèles d'apprentissage en profondeur. Avec la bibliothèque d'exécution Onyx et une simple modification de la ligne de code de session instantanée, les développeurs peuvent utiliser le fournisseur d'exécution OpenVINO d'Intel pour accélérer l'inférence des modèles Onyx. La démo présentée dans la vidéo présente les performances accélérées de YOLO V7, un modèle d'apprentissage en profondeur populaire, sur un processeur Intel.

  • 00:05:00 Dans cette section de la vidéo, l'orateur discute des différentes fonctions d'assistance utilisées dans la démo pour effectuer un prétraitement, attribuer des valeurs de couleur à des étiquettes spécifiques et lire et retraiter des images. La démo utilise ONNX Runtime pour créer une session d'inférence et exécuter la tâche d'inférence, et OpenVINO Execution Provider pour accélérer les modèles d'apprentissage en profondeur sur un processeur Intel. Le processus est simplifié en apportant une simple modification à la ligne de code, ce qui implique l'installation des bibliothèques ONNX et OpenVINO, l'importation de la bibliothèque ONNX Runtime et la définition du fournisseur OpenVINO. L'orateur donne également un bref aperçu de l'architecture de la façon dont le modèle ONNX est converti en une représentation graphique en mémoire et entre dans le Graph Practitioner pour l'interrogation backend.

  • 00:10:00 Dans cette section, les conférenciers expliquent comment optimiser les modèles de visages enlacés à l'aide de la quantification dans le cadre de compression du réseau neuronal. Ils parcourent un exemple de code montrant comment activer la quantification pendant la formation à l'aide d'Optimum Intel et d'OV Config. Ils présentent également un flux de travail d'IA qui intègre la préparation des données, la formation de modèles, l'inférence, le déploiement et l'automatisation pour aider les développeurs et les clients à effectuer des activités complexes plus efficacement. Les conférenciers montrent comment utiliser Azure ML pour prendre en charge ces flux de travail pour de meilleures performances.

  • 00:15:00 Dans cette section de la vidéo, le conférencier aborde le processus de formation et d'inférence à l'aide d'Azure ML, Optimum, ONNX Runtime et OpenVINO. Ils commencent par discuter des fichiers et des scripts utilisés pour le pipeline de formation et comment soumettre le travail à Azure ML. Ils discutent ensuite du script d'inférence et de la manière dont il utilise ONNX Runtime et le fournisseur d'exécution OpenVINO. L'orateur fournit des détails sur les résultats du score F1 pour la quantification et la formation du modèle, démontrant qu'il n'y a eu qu'une perte mineure de précision au cours de ce processus. Dans l'ensemble, la section fournit un aperçu détaillé du processus de formation et d'inférence à l'aide de ces technologies.

  • 00:20:00 Dans cette section, l'orateur montre comment fonctionne le processus de quantification en montrant le modèle original fp32 et le modèle optimisé int 8, qui a été visualisé via Netron. Ils expliquent également comment Azure ML et OpenVINO peuvent être exploités pour améliorer la précision et les performances pendant le processus de formation et d'inférence. Ils mentionnent l'utilisation d'ONNX Runtime pour optimiser et améliorer davantage les performances, et encouragent les téléspectateurs à consulter le code et le blog pour plus d'informations. Dans l'ensemble, la démonstration montre la puissance de la combinaison de plusieurs outils pour simplifier le flux de travail du développeur et améliorer la précision et la vitesse de ses modèles.
Combining the power of Optimum, OpenVINO™, ONNX Runtime, and Azure
Combining the power of Optimum, OpenVINO™, ONNX Runtime, and Azure
  • 2023.01.27
  • www.youtube.com
Devang Aggarwal, and Akhila Vidiyala from Intel join Cassie Breviu to talk about Intel OpenVINO + ONNX Runtime. We'll look at how you can optimize large BERT...
 

Inférence plus rapide des modèles ONNX | Edge Innovation Series pour les développeurs | Logiciel Intel



Inférence plus rapide des modèles ONNX | Edge Innovation Series pour les développeurs | Logiciel Intel

Le fournisseur d'exécution OpenVINO pour ONNX Runtime est abordé dans cette vidéo. Il s'agit d'un accélérateur de modèles d'apprentissage automatique multiplateforme qui permet le déploiement de modèles d'apprentissage en profondeur sur une gamme d'appareils de calcul Intel. En utilisant la boîte à outils OpenVINO, qui est optimisée pour le matériel Intel, et en définissant le fournisseur comme fournisseur d'exécution OpenVINO dans le code, les développeurs peuvent accélérer l'inférence des modèles ONNX avec des techniques d'optimisation avancées. La vidéo met l'accent sur la simplicité de la modification requise pour utiliser les outils discutés.

Faster Inference of ONNX Models | Edge Innovation Series for Developers | Intel Software
Faster Inference of ONNX Models | Edge Innovation Series for Developers | Intel Software
  • 2022.11.30
  • www.youtube.com
Join Ragesh in his interview with Devang Aggarwal, a product manager at Intel with Intel’s OpenVINO™ AI framework engineering team doing work around deep lea...
 

Inférence de modèle plus rapide et plus légère avec ONNX Runtime du cloud au client



Inférence de modèle plus rapide et plus légère avec ONNX Runtime du cloud au client

Dans cette vidéo, Emma de Microsoft Cloud et du groupe AI explique l'Open Neural Network Exchange (ONNX) et ONNX Runtime, qui est un moteur hautes performances permettant d'inférer des modèles ONNX sur différents matériels. Emma discute du gain de performances significatif et de la réduction de la taille du modèle que la quantification ONNX Runtime INT8 peut fournir, ainsi que de l'importance de la précision. Elle démontre le flux de travail de bout en bout de la quantification ONNX Runtime INT8 et présente les résultats d'un modèle de base utilisant la quantification PyTorch. De plus, Emma discute de la capacité d'ONNX Runtime à optimiser l'inférence de modèle du cloud au client et comment il peut atteindre une taille inférieure à 300 kilo-octets sur les plates-formes Android et iOS par défaut.

  • 00:00:00 Dans cette section, Emma, responsable de programme senior au sein de l'équipe AI Framework de Microsoft Cloud et du groupe AI, explique le rôle d'ONNX et d'ONNX Runtime dans la pile logicielle AI. ONNX, qui signifie Open Neural Network Exchange, est un format standard pour représenter à la fois les modèles d'apprentissage automatique traditionnels et les réseaux de neurones d'apprentissage en profondeur. ONNX Runtime est un moteur hautes performances permettant d'inférer des modèles ONNX sur différents matériels. Les convertisseurs ONNX et ONNX Runtime sont les principaux éléments du flux de travail pour opérationnaliser un modèle ONNX, qui peut être activé à partir de n'importe quel cadre à l'aide des outils de conversion ONNX. Il existe de nombreux frameworks populaires prenant en charge ONNX, notamment PyTorch, TensorFlow et Caffe.

  • 00:05:00 Dans cette section, les avantages et les fonctionnalités d'ONNX Runtime sont abordés. ONNX Runtime est un moteur d'inférence hautes performances pour les modèles ONNX qui offre des API pour une variété de langages et des accélérations matérielles pour les CPU, les GPU et les VPU. ONNX Runtime est également ouvert et extensible, permettant une optimisation et une accélération faciles de l'inférence d'apprentissage automatique. Il a déjà été intégré dans de multiples plateformes internes et externes et alimente de nombreux produits phares. L'une des fonctionnalités les plus récentes et les plus intéressantes d'ONNX Runtime est la quantification INT8 pour le processeur, qui se rapproche des nombres à virgule flottante avec des bits inférieurs, réduisant la taille de la mémoire du modèle et améliorant les performances. Les résultats de référence sur divers modèles et matériels montrent des accélérations significatives en utilisant ONNX Runtime.

  • 00:10:00 Dans cette section, l'orateur discute du gain de performances significatif de la quantification ONNX Runtime INT8, qui peut accélérer jusqu'à trois fois les performances d'inférence sur une grosse machine et environ 60% sur des machines plus petites, ainsi que réduire le modèle taille de près de quatre fois. Le conférencier souligne également l'importance de la précision et donne un exemple de la façon dont les modèles quantifiés ONNX Runtime peuvent maintenir une précision similaire à celle des modèles FP32 sur une tâche NLP courante. L'orateur présente ensuite le flux de travail de bout en bout de la quantification ONNX Runtime INT8, qui consiste à convertir des modèles au format ONNX, à utiliser l'outil de quantification pour obtenir un modèle INT8, puis à effectuer une inférence dans ONNX Runtime. Enfin, le conférencier présente les résultats d'un modèle de référence utilisant la quantification PyTorch et évalue les performances à l'aide de la fonction Tokenize et d'évaluation de Hugging Face.

  • 00:15:00 Dans cette section, les intervenants discutent du processus de quantification ONNX Runtime pour optimiser les performances et la taille du modèle. Le processus implique une étape d'optimisation avant la quantification, qui n'est nécessaire que pour les modèles de transformateur. Une fois optimisé, le modèle peut être quantifié dans un format 8 bits à l'aide de l'API de quantification d'ONNX Runtime, ce qui se traduit par une taille de modèle beaucoup plus petite. Les résultats de performance et de précision montrent que la quantification ONNX Runtime surpasse la quantification PyTorch en termes de score F1. Une autre fonctionnalité intéressante d'ONNX Runtime est la possibilité de minimiser la taille d'exécution pour l'inférence sur l'appareil sur les smartphones et les appareils de périphérie.

  • 00:20:00 Dans cette section, la capacité d'ONNX Runtime à optimiser l'inférence de modèle du cloud au client est abordée. Deux techniques majeures sont activées pour ONNX Runtime mobile : l'introduction d'un nouveau format optimisé appelé format ONNX Runtime et la création d'ONNX Runtime avec des opérateurs uniquement nécessaires aux modèles prédéfinis pour réduire la taille du Runtime. Cela réduit considérablement la taille du Runtime en éliminant les opérateurs inutilisés, ce qui le rend plus faisable pour l'inférence de son propre appareil et répond aux besoins en mémoire. Le package mobile principal ONNX Runtime peut atteindre une taille inférieure à 300 kilo-octets sur les plates-formes Android et iOS par défaut. ONNX Runtime est un projet open source avec des tutoriels et des exemples disponibles sur son dépôt GitHub.
Faster and Lighter Model Inference with ONNX Runtime from Cloud to Client
Faster and Lighter Model Inference with ONNX Runtime from Cloud to Client
  • 2020.10.16
  • www.youtube.com
ONNX Runtime is a high-performance inferencing and training engine for machine learning models. This show focuses on ONNX Runtime for model inference. ONNX R...
 

Inférence CPU rapide du modèle de transformateur T5 avec conversion et quantification ONNX



Inférence CPU rapide du modèle de transformateur T5 avec conversion et quantification ONNX

En convertissant le modèle de transformateur T5 en ONNX et en mettant en œuvre la quantification, il est possible de réduire la taille du modèle de 3 fois et d'augmenter la vitesse d'inférence jusqu'à 5 fois. Ceci est particulièrement utile pour déployer un modèle de génération de questions tel que T5 sur un processeur avec une latence inférieure à la seconde. De plus, l'application Gradio offre une interface visuellement attrayante pour le modèle. Le modèle de transformateur T5 de Huggingface est utilisé et la bibliothèque FastT5 est utilisée pour ONNX et la quantification. La mise en œuvre de ces optimisations peut entraîner des économies de coûts importantes pour les déploiements de production de ces systèmes.

  • 00:00 Introduction et ordre du jour

  • 01:07 Installez la bibliothèque de transformateurs à partir du visage étreignant

  • 02:18 Télécharger Modèle de visage enlacé

  • 02:40 Exemple de génération d'une question

  • 04:00 Déploiement de l'application Gradio dans l'interface graphique

  • 08:11 Convertissez T5 Pytorch en ONNX et quantifiez avec FastT5

  • 17:22 Stocker le modèle dans le lecteur

  • 18:30 Exécutez l'application Gradio avec le nouveau modèle

  • 21:55 Épisode futur et conclusion
Fast T5 transformer model CPU inference with ONNX conversion and quantization
Fast T5 transformer model CPU inference with ONNX conversion and quantization
  • 2021.04.26
  • www.youtube.com
Question Generation using NLP course link: https://bit.ly/2PunWiWThe Colab notebook shown in the video is available in the course.With the conversion of T5 t...
 

Azure AI et environnement d'exécution ONNX



Azure AI et environnement d'exécution ONNX

Le texte couvre divers aspects de l'apprentissage automatique et de son déploiement. Il aborde l'évolution de la science des données, les défis de la compatibilité du framework, l'utilisation d'Azure AI et d'ONNX Runtime pour le déploiement de modèles, la création d'environnements ML et les limites d'ONNX Runtime. L'orateur met l'accent sur la standardisation d'ONNX et sa prise en charge de plusieurs frameworks, ce qui facilite l'optimisation pour différents matériels. La vidéo mentionne également l'absence de référence pour les préférences matérielles et la nécessité d'utiliser plusieurs outils pour surmonter les limites d'ONNX.

  • 00:00:00 Dans cette section de la transcription, l'orateur discute de l'évolution de la science des données et de la façon dont elle est passée d'une science de travail de laboratoire à un monde d'interconnexion. L'orateur partage son expérience de travail avec les systèmes IoT et comment ils ont évolué de la création à la main à l'utilisation de services cloud. Le conférencier souligne également l'importance de pouvoir travailler dans des environnements où l'utilisation de services cloud n'est pas autorisée et combien des entreprises spécialisées sont nécessaires dans ces situations. Enfin, le conférencier aborde les défis liés au changement de framework ou de fournisseur de cloud et explique pourquoi les clients changent souvent de fournisseur au lieu de changer de framework.

  • 00:05:00 Dans cette section, le conférencier aborde la question de la compatibilité entre les différents cadres d'IA et comment cela affecte les entreprises. Avec l'exemple d'une banque, il explique que si une entreprise avait construit son système sur un cadre d'IA, mais qu'ensuite un nouveau client souhaitait utiliser un cadre différent, l'entreprise devrait reconstruire complètement le système à partir de zéro, ce qui lui coûterait cher. à la fois du temps et de l'argent. Il aborde ensuite le runtime Onex, qui permet aux entreprises de convertir leurs cadres et modèles existants dans un format compatible sans avoir besoin d'une reconstruction complète. L'orateur évoque également les outils disponibles pour analyser et optimiser ces modèles convertis.

  • 00:10:00 Dans cette section, le conférencier explique comment Azure AI et ONNX Runtime peuvent être utilisés pour déployer facilement des modèles d'apprentissage automatique sur différentes plates-formes. En sélectionnant les options appropriées pour leur plate-forme et leur langue, les entreprises peuvent utiliser le logiciel pour charger les séquences de 0 et de 1 de leur réseau neuronal et utiliser la plate-forme et la langue de leur choix pour exporter le système pour un déploiement facile. La session explique également comment Onex peut être utilisé pour optimiser la formation tout au long du processus de développement, ce qui conduit à des résultats plus rapides et plus précis. L'orateur présente également le système d'optimisation automatique d'Intel serrandello pour les GPU et les CPU, qui rend le développement de modèles encore plus rationalisé.

  • 00:15:00 Dans cette section, l'orateur discute de la création de son environnement ML et du développement d'un classificateur d'espèces végétales basé sur la longueur et la largeur des sépales et des pétales. L'orateur note que la création d'un environnement ML impliquait auparavant d'acheter des grappes de serveurs et de tout configurer manuellement, mais maintenant, ils peuvent créer leur propre environnement ML et lancer leur propre studio sans avoir besoin de matériel. Leur environnement ML comprend une machine virtuelle normale et ONNX, qui est utilisé pour enregistrer les modèles TensorFlow. L'orateur démontre ensuite la création d'un réseau de neurones simple pour classer les espèces végétales en fonction des paramètres donnés.

  • 00:20:00 Dans cette section, l'orateur montre comment charger un modèle ONNX enregistré et exécuter une prédiction dessus. Elle importe le framework Tensorflow, charge le modèle ONNX et attribue un nom d'entrée unique aux valeurs d'entrée. Elle crée ensuite un champ de lien pour générer des valeurs d'entrée aléatoires pour exécuter l'expression ONNX. Enfin, elle exécute l'appel et obtient la catégorie de la valeur de sortie obtenue à partir de la prédiction. Le modèle ONNX créé précédemment est un fichier unique qui n'a pas besoin de documentation, ce qui facilite son utilisation par les développeurs.

  • 00:25:00 Dans cette section, le conférencier explique comment Azure AI et ONNX Runtime facilitent l'intégration de modèles d'apprentissage automatique dans diverses applications. Avec Azure AI, le client n'a qu'à créer son modèle dans la langue de son choix, puis il peut utiliser Azure AI pour charger le modèle et créer les données d'entrée nécessaires pour appeler le modèle. ONNX Runtime peut ensuite être utilisé pour intégrer le modèle dans différentes applications telles que Xamarin, Android ou Mac, quelle que soit la plate-forme sous-jacente. Cela permet d'intégrer facilement des modèles d'apprentissage automatique sur divers appareils et plates-formes. L'orateur note également que ONNX Runtime optimise pour divers processeurs, y compris ceux des appareils mobiles.

  • 00:30:00 Dans cette section, l'orateur explique qu'ONNX est devenu la norme de facto pour les modèles d'apprentissage automatique, car il prend en charge tous les principaux frameworks et est pris en charge par de nombreuses entreprises. Cette standardisation permet une optimisation plus facile pour différents matériels, sans avoir besoin d'une optimisation manuelle comme par le passé. De plus, ONNX n'est pas limité aux réseaux de neurones et peut également être utilisé pour d'autres algorithmes. L'orateur note également qu'ONNX prend en charge les mêmes fonctions et opérations mathématiques sur différentes plates-formes, permettant un déploiement transparent sur différents matériels et plates-formes tant que les opsets pris en charge correspondent.

  • 00:35:00 Dans cette section, l'orateur discute des limites de l'environnement d'exécution ONNX en termes de performances. Bien qu'ONNX soit un excellent outil qui fonctionne bien pour les cas d'utilisation généraux, il n'utilise pas le matériel à son plein potentiel. C'est là que d'autres outils au-delà d'ONNX tels que pytorch peuvent être plus avantageux. Cependant, si une personne se concentre sur l'exportation du modèle, ONNX peut remplacer entièrement d'autres outils. De plus, l'orateur explique qu'ONNX ne gère pas la communication machine à machine comme le rendu multi-machine. L'orateur suggère d'utiliser d'autres outils aux côtés d'ONNX pour surmonter ces limitations.

  • 00:40:00 Dans cette section, l'orateur discute de l'absence de référence pour les préférences matérielles et souligne que la plupart des références peuvent être trouvées sur le site Web du fabricant du matériel. Ils notent également que de nombreuses entreprises écrivent désormais pour le matériel, plutôt que l'inverse. L'orateur mentionne ensuite les plates-formes d'accélération les plus couramment utilisées, notamment Core ml, ONNX Runtime et RT. Ils mentionnent comment la phase de formation est accélérée, et une fois celle-ci terminée, il est plus facile de vendre aux clients. Les conférenciers suggèrent qu'il y aura peu de changements à venir dans les prochaines années et que xeon et les programmes similaires resteront importants.
 

Déployez l'apprentissage automatique n'importe où avec ONNX. Modèle Python SKLearn exécuté dans une fonction Azure ml.net



Déployez l'apprentissage automatique n'importe où avec ONNX. Modèle Python SKLearn exécuté dans une fonction Azure ml.net

La vidéo montre comment le runtime ONNX simplifie et standardise le déploiement de modèles d'apprentissage automatique construits dans différents langages et frameworks. Il illustre le processus d'empaquetage d'un modèle Python scikit-learn dans un modèle ONNX et de son déploiement dans une fonction Azure ML .NET. La vidéo souligne que la fonction Azure peut être facilement déclenchée via une requête HTTP POST, ce qui facilite l'appel depuis n'importe quelle application ou site Web, et quel que soit le langage utilisé pour créer le modèle d'apprentissage automatique, il peut être converti en un modèle ONNX et déployé via ML.NET pour s'exécuter de manière cohérente.

  • 00:00:00 Dans cette section, la vidéo présente le runtime ONNX et comment il simplifie le processus de déploiement des modèles d'apprentissage automatique construits dans divers langages et frameworks. Le runtime ONNX permet aux modèles d'être encapsulés d'une manière qui peut être facilement déployée dans un environnement différent. Il remplace le processus de décapage et fournit un environnement d'exécution standard qui fonctionne en Python, R, .NET, Java et d'autres langages. La vidéo présente ensuite un exemple de bout en bout de création d'un modèle simple en Python, de son conditionnement dans un modèle ONNX et de son exécution dans une fonction ML .NET. Le code utilisé dans cet exemple est disponible sur le GitHub public de la chaîne YouTube Advancing LLS.

  • 00:05:00 Dans cette section, le conférencier montre comment déployer un modèle d'apprentissage automatique à l'aide d'ONNX dans une fonction Azure. La démo commence par montrer un modèle Python de base qui utilise scikit-learn pour former un modèle de régression linéaire à l'aide des données sur les prix des logements à San Francisco. Le modèle est entraîné à l'aide d'un ensemble d'entraînement composé de valeurs numériques et catégorielles, et une fois le modèle entraîné, il est récupéré pour être conservé et déployé dans un conteneur. Enfin, le locuteur teste le modèle en appelant predict sur l'ensemble d'apprentissage et récupère certaines valeurs. Ce processus peut être utilisé pour déployer et exécuter des modèles d'apprentissage automatique n'importe où à l'aide d'ONNX.

  • 00:10:00 Dans cette section de la vidéo, le présentateur configure le modèle pour qu'il s'exécute dans ONNX afin que Python ne soit pas obligé de l'utiliser. Le nombre de fonctionnalités entrant dans la formation du modèle est spécifié et le modèle ONNX est initialisé pour savoir à quoi s'attendre. L'entrée initiale est nommée l'entrée d'entité, qui est nécessaire pour la notation. Pour noter le modèle, une session est créée et une ligne de code est responsable de la prédiction basée sur les données de formation. Les prédictions sont ensuite imprimées.

  • 00:15:00 Dans cette section, l'orateur explique comment exécuter un modèle Python dans ONNX et comment il peut être exécuté de manière cohérente dans Python, quels que soient les packages utilisés. Le conférencier montre comment convertir un modèle Python en ONNX et l'exécuter dans une fonction Azure à l'aide d'un HTTP POST avec un objet JSON. La fonction extrait des données importantes telles que l'année, la plus grande surface habitable et les conditions de vente, et les transmet au modèle, qui utilise ONNX pour noter les données et renvoyer le résultat. L'orateur explique que la fonction Azure est un déclencheur HTTP standard avec une API REST à l'arrière, ce qui facilite l'appel depuis n'importe quelle application ou site Web.

  • 00:20:00 Dans cette section, l'orateur explique les étapes nécessaires pour créer une variable appelée input et l'utiliser pour façonner le tenseur d'entrée afin qu'il soit acceptable pour l'exécution de la session. La session est lancée et démarrée pour exécuter la nouvelle session sur le chemin et marquer avec l'entrée désignée. Le résultat du score est ensuite extrait et empaqueté en tant qu'objet de résultat et renvoyé à la fonction. L'orateur montre comment tester le modèle déployé dans Postman en passant par les paramètres bruts du modèle d'objet JSON, tels que l'année de construction et la surface habitable, pour obtenir un score en retour. L'avantage du déploiement de modèles d'apprentissage automatique via ONNX et ML.NET est que peu importe le langage dans lequel les gens construisent leurs modèles, tant qu'il peut être converti en un modèle ONNX, il peut alors être déployé et exécuté de manière cohérente.
 

Déploiement sur ordinateur avec ONNX



Déploiement sur ordinateur avec ONNX

Dans la vidéo "Déploiement sur ordinateur avec ONNX", Alexander Zhang évoque les défis du déploiement sur ordinateur et les solutions proposées par ONNX. La prise en charge des ordinateurs de bureau présente des défis car il y a moins de contrôle sur les restrictions système sur le GPU ou le système d'exploitation, ainsi qu'une diversité significative des GPU de bureau. Pour relever ces défis, Alexander s'appuie sur différentes bibliothèques d'inférence pour chacun des fournisseurs de matériel pris en charge par Topaz Labs. ONNX est utilisé pour spécifier le même modèle à toutes ces bibliothèques, fournissant des résultats relativement cohérents sur différents matériels tout en économisant le travail manuel sur chaque modèle. Cependant, les conversions ONNX peuvent créer divers problèmes, tels que l'ambiguïté, l'incohérence et les écarts de qualité, obligeant les développeurs à effectuer des conversions de test et à utiliser explicitement les derniers décalages ONNX. Pour optimiser le débit par traitement par lots et potentiellement s'exécuter sur plusieurs appareils et bibliothèques en parallèle, ils divisent les images en blocs et sélectionnent une taille appropriée en fonction de la VRAM, puis exécutent les blocs par inférence.

  • 00:00:00 Dans cette section, Alexander Zhang aborde les défis du déploiement sur ordinateur et les solutions proposées par ONNX. S'adapter aux flux de travail existants tout en répondant aux attentes en matière de performances et en suivant les progrès nécessite de fournir les modèles d'image les plus récents et de la plus haute qualité disponibles. La prise en charge des ordinateurs de bureau présente des défis car il y a moins de contrôle sur les restrictions système sur le GPU ou le système d'exploitation, ainsi qu'une diversité significative des GPU de bureau. Pour relever ces défis, Alexander s'appuie sur différentes bibliothèques d'inférence pour chacun des fournisseurs de matériel pris en charge par Topaz Labs. ONNX est utilisé pour spécifier le même modèle à toutes ces bibliothèques, fournissant des résultats relativement cohérents sur différents matériels tout en économisant le travail manuel sur chaque modèle. Cependant, les conversions ONNX peuvent créer divers problèmes, tels que l'ambiguïté, l'incohérence et les écarts de qualité, obligeant les développeurs à effectuer des conversions de test et à utiliser explicitement les derniers décalages ONNX.

  • 00:05:00 Dans cette section, l'orateur explique que l'une des raisons pour lesquelles ils effectuent eux-mêmes de nombreuses conversions plutôt que d'utiliser des bibliothèques ou des wrappers existants est la performance. Ils mettent également l'accent sur l'importance de la flexibilité pour optimiser leurs propres modèles et leurs besoins de performances, si nécessaire, sans être obligés d'écrire du code spécifique au modèle pour chaque modèle. Pour optimiser le débit par traitement par lots et potentiellement s'exécuter sur plusieurs appareils et bibliothèques en parallèle, ils divisent les images en blocs et sélectionnent une taille appropriée en fonction de la VRAM, puis exécutent les blocs par inférence. Cependant, ils concluent qu'il existe des difficultés persistantes pour s'assurer que les nouvelles architectures de modèles se comportent bien dans toutes les bibliothèques, mais ils espèrent que leur stratégie surmontera ces défis et apportera des améliorations cohérentes de la qualité de l'image.
 

Déployer des modèles d'apprentissage automatique (TensorFlow/Caffe2/ONNX) - Rapide et facile



Déployer des modèles d'apprentissage automatique (TensorFlow/Caffe2/ONNX) - Rapide et facile

La vidéo montre comment l'apprentissage par transfert peut être utilisé pour classer les images et comment intégrer le modèle de classification d'images dans une application d'utilisateur final à l'aide de Python et TensorFlow. Le présentateur utilise un exemple d'application de commerce automobile pour illustrer les défis rencontrés lorsque les photos ne sont pas téléchargées du point de vue requis et que les étiquettes doivent être vérifiées manuellement, ce qui entraîne ennui et inefficacité. Il explique comment surmonter ces défis en entraînant un réseau de neurones existant à reconnaître les perspectives photographiques à l'aide de la technique d'apprentissage par transfert. Il montre ensuite comment tester et déployer le modèle dans le cloud Oracle à l'aide du projet open source GraphPipe. Enfin, le présentateur souligne l'importance de faire passer les modèles d'apprentissage automatique de la phase de laboratoire à la phase de production.

  • 00:00:00 Dans cette section, Jeroen Kloosterman explique comment l'apprentissage automatique peut être utilisé pour la classification d'images et comment intégrer le modèle de classification d'images dans une application utilisateur final. Il souligne les défis auxquels est confrontée une application de commerce automobile où les photos ne sont pas téléchargées du point de vue requis et les étiquettes doivent être vérifiées manuellement, ce qui entraîne ennui et inefficacité. Pour surmonter ces défis, Jeroen utilise la technique d'apprentissage par transfert en entraînant un réseau neuronal existant pour reconnaître les perspectives photographiques à l'aide de Python et Tensorflow. En retraçant uniquement les dernières couches du réseau de neurones pour reconnaître différentes perspectives, Jeroen Kloosterman entraîne avec succès le réseau à classer automatiquement les photos.

  • 00:05:00 Dans cette section, Jeroen montre comment tester le modèle, qui a été formé dans la section précédente, puis le déployer dans le cloud Oracle à l'aide du projet open source GraphPipe. Pour commencer, le script Python de réentraînement est appelé, qui utilise TensorFlow pour réentraîner le modèle. Après avoir configuré l'environnement sur le cloud Oracle, le présentateur écrit un exemple de client utilisant Python pour appeler le classificateur d'images. La classification renvoyée par le modèle peut ensuite être utilisée par le frontal pour afficher un message à l'utilisateur final de l'application de vente de voitures. Enfin, le présentateur souligne l'importance de faire passer les modèles d'apprentissage automatique de la phase de laboratoire à la phase de production.