Apprendre ONNX pour le trading - page 4

 

Discussion sur la feuille de route ONNX 2020 #3 20200916



Discussion sur la feuille de route ONNX 2020 #3 20200916

La discussion dans cette vidéo est centrée sur divers sujets liés à ONNX, notamment l'amélioration de la gestion des erreurs, l'ajout d'un champ de schéma de métadonnées prédéfini pour indiquer la création du modèle, le besoin d'optimisation physique de la quantification et la possibilité de mettre à jour les modèles ONNX de Model Zoo vers les versions les plus récentes. L'équipe prévoit de hiérarchiser ces sujets en fonction de leur impact et de leur coût et de travailler dessus après la version 1.8. De plus, le groupe envisage l'idée de créer différentes liaisons de langage pour l'ensemble d'outils ONNX, avec un intérêt particulier pour Java, afin de prendre en charge différentes plates-formes telles que Spark. Les intervenants discutent également de la possibilité de créer un wrapper Java autour du runtime ONNX.

  • 00:00:00 Dans cette section, l'orateur suggère de discuter de trois sujets avec la communauté : la gestion des erreurs, l'amélioration du zoo modèle et la mise en œuvre de davantage d'opérations ou d'opérateurs pour la quantification. Ils prévoient d'utiliser les trois prochaines sessions pour parler du coût et de l'impact de ces sujets et pour déterminer la hiérarchisation en fonction des éléments ayant le plus grand impact et un faible coût. Ils abordent également une question sur l'impact de ces sujets sur la version 1.8 et expliquent que la plupart de ces modifications seront apportées après la version 1.8. Un membre de la communauté suggère d'améliorer la gestion des erreurs afin que si le runtime rencontre des protobufs malformés, il ne se termine pas et renvoie à la place un code d'erreur ou lève une exception pour assurer une meilleure expérience utilisateur.

  • 00:05:00 Dans cette section, la discussion est centrée sur l'amélioration de la gestion des erreurs du code de chargement dans ONNX afin d'éviter les plantages et d'améliorer les fonctionnalités. L'équipe a effectué un fuzzing sur le code et a constaté que les modèles non fiables ont le potentiel de supprimer l'ensemble du processus, ce qui en fait une priorité absolue à traiter. Le runtime ONNX a un processus de vérification différent du vérificateur ONNX, et il n'est pas encore clair s'ils peuvent partager le même vérificateur. De plus, le sujet d'une meilleure gestion des erreurs lors des audits est soulevé, et l'équipe prévoit de donner suite à cette suggestion.

  • 00:10:00 Dans cette section, l'orateur discute de sa bibliothèque appelée Trivial qui interagit avec l'écosystème ONNX et sert les modèles ONNX. Ils proposent d'ajouter un champ de schéma de métadonnées prédéfini dans ONNX pour indiquer l'horodatage de la création du modèle, l'algorithme de formation utilisé pour le modèle et la bibliothèque source utilisée pour le générer. Ils suggèrent de définir des noms de clé standard pour le champ de métadonnées et de les saisir également. L'orateur pense qu'avoir un schéma pour le champ des métadonnées serait utile pour les bibliothèques et les autres utilisateurs desservant les modèles ONNX. La conversation passe ensuite à la nécessité d'étendre les tests de modèles pour couvrir tous les modèles de Model Zoo et fournir de bons exemples de haute qualité.

  • 00:15:00 Dans cette section, la discussion est centrée sur la nécessité d'une optimisation physique de la quantification ainsi que sur l'expansion du zoo de modèles d'ONNX pour inclure des modèles quantifiés. Il y a eu plusieurs demandes pour inclure des modèles quantifiés dans le zoo modèle, et l'équipe espère trouver des contributeurs. Ils mentionnent un blog où le modèle ONNX quantifié de Hugging Face a bien fonctionné, mais ils auraient besoin de la permission de Hugging Face pour le publier. Il a également été suggéré que le modèle supérieur de la bibliothèque de transformateurs pourrait être un exemple de quantification, et Microsoft et l'espace travaillent tous les deux dessus. De plus, il y a eu des discussions sur l'optimisation et certains ont convenu qu'il valait mieux laisser l'optimisation au temps d'exécution car cela dépasse le cadre des spécifications d'ONNX.

  • 00:20:00 Dans cette section, les participants discutent de la possibilité de mettre à jour les modèles ONNX de Model Zoo vers les versions les plus récentes à l'aide de l'outil Version Converter. Cependant, ils notent que le convertisseur de version n'est pas entièrement à jour et qu'il existe une certaine incertitude quant à savoir si la conversion est nécessaire, car ONNX prend en charge toutes les versions précédentes. Le groupe envisage également l'idée de différentes liaisons de langage pour l'ensemble d'outils ONNX, avec un intérêt particulier pour Java, afin de prendre en charge différentes plates-formes telles que Spark. L'ajout d'une API Java ou de liaisons faciliterait le chargement et la validation des fichiers de modèle et la réalisation d'un convertisseur à partir d'autres bibliothèques au format ONNX.

  • 00:25:00 Dans cette section, les conférenciers discutent de la possibilité de créer un wrapper Java autour du runtime ONNX, ce qui faciliterait les choses pour les projets d'apprentissage automatique basés sur JVM tels que Spark. Bien qu'il s'agisse d'une entreprise non triviale, l'utilisation des préréglages Java CPP pour générer automatiquement des stubs pourrait être un bon point de départ. La rétrocompatibilité est cruciale pour les grands projets comme Spark, et cibler Java 8 nécessiterait un travail important. Cependant, s'il y a suffisamment d'intérêt et de volonté de la part de la communauté pour contribuer, cela pourrait être une bonne chose à explorer.
 

Discussion sur la feuille de route ONNX 2020 #4 20200923



Discussion sur la feuille de route ONNX 2020 #4 20200923

La quatrième partie de la discussion sur la feuille de route ONNX couvre les sujets de la prise en charge des trames de données, du prétraitement, de la normalisation, du pipeline d'apprentissage automatique de bout en bout et des recommandations d'outils. La prise en charge des trames de données est considérée comme précieuse pour les modèles d'apprentissage automatique classiques et pourrait éliminer le besoin de prétraitement. La nécessité de capturer le prétraitement dans le modèle ONNX est mise en évidence pour améliorer les performances, en mettant l'accent sur la normalisation des catégories de haut niveau comme le traitement d'image. Le pipeline de bout en bout est classé comme une faible priorité, mais il est suggéré d'ajouter progressivement des composants au pipeline. La discussion se termine par une recommandation d'utiliser un outil pour faciliter la discussion et l'analyse des points de l'ordre du jour.

  • 00:00:00 Dans cette section, les intervenants discutent de la feuille de route ONNX et des fonctionnalités suggérées par la communauté. Jusqu'à présent, ils ont couvert trois sections, notamment le pipeline ML et le traitement des données, la définition d'opération ou IRS et la robotique de base. Le document de feuille de route comprend un tableau des fonctionnalités suggérées, qui sont classées en priorité élevée, moyenne et faible. Cependant, certains sujets sont trop génériques, ce qui rend difficile l'évaluation de leur importance. Les conférenciers prévoient de passer les 30 prochaines minutes à discuter des raisons pour lesquelles certaines de ces fonctionnalités ont reçu une note élevée et à recueillir les commentaires de la communauté sur les fonctionnalités les plus importantes.

  • 00:05:00 se demandait comment la feuille de route ONNX était priorisée, cette section de la vidéo discute de l'importance d'une fonction de prise en charge des trames de données et comment elle pourrait potentiellement résoudre d'autres problèmes au sein de la plate-forme. L'orateur explique que cette fonctionnalité serait précieuse pour les scientifiques des données et pourrait potentiellement nier le besoin d'une fonctionnalité de prétraitement. Ils mentionnent également la nécessité d'obtenir une estimation des coûts d'ingénierie pour chaque élément de la feuille de route afin de hiérarchiser efficacement les tâches. Les suggestions sont les bienvenues car c'est la première fois que la feuille de route est présentée de cette manière.

  • 00:10:00 Dans cette section de la discussion sur la feuille de route ONNX, l'importance de la prise en charge des trames de données pour les modèles d'apprentissage automatique est abordée. On pense que la prise en charge des trames de données concerne principalement les modèles d'apprentissage automatique classiques, plutôt que les DNN ou d'autres modèles. La trame de données est différente de la séquence en ce sens qu'il s'agit d'une collection hétérogène de tenseurs ou d'une table relationnelle avec des colonnes pouvant avoir différents types. L'importance de chaque fonctionnalité est évaluée en fonction de l'impact qu'elle aura, et les coûts d'ingénierie seront pris en compte. Il est suggéré qu'un commentaire par case soit fourni pour souligner pourquoi une fonctionnalité est d'importance élevée ou faible.

  • 00:15:00 Dans cette section, l'importance du prétraitement dans un modèle ONNX est discutée. La conversation souligne la nécessité de capturer toutes les étapes nécessaires dans le modèle ONNX plutôt que de s'appuyer sur des bibliothèques externes, en particulier dans le contexte de la formation, où le prétraitement peut avoir un impact significatif sur les performances. De plus, le prétraitement peut être utile du côté de l'inférence, en particulier si ce n'est pas dans un environnement basé sur Python. La discussion aborde également les défis de la normalisation du prétraitement en raison de la nature hétérogène des types de données. Bien que le prétraitement soit un sujet vaste et complexe, la conversation conclut qu'il est nécessaire de prendre en compte les opérateurs et les types manquants dans ONNX pour normaliser le prétraitement.

  • 00:20:00 Dans cette section, les conférenciers discutent de la vaste portée du prétraitement et de la manière dont il pourrait inclure non seulement le traitement lié à la vision, mais également les données audio. Bien qu'il soit important de prendre en compte le prétraitement, les conférenciers notent qu'il n'est peut-être pas nécessaire de prendre en charge tous les types de données et qu'au lieu de cela, la normalisation sur des catégories de haut niveau comme le traitement d'image pourrait être plus bénéfique pour les développeurs. Cependant, les conférenciers avertissent que même des tâches de prétraitement apparemment simples comme le redimensionnement d'image peuvent avoir de subtiles différences de cas de bord entre les bibliothèques, faisant de la normalisation un défi d'ingénierie. Néanmoins, la normalisation des tâches de prétraitement peut être utile, et les conférenciers suggèrent de collecter des étapes de prétraitement communes pour un examen futur.

  • 00:25:00 Dans cette section, les intervenants discutent de la priorité d'inclure le pipeline d'apprentissage automatique de bout en bout dans ONNX, certains déclarant qu'il s'agit d'une faible priorité compte tenu des autres éléments à traiter. Cependant, ils reconnaissent l'utilité d'avoir un exemple de bout en bout et une illustration de la façon dont ONNX peut être appliqué, en particulier lorsque ONNX Runtime est intégré au mix. L'idée d'ajouter progressivement des composants au pipeline est suggérée, en mettant l'accent sur la partie formation, en affinant ONNX et en ajoutant éventuellement le prétraitement au mélange. La discussion se termine par la recommandation d'utiliser un outil pour faciliter la discussion et l'analyse d'impact des points à l'ordre du jour.

  • 00:30:00 Dans cette section, l'orateur remercie tout le monde pour sa participation et informe le public qu'il essaiera de publier la discussion sur les réseaux sociaux et le site Web ONNX.
 

Discussion sur la feuille de route ONNX 2020 #5 20201001



Discussion sur la feuille de route ONNX 2020 #5 20201001

Au cours de la discussion sur la feuille de route ONNX, l'équipe ONNX a discuté de diverses fonctionnalités suggérées par les membres de la communauté et notées par différentes personnes, y compris le comité directeur. Si certaines fonctionnalités ont fait l'unanimité, d'autres divisent la communauté. L'équipe a discuté de la possibilité de remplacer ONNX IR par plusieurs IR et des bibliothèques d'optimisation IR centralisées. Ils ont également discuté de l'idée de centraliser les bibliothèques d'optimisation au sein d'ONNX et de la nécessité pour les opérations de mettre en œuvre une interface et un style de codage standard. L'équipe a également débattu de la possibilité d'avoir un runtime simple pour les modèles ONNX et l'utilisation d'opérations Python personnalisées pour les cas où le runtime ONNX n'est pas disponible. De plus, l'équipe a exploré la relation entre les opérations de prétraitement et l'utilisation de trames de données, prévoyant de transformer leurs idées en propositions concrètes pour les travaux futurs.

  • 00:00:00 Dans cette section, l'équipe ONNX discute de la feuille de calcul d'analyse d'impact qui a été mise en place pour recueillir les réflexions de différentes personnes sur ce qui est important pour le projet. Ils ont énuméré toutes les différentes fonctionnalités qui ont été suggérées et ont obtenu des scores de différentes personnes, y compris le comité de pilotage et d'autres membres de la communauté. Ils ont remarqué qu'il y avait certaines fonctionnalités où tout le monde semblait d'accord pour dire que c'était vraiment important ou pas important du tout, et d'autres où la communauté était divisée. Ils ont discuté de ceux qui ont été divisés et les prochaines étapes pour ceux qu'ils ont convenus étaient importantes. Ils ont également parlé de la mise en place de critères pour ce qui est considéré comme hautement prioritaire et de la façon dont cela dépend de qui est prêt à consacrer du temps à la mise en œuvre d'une fonctionnalité.

  • 00:05:00 Dans cette section de la discussion sur la feuille de route ONNX, les participants discutent de l'idée de changer ONNX IR en plusieurs IR et en bibliothèques d'optimisation IR centralisées. Il y a un débat sur la question de savoir si ces deux idées doivent être regroupées puisque l'optimisation et l'IR sont des questions distinctes. L'objectif d'avoir plusieurs IR est de simplifier et de concaténer des opérations plus simples tandis que les bibliothèques d'optimisation amélioreraient le noyau ONNX. Il y a une discussion plus approfondie sur ce que l'on entend par ONNX IR et des éclaircissements sont nécessaires. Les participants discutent également de la manière dont ces changements potentiels pourraient avoir un impact sur leurs scores actuels sur la feuille de route ONNX.

  • 00:10:00 Dans cette section, l'équipe discute de la possibilité de centraliser les bibliothèques d'optimisation dans ONNX, mais convient finalement que l'optimisation devrait faire partie de l'exécution et qu'elle est moins prioritaire que d'autres problèmes. Ils discutent également de la nécessité d'implémenter les opérations d'une manière spécifique, avec une interface et un style de codage standard, ce qui est déjà une exigence mais peut nécessiter des ajustements. Ils suggèrent que si quelqu'un propose un style spécifique, il peut être accepté s'il semble acceptable.

  • 00:15:00 Dans cette section, les intervenants discutent de l'idée d'avoir un runtime simple pour les modèles ONNX, ce qui soulève des inquiétudes quant à la complexité d'exiger un flux d'exécution et un IR interne pour traiter le modèle. Cependant, il est utile de pouvoir exécuter et évaluer des modèles ONNX pour tester et établir l'exactitude, en particulier pour révéler toute lacune dans les tests unitaires pour les opérateurs. Bien que la quantité d'efforts et de coûts qu'il faudrait pour implémenter un runtime simple puisse être discutable, le runtime ONNX a la capacité de brancher des opérations Python, qui pourraient être utilisées à cette fin.

  • 00:20:00 Dans cette section, les participants à la discussion sur la feuille de route ONNX ont évoqué la possibilité d'utiliser une opération Python personnalisée pour des cas spécifiques où le runtime ONNX n'est pas disponible . Ils ont discuté des limites de l'opération Python et de la nécessité d'une interface standard pour garantir la faisabilité. De plus, le groupe a discuté de la nécessité de davantage de capacités de prétraitement dans le graphe ONNX pour rendre les modèles plus autonomes et portables, en particulier pour le prétraitement basé sur l'image, comme la mise à l'échelle et la gestion des boîtes englobantes. Le groupe a noté que le prétraitement du texte, en particulier la tokenisation, est un problème plus compliqué et plus complet, mais il peut être en mesure d'abstraire certains scénarios de prétraitement courants.

  • 00:25:00 Dans cette section, les participants discutent de la relation entre les opérations de prétraitement et l'utilisation des trames de données. S'ils conviennent que le prétraitement et les trames de données sont liés, ils les considèrent comme des entités distinctes qui nécessitent différents types de travail. Le prétraitement est considéré comme un opérateur qui fonctionne par ligne sur une colonne d'un bloc de données, tandis que l'extraction du bloc de données elle-même mappe l'opérateur de prétraitement sur les lignes d'une colonne. Le groupe considère les deux comme étroitement liés et prévoit de transformer leurs idées en propositions concrètes pour les travaux futurs.
 

Discussion sur la feuille de route ONNX 2021 #1 20210908


Discussion sur la feuille de route ONNX 2021 #1 20210908

Au cours de la discussion sur la feuille de route ONNX, IBM Research a présenté sa proposition d'un nouveau cadre de pipeline d'apprentissage automatique qui convertit les modèles de prétraitement de données typiques sur Pandas Dataframe au format ONNX. Le framework, appelé Data Frame Pipeline, est open source sur GitHub et peut être défini à l'aide de l'API fournie, qui s'exécute sur Python pendant la phase de formation. Les intervenants ont également discuté de la nécessité de rendre ONNX visible dans des langages autres que Python, tels que Java, C# et C++, ainsi que de l'exportation des modèles ONNX et de leur émission à partir d'autres langages. De plus, ils ont discuté des fonctionnalités actuelles des convertisseurs ONNX Python et C++ et de la nécessité de fonctionnalités de portée, de nommage et de correction lors de l'écriture de modèles ONNX.

  • 00:00:00 Dans cette section, Takuya d'IBM Research présente sa proposition pour un nouveau cadre de pipeline d'apprentissage automatique avec de nouveaux opérateurs ONNX. La motivation de la proposition était due à l'incapacité des cadres de pipeline existants à représenter un modèle typique de prétraitement des données. Ils ont prototypé un nouveau framework de pipeline appelé Data Frame Pipeline sur Python, qui convertit les modèles de prétraitement de données typiques sur Pandas Dataframe au format ONNX. Ils ont protégé trois nouveaux opérateurs ONNX, dont un opérateur de date et deux opérateurs simples, des concaténateurs de chaînes et des séparateurs de chaînes. Le framework de pipeline est open source sur GitHub et peut être défini à l'aide de leur API fournie, qui s'exécute sur Python pendant la phase de formation. Le modèle est formé à l'aide des données issues du pipeline de trames de données, et leur cadre peut consommer des modèles d'apprentissage automatique ONNX déjà convertis.

  • 00:05:00 Dans cette section, l'orateur discute du format ONNX et comment il peut être utilisé avec le runtime ONNX, fourni par Microsoft. Ils mentionnent que dans leur prototype, ils ont implémenté 11 transformateurs de trames de données en Python et les ont mappés aux opérateurs ONNX, la plupart étant des mappages simples mais certains nécessitant une analyse et une conversion, comme le transformateur de fonction. Ils discutent également de leur approche pour générer des opérateurs ONNX avec des propriétés de corps chargées, plutôt que d'effectuer des opérateurs d'agrégation sur ONNX. L'orateur partage des résultats expérimentaux préliminaires qui montrent une accélération significative lors de l'apprentissage du prétraitement sur ONNX, avec une amélioration des performances de 300 fois pour l'encodage catégoriel. Ils comparent également la précision des prédictions et mentionnent leur proposition, ouvrant la parole aux questions et commentaires sur les opérateurs présentés.

  • 00:10:00 Dans cette section, Adam Pogba d'Oracle Labs suggère qu'ONNX devrait être rendu visible dans des langages autres que Python, car la fonctionnalité actuelle est entièrement encapsulée dans Python et il n'est pas clair si C++ est une cible valide pour la liaison. Pogba explique que le vérificateur de modèle doit être visible dans d'autres langages afin que les utilisateurs puissent interagir avec lui sans avoir besoin d'un environnement Python valide. De plus, Pogba mentionne que le runtime ONNX génère parfois des erreurs de segmentation lors de la consommation de modèles en raison de problèmes d'analyse, et le vérificateur de modèle pourrait être utilisé pour valider et résoudre facilement ce problème.

  • 00:15:00 Dans cette section, l'orateur discute de la fonctionnalité de base de la vérification de modèle et de la façon dont il serait utile d'être exposé dans d'autres langues. Bien qu'ils aimeraient l'avoir en Java, ils comprennent que tout le monde n'écrirait pas une API Java, donc une API C est une meilleure option pour que la plupart des langages se lient facilement. Cependant, il doit y avoir une cible stable et appropriée à laquelle les personnes peuvent se lier, et il n'est pas immédiatement clair si l'API C++ de l'un de ces outils est considérée comme une cible appropriée pour la liaison. L'orateur est disposé à participer à cet effort, mais cela ne vaut pas la peine d'essayer de galvaniser un grand effort à moins qu'il y ait un intérêt de la part de la communauté.

  • 00:20:00 Dans cette section, l'orateur discute de l'exportation de modèles ONNX et de leur émission à partir d'autres langages que Python, tels que C # et Java, avec un accent particulier sur ML.NET et Trivial Library. L'orateur insiste sur la nécessité d'une API commune que tous les projets pourraient utiliser pour générer des modèles ONNX, en particulier compte tenu des trois implémentations différentes actuellement présentes sans code partagé qui sont sujettes aux bogues. L'API commune assurerait un seul endroit pour mettre à jour et valider les nœuds et les graphiques, offrant une opportunité de partager la force et de faciliter l'émission de modèles ONNX par d'autres bibliothèques d'apprentissage automatique. L'orateur reconnaît que bien que cela puisse représenter beaucoup de travail à faire, l'effort partagé pourrait développer l'écosystème ONNX au-delà de Python.

  • 00:25:00 Dans cette section, les intervenants discutent des convertisseurs ONNX Python et C++ et de leurs fonctionnalités actuelles. Ils notent que la documentation ONNX n'est pas assez précise, ce qui rend difficile la compréhension de certaines fonctionnalités. Cependant, ils affirment que de nombreuses fonctionnalités nécessaires à l'exportation ONNX existent déjà dans ces convertisseurs, mais doivent être exposées de la bonne manière à d'autres projets. De plus, ils discutent de la nécessité de fonctionnalités de portée, de nommage et de correction lors de l'écriture de modèles ONNX. Enfin, ils suggèrent que les convertisseurs pourraient bénéficier d'être liés à l'architecture de l'infrastructure sig afin qu'ils puissent être utilisés facilement par différentes personnes.
ONNX Roadmap Discussion #1 20210908
ONNX Roadmap Discussion #1 20210908
  • 2021.09.08
  • www.youtube.com
1. Takuya Nakaike (IBM) – New operators for data processing to cover ML pipeline (eg: StringConcatenator, StringSplitter, Date)2. Adam Pocock (Oracle Labs) –...
 

Discussion sur la feuille de route ONNX 2021 #2 20210917



Discussion sur la feuille de route ONNX 2021 #2 20210917

Dans la discussion sur la feuille de route ONNX # 2 20210917, divers intervenants ont discuté de plusieurs domaines clés où ONNX doit être amélioré, notamment la quantification et la convivialité de la fusion, l'optimisation des noyaux pour des plates-formes matérielles spécifiques et l'ajout de fonctions locales de modèle à ONNX. D'autres sujets comprenaient des commentaires sur la prise en charge du pipeline de bout en bout, les défis rencontrés par les clients sur différentes plates-formes et les problèmes de conversion des graphiques GRU et LSTM. Certaines solutions suggérées comprenaient la fourniture de plus d'informations aux backends pour exécuter des graphiques pré-quantifiés, l'amélioration de l'interopérabilité des différents frameworks et l'inclusion d'un espace de noms lié au graphique d'origine pour permettre une solution à la fois générale et optimisée. En outre, les intervenants ont discuté de la nécessité d'un meilleur déploiement des packages pour une adoption plus large et de la possibilité de développer davantage de convertisseurs pour prendre en charge les modèles multimodaux.

  • 00:00:00 Dans cette section, Martin de Green Waves Technologies discute des deux domaines dans lesquels ONNX doit être amélioré, la quantification et la convivialité de la fusion. Pour la quantification, Martin suggère de fournir plus d'informations aux backends pour exécuter des graphiques pré-quantifiés, car il est impossible pour ONNX de suivre toutes les différentes façons dont les clients souhaitent implémenter des choses spécialisées. Pour faciliter cela, Martin suggère d'ajouter des informations min max, écart type et moyenne aux tenseurs, avec des informations supplémentaires telles que des statistiques de valeurs aberrantes, des informations canal par canal et des informations de distribution en tant que compléments possibles. Pour la convivialité de la fusion, Martin suggère d'améliorer l'interopérabilité des différents frameworks en fournissant de meilleures fonctionnalités d'importation/exportation, ce qui permettrait à ONNX d'identifier plus facilement les bons convertisseurs à utiliser lors de l'importation/exportation de différents graphiques.

  • 00:05:00 Dans cette section, l'orateur discute de l'utilisation actuelle des fonctions pour les opérateurs composés et de la difficulté d'optimiser les noyaux pour des plates-formes matérielles spécifiques lorsque les opérateurs sont décomposés. L'idée de regrouper les fonctions exportées sous un conteneur de niveau supérieur, éventuellement une fonction, et de mapper ce conteneur à un noyau optimisé sur un backend spécifique est suggérée. L'intervenant suggère également d'inclure un espace de noms lié au graphe d'origine, permettant à la fois une solution générale et une solution optimisée. L'ajout d'une possibilité d'importer des fonctions locales de modèle dans la dernière version d'ONNX est également mentionné.

  • 00:10:00 Dans cette section, les intervenants discutent de l'ajout de fonctions locales de modèle à ONNX, qui permet aux opérateurs de convertisseurs d'inclure un corps de fonction dans le proto du module en tant qu'espace réservé pour les opérateurs qui ne sont pas définis dans la norme ONNX. Cependant, les conférenciers notent également que ce devrait être une bonne pratique pour les convertisseurs d'étiqueter et de commenter ce qu'ils exportent d'une manière lisible par machine. Ils abordent également la manière dont l'optimisation peut affecter les conventions de dénomination et suggèrent de poursuivre la discussion sur le sujet soit dans le canal Slack, soit lors d'une réunion supplémentaire. La présentation suivante, qui concerne le profilage ONNX, est introduite.

  • 00:15:00 Dans cette section, un retour sur la prise en charge du pipeline de bout en bout est discuté, ONNX étant considéré comme un excellent choix pour les déploiements légers sur différents systèmes d'exploitation qui n'exigent pas de lourdes exigences d'écosystème. Les conférenciers expriment leur espoir de permettre aux opérateurs ONNX d'ONNX et d'ONNX ML d'exécuter non seulement des modèles, mais également des étapes de préparation des données, y compris d'autres types d'opérations de production de données. Ils affirment qu'un artefact ou un modèle de déploiement simplifié ou commun pourrait ajouter de la valeur, ainsi que la possibilité d'économiser des efforts et de la cohérence en se concentrant sur les fruits à portée de main autour des conversions standard.

  • 00:20:00 Dans cette section, l'orateur discute de certains des défis auxquels sont confrontés les clients sur différentes plates-formes et note la valeur potentielle de continuer à développer et à élargir la plate-forme ONNX. Ils abordent la question du cloisonnement et la nécessité de simplifier le déploiement des packages pour une meilleure adoption. La conversation comprend également les commentaires d'un participant qui confirme faire face à des problèmes similaires et propose des options pour fusionner le serveur Linux ONNX ou trouver de meilleures façons d'aider les utilisateurs à convertir le code personnalisé en ONNX. L'orateur aborde également le sujet du support multimodal et la nécessité de représenter un ensemble de modèles sous la forme d'un seul graphe ONNX. Ils discutent du besoin potentiel de plus de convertisseurs et suggèrent un mouvement général dans la bonne direction.

  • 00:25:00 Dans cette section de la discussion sur la feuille de route ONNX, l'équipe discute d'exemples de proxys pour les modèles de proxy afin de présenter les types de choses que les clients utilisent dans les environnements d'entreprise pour les types de cas d'utilisation sans image. Un membre de l'équipe mentionne un exemple de proxy pour un modèle de détection de fraude qui utilise des données ouvertes et qui est un modèle LSTM à deux couches relativement simple. L'équipe étudie la question plus avant et essaie d'obtenir plus d'exemples de modèles de proxy à proposer. Ils discutent également des problèmes de conversion incorrecte du GRU et du LSTM et mentionnent qu'ils aimeraient ajouter la prise en charge de tous les cas.

  • 00:30:00 Dans cette section, les conférenciers discutent des défis de la conversion des graphes GRU (unité récurrente fermée) dans un format lisible par le convertisseur d'un back-end. Ils mentionnent qu'il existe certains cas où la panne se produit déjà dans TensorFlow, mais il est difficile de la retransformer en GRU. Ils suggèrent d'utiliser le drapeau `--custom ops` et de créer un noyau qui fonctionne pour lui, avant de passer à l'idée d'en faire une fonction ou de le préserver en termes de sémantique. Ils notent que la meilleure option est d'indiquer explicitement si l'utilisateur veut qu'il soit décomposé ou non, et que l'utilisation d'opérations personnalisées pourrait être le seul moyen de le faire de manière robuste.

  • 00:35:00 Dans cette section, les intervenants discutent s'il est préférable d'avoir le corps complet à la fois dans ONNX et à un niveau élevé ou simplement d'avoir une base TF. Pour eux, la base TF serait suffisante car l'ONNX pourrait être utilisé comme preuve de résultat tout au long de la chaîne. Cependant, ils mettent en garde contre le fait de rendre ONNX centré sur TensorFlow, car ONNX devrait pouvoir provenir de différents endroits. Ils ont également évoqué l'attrait d'avoir un sous-graphe nommé avec une signification sémantique, le considérant presque comme un opérateur, qui doit être défini et généré par différents frontaux. Enfin, ils ont convenu d'avoir des présentations plus approfondies pour poursuivre la discussion avec des personnes plus informées.
ONNX Roadmap Discussion #2 20210917
ONNX Roadmap Discussion #2 20210917
  • 2021.09.17
  • www.youtube.com
1. Martin Croome (Greenwaves) – Add meta information in tensors2. Andrew Sica (IBM) – E2E pipeline with ONNX operators (include Keras, TF, Scikit-learn/Spark...
 

Discussion sur la feuille de route ONNX 2021 #3 20210922



Discussion sur la feuille de route ONNX 2021 #3 20210922

Au cours de la discussion sur la feuille de route ONNX, les intervenants ont abordé la nécessité de résoudre les problèmes avec l'outil de conversion de décalage d'ONNX afin d'améliorer l'adoption d'ONNX avec la dernière pile optimisée pour certains cas d'utilisation. Les intervenants ont proposé une meilleure couverture des modèles pour tester la conversion d'offset et la résolution des étapes intermédiaires qui manquent actuellement dans les tests d'opérateurs ou de couches. Ils ont également discuté de l'importance des métadonnées et de l'infrastructure d'apprentissage fédérée, y compris la nécessité d'inclure des métadonnées dans la spécification ONNX pour les annotations d'apprentissage par transfert et le concept d'apprentissage fédéré pour permettre la confidentialité, l'efficacité et l'utilisation des ressources informatiques. Les conférenciers ont encouragé la collaboration de la communauté et ont demandé des commentaires pour discuter plus avant et mettre en œuvre ces idées. La prochaine session est prévue le 1er octobre.

  • 00:00:00 Dans cette section, Manoj d'Intel aborde les lacunes dans les conversions de décalage pour les modèles ONNX qui ont causé des problèmes à de nombreux clients. Le problème de base réside dans la conversion de l'offset, car de nombreux clients ne vont pas continuer à mettre à jour l'offset une fois qu'ils ont déployé un modèle en production. Les clients sont confrontés à de multiples problèmes avec la conversion de décalage, tels que le passage de 7 à 10 à 13 pour la quantification ou l'impossibilité de convertir des décalages plus anciens en nouveaux pour tirer parti des performances et d'une bonne précision. De plus, le test unitaire ou tous les tests liés à chaque opérateur ou couche ne sont pas au point où les ISV sont satisfaits, et par conséquent, la plupart des clients sont toujours sur un décalage de 10 ou 9.

  • 00:05:00 Dans cette section, les conférenciers discutent de la nécessité de résoudre les problèmes avec l'outil de conversion de décalage d'ONNX, car il entrave l'adoption d'ONNX avec la dernière pile optimisée pour certains cas d'utilisation. Les développeurs qui intègrent l'IA et l'expédient dans leurs applications font part de leurs commentaires sur la nécessité de corriger les outils de conversion et de s'assurer qu'ils sont transparents. Ils partagent des exemples de problèmes auxquels ils ont été confrontés, tels que des étapes intermédiaires manquantes et des implémentations d'adaptateur manquantes, qui empêchent la transition vers des modèles de performances quantifiés. Les conférenciers soulignent la nécessité d'une meilleure couverture et de plus de modèles à tester pour assurer une meilleure adoption d'ONNX.

  • 00:10:00 Dans cette section de la vidéo, les conférenciers discutent de la nécessité d'approuver au moins un modèle défaillant d'une grande société de création pour de nouvelles améliorations dans ONNX. La discussion passe à l'amélioration de la conversion fp16, qui était l'une des lacunes entre différents écosystèmes comme le mobile et Windows, et comment elle a été corrigée récemment avec les outils de conversion Microsoft. La responsabilité de la conversion n'est pas claire, mais la discussion passe à la présentation suivante concernant le zoo modèle, où l'inclusion d'opérateurs phoniques pour la formation aidera à couvrir tous les modèles dans toutes les catégories. Ils proposent de commencer par des échantillons de formation de transformateur ou de PNL et de passer à d'autres modèles pour présenter l'infrastructure de formation distribuée et les techniques applicables à ONNX.

  • 00:15:00 Dans cette section, les conférenciers discutent de l'implication des modèles ONNX dans la formation, y compris l'importance de la formation consciente de la quantification et de l'utilisation de la précision mixte. Ils demandent le modèle fp32 d'origine pour mieux comparer la précision et présenter une utilisation de précision mixte pour la formation avec les modèles ONNX. Ils donnent la priorité à la contribution aux échantillons de transformateurs, mais demandent l'aide de la communauté pour contribuer à d'autres catégories populaires. Ils discutent également des propositions futures pour mieux refléter l'utilisation de la précision mixte dans un modèle dans le cadre des métadonnées. Enfin, Gabe Stevens présente une configuration de déploiement sur laquelle Intel commence à se pencher.

  • 00:20:00 Dans cette section, le conférencier discute du concept d'apprentissage distribué et fédéré et de ses avantages en termes de confidentialité, de latence, d'efficacité et d'utilisation des ressources informatiques. L'idée est de déployer des modèles sur une flotte d'appareils, où certains des appareils ont un groupe de formation qui enrichit le modèle en utilisant les données qu'ils voient. Les modifications proposées à ONNX lui permettraient de faciliter l'apprentissage fédéré, ce qui rendrait plus probable l'utilisation d'ONNX par les développeurs. L'ensemble minimal d'ajouts à l'API comprend un moyen d'interroger la pièce pour obtenir les paramètres du modèle local, de mettre à jour ces paramètres et d'informer le serveur de la façon dont le modèle a changé pour se consolider dans un nouveau modèle qui inclut les résultats du dispositifs.

  • 00:25:00 Dans cette section de la vidéo, l'orateur discute de l'idée d'inclure des métadonnées dans la spécification ONNX pour permettre le transfert d'annotations d'apprentissage et faciliter la formation d'un ensemble de données plus petit avec un modèle formé sur un ensemble de données plus grand. Cependant, la mise en œuvre d'un tel système implique de multiples décisions de conception qui doivent être laissées aux exécutants. Le conférencier suggère trois éléments qui pourraient faciliter l'infrastructure de base d'un tel système sans limiter la flexibilité nécessaire aux développeurs d'applications. Ils mentionnent également le besoin de cohérence dans le déploiement des versions de modèles sur une flotte d'appareils et l'importance de ne pas exiger que seuls les modèles ONNX soient autorisés à participer à un système d'apprentissage fédéré. L'orateur sollicite des commentaires pour savoir si les concepteurs de spécifications sont intéressés à prêter attention à ce type de configuration d'apprentissage et s'ils seraient ouverts à une discussion plus approfondie. Un autre orateur suggère d'essayer de le faire avec l'environnement d'exécution ONNX, car il prend en charge la formation et certaines preuves de concepts ont été conçues pour effectuer un apprentissage fédéré en l'utilisant.

  • 00:30:00 Dans cette section, l'orateur exprime son appréciation pour l'énorme effort mis dans la présentation et remercie la communauté pour ses questions. L'objectif de la présentation est de présenter des idées au SIG concerné pour une discussion plus approfondie et des implémentations éventuelles. La dernière session aura lieu le 1er octobre et le conférencier se réjouit de continuer à s'impliquer dans ces idées.
ONNX Roadmap Discussion #3 20210922
ONNX Roadmap Discussion #3 20210922
  • 2021.09.27
  • www.youtube.com
1. Rajeev Nalawadi & Manuj Sabharwal (Intel) – Address gaps with Opset conversions across broad set of models2. Rajeev Nalawadi (Intel) – ONNX model zoo exam...
 

Rencontre virtuelle de la communauté ONNX – mars 2021



000 ONNX 20211021 ONNX SC Bienvenue Progress Roadmap Release

L'atelier ONNX a commencé par une introduction, où les organisateurs ont souligné l'importance de la participation communautaire dans la croissance de l'écosystème ONNX. Ils ont également fourni un aperçu de l'ordre du jour, qui comprenait des mises à jour sur les statistiques ONNX, des présentations communautaires et les discussions sur la feuille de route du comité directeur d'ONNX. Les propositions de feuille de route visent à améliorer la prise en charge, la robustesse et la convivialité du framework ONNX, et incluent des opérateurs de prétraitement, des API C, un apprentissage fédéré et une meilleure intégration du traitement des données et de l'inférence. La récente publication de la version 1.10 des spécifications ONNX a également été discutée, et les participants ont été encouragés à poser des questions et à participer à la chaîne ONNX Slack pour poursuivre la conversation.

  • 00:00:00 Dans cette section de l'atelier, les organisateurs donnent un aperçu et souhaitent la bienvenue à tous les participants. Ils mentionnent la vaste gamme de produits disponibles pour l'IA et invitent les participants à y jeter un coup d'œil. Les objectifs généraux de l'atelier sont d'obtenir les dernières mises à jour sur ONNX, ses processus, sa feuille de route et ses versions, ainsi que d'apprendre des participants de la communauté sur la façon dont ONNX est utilisé. Ils encouragent les participants à partager leurs commentaires, à s'impliquer davantage dans le comité directeur ONNX, les SIG et les groupes de travail. Ils donnent un aperçu de l'ordre du jour, qui comprend la logistique du groupe de travail ONNX, la présentation sur l'état de l'État par Wenming Yi, suivie par Alex, et des présentations communautaires. Enfin, ils présentent des mises à jour passionnantes sur les statistiques d'ONNX, y compris une augmentation de près de 400 % des téléchargements mensuels à 1,6 million par mois, montrant une croissance saine de l'écosystème.

  • 00:05:00 Dans cette section, le conférencier discute des progrès et de la croissance de l'écosystème ONNX, en insistant sur l'importance des contributions des entreprises de la communauté. L'orateur mentionne le projet de bibliothèque Deep Java d'Amazon, qui a construit une bonne expérience pour la communauté Java et a connu une forte croissance. Plusieurs sociétés commerciales telles qu'IBM, AMD et Sony fournissent un support pour l'écosystème et aident ONNX à devenir la norme de l'industrie. L'orateur parle également de la gouvernance de la communauté et des nouveaux membres du comité de pilotage, et invite à participer aux discussions sur la feuille de route, à la chaîne Slack, aux questions-réponses sur GitHub et à la contribution à la documentation et aux blogs. L'orateur suivant poursuit avec la feuille de route, qui est cruciale pour aller dans la bonne direction et réduire les modèles ONNX aux batteries pour CPU et accélérateurs.

  • 00:10:00 Dans cette section, l'orateur aborde les discussions sur la feuille de route du comité directeur de l'ONNX, qui ont eu lieu au cours de l'été. Les propositions reçues des différents membres sont divisées en quatre groupes de trois propositions chacun, et chaque groupe est présenté aux Sigs respectifs pour approbation et mise en œuvre. Les propositions vont des opérateurs de prétraitement, des API C, de la vérification de modèle, de la prise en charge de l'émission de modèles dans d'autres langages, de l'ajout d'informations de métadonnées dans les tenseurs, d'une meilleure intégration du traitement des données et de l'inférence, de la définition de concepts pour l'apprentissage fédéré, de la définition des propriétés de traitement des métadonnées pour améliorer l'intégrité de données, de modèles, etc. L'objectif est d'améliorer la prise en charge, la robustesse et la convivialité du framework ONNX pour tous les utilisateurs.

  • 00:15:00 Dans cette section, l'orateur discute de la récente publication de la version 1.10 des spécifications ONNX et remercie les contributeurs pour leur travail acharné. Il y aura d'autres discussions et détails sur ce dernier changement sur le site Web next.ai. L'orateur invite le public à poser des questions dans le chat ou sur le canal Slack général ONNX pour poursuivre la conversation.
000 ONNX 20211021 ONNX SC Welcome Progress Roadmap Release
000 ONNX 20211021 ONNX SC Welcome Progress Roadmap Release
  • 2021.11.06
  • www.youtube.com
Event: LF AI & Data Day - ONNX Community Meeting, October 21, 2021Talk Title: ONNX Steering Committee (SC) Update - Host Welcome, Progress, Governance, Roadm...
 

Journée communautaire ONNX ! Diffusé en direct le 24 juin 2022

Cet événement est organisé en personne sur le tout nouveau campus Microsoft Silicon Valley le vendredi 24 juin.

L'événement couvrira les mises à jour de la communauté ONNX, les témoignages de partenaires et d'utilisateurs, et de nombreux réseaux communautaires.



Journée communautaire ONNX !

Bref résumé:

  • 00:00:00 - 01:00:00 La vidéo YouTube "ONNX Community Day !" discute des mises à jour et des améliorations du travail de la communauté ONNX sur l'interopérabilité et la flexibilité pour les développeurs travaillant avec des modèles d'apprentissage automatique. La communauté ONNX travaille sous gouvernance ouverte, et les trois catégories d'outils, création, exécution et visualisation, soutiennent l'engagement et l'utilisation d'ONNX par la communauté. La vidéo fournit des rapports d'avancement sur différents aspects, tels que les mises à jour des spécifications ONNX, les nouveaux opérateurs et les améliorations des convertisseurs. Le conférencier souligne également les avantages d'ONNX, y compris l'éventail plus large de clients pour les fournisseurs de matériel et l'accès à plusieurs cadres et accélérateurs matériels pour les utilisateurs. L'avenir d'ONNX inclut la notion de fonctions ONNX pour fournir une spécification exécutable.

  • 01:00:00 - 02:00:00 L'événement de la journée communautaire ONNX aborde plusieurs sujets liés à ONNX, notamment le zoo modèle ONNX et les didacticiels ONNX, qui fournissent des modèles d'apprentissage automatique préformés et des démonstrations à utiliser avec les modèles ONNX. La vidéo met en lumière le travail du groupe de travail sur le prétraitement ONNX, qui vise à normaliser les opérations de prétraitement des données pour améliorer le déploiement des modèles. Les conférenciers discutent également des bases de la quantification des réseaux de neurones et de la manière dont TensorRT prend en charge les réseaux quantifiés grâce à diverses fusions, y compris la quantification post-formation et la formation consciente de la quantification. Ils se penchent également sur les limites d'ONNX dans la représentation de la quantification de faible précision et suggèrent une stratégie pour étendre sa puissance de représentation en utilisant l'écrêtage pour induire une précision entre les nœuds quantifiés et déquantifiés. Enfin, la vidéo se penche sur une étude de cas sur la précision d'un modèle sauvegardé TensorFlow quantifié et affiné.

  • 02:00:00 - 03:00:00 La journée communautaire ONNX a présenté de nombreux intervenants discutant de l'importance des métadonnées dans les modèles d'apprentissage automatique et de la prise en charge de la machine virtuelle Java (JVM) dans ONNX. Les conférenciers ont mis l'accent sur l'utilisation de technologies basées sur le matériel pour protéger les données et ont souligné la compatibilité d'ONNX avec diverses bibliothèques d'apprentissage automatique, notamment DeepJ et Deep Java Library. Ils ont démontré l'utilisation de tampons d'octets pour une meilleure efficacité et ont discuté de l'importance de normaliser les métadonnées pour une IA responsable et explicable. Les présentations ont également présenté des exemples de réussite, notamment l'amélioration de l'environnement d'exécution d'une banque chinoise à l'aide d'ONNX et de l'environnement d'exécution ONNX. La communauté ONNX travaille sur la création, l'interrogation et le filtrage de métadonnées à partir du flux de travail des hubs avec prise en charge des métadonnées lisibles par machine dans ONNX. Dans l'ensemble, les présentations ont mis en évidence les points forts de la plateforme ONNX et l'engagement de la communauté dans son développement.

  • 03:00:00 - 04:00:00 La "Journée communautaire ONNX !" La vidéo couvre diverses mises à jour et fonctionnalités liées à l'écosystème ONNX. Cela inclut une discussion sur la simulation de la quantification pour réduire la baisse de précision entre les modèles quantifiés et pré-formés, le déploiement de modèles TensorFlow formés avec la boîte à outils de NVIDIA sur un graphique ONNX à l'aide de TensorRT, et les améliorations apportées à ONNX Runtime, telles que la forme optimisée du tenseur, les fournisseurs d'exécution et prise en charge des plates-formes mobiles. De plus, les mises à jour d'ONNX lui-même ont été discutées, y compris la prise en charge de la bibliothèque XNNpack et la création d'extensions d'exécution ONNX pour les tâches de pré/post-traitement. La vidéo présente également la bibliothèque Optimum, qui se concentre sur l'accélération des modèles de transformateurs de la formation à l'inférence.

  • 04:00:00 - 05:00:00 La journée communautaire ONNX comprenait des discussions sur divers sujets liés à l'environnement d'exécution ONNX et à ses cas d'utilisation. Les intervenants ont décrit les fonctionnalités du package d'exécution ONNX, du convertisseur PiTorch ONNX et des opérations personnalisées dans PyTorch. Ils ont également discuté de cas d'utilisation tels que la surveillance des processus et la numérisation du commerce, ainsi que des défis associés au déploiement de modèles et aux tests de compatibilité. Tout au long de l'événement, il a été souligné que le runtime ONNX peut aider à améliorer les performances et à réduire la taille du déploiement, mais la compatibilité et la sélection sont essentielles pour garantir une qualité et une vitesse constantes.

  • 05:00:00 - 06:00:00 Lors de la journée communautaire ONNX, plusieurs intervenants ont discuté de divers outils et techniques utilisés pour optimiser et déployer des modèles d'apprentissage automatique à l'aide du framework ONNX. NVIDIA a présenté son approche pour améliorer la qualité de l'image et la compatibilité des modèles en utilisant la division de blocs pour l'inférence, ainsi que ses outils spécifiques à ONNX pour le débogage et la modification des modèles. Qualcomm a expliqué comment ils ont intégré des accélérateurs d'IA dans leurs conceptions en utilisant ONNX comme format d'échange, et a présenté leur pile logicielle qui comprend le runtime ONNX et divers outils d'optimisation et de déploiement. De plus, plusieurs intervenants ont discuté de l'optimisation des modèles ONNX à l'aide de techniques telles que l'optimisation de module, le point de contrôle et l'inférence de forme. L'événement a mis en évidence la polyvalence et l'évolutivité d'ONNX pour divers cas d'utilisation d'appareils, et a encouragé les contributions à poursuivre la croissance du projet ONNX. La dernière partie se concentre sur la simplification du processus de déploiement des modèles d'apprentissage automatique sur Spark à l'aide de la proposition SPIP, qui vise à masquer les complexités de la conversion du traitement des onglets et de l'initialisation du modèle pour les développeurs. L'écosystème Ascend AI et ses processeurs ont été introduits, y compris la couche logicielle "Kung" qui fournit des API pour créer des applications et des services d'IA. La pile logicielle Khan a été discutée et la feuille de route pour l'ajouter en tant que nouveau fournisseur d'exécution pour le runtime ONNX a été présentée. L'événement s'est terminé par des tables rondes sur des sujets tels que ONNX pour Mobile et Edge, le déploiement de modèles, la formation et les opérations, les conversions et les opérateurs, suivis d'un happy hour et de commentaires d'enquête.

Le résumé détaillé de la chronologie :
  • 00:15:00 Créez le mode dans le framework que vous préférez, puis exportez votre modèle dans un format commun pouvant être utilisé par d'autres frameworks et outils. Cela permet une plus grande interopérabilité et flexibilité pour les développeurs travaillant avec des modèles d'apprentissage automatique. De plus, ONNX est avantageux pour les fournisseurs de matériel qui souhaitent créer des environnements d'exécution optimisés pour les modèles d'apprentissage automatique, car ils peuvent désormais se concentrer sur la prise en charge de l'ensemble commun d'opérateurs défini par ONNX plutôt que d'avoir à prendre en charge plusieurs cadres différents.

  • 00:20:00 Dans cette section, l'orateur discute des avantages de l'utilisation d'ONNX, qui permet d'accéder à plusieurs frameworks et accélérateurs matériels pour les utilisateurs, ainsi qu'à un plus large éventail de clients pour les fournisseurs de matériel. Le développement d'ONNX est effectué par la communauté sous une gouvernance ouverte, ce qui signifie qu'aucune entreprise ne le contrôle. L'orateur met également en lumière les groupes de travail qui incluent l'architecture et l'infra, les convertisseurs d'opérateurs, la zone modèle, les tutoriels et un nouveau groupe de travail de pré-traitement. L'orateur décrit ensuite les trois catégories d'outils, la création, l'exécution et la visualisation des modèles ONNX, et fournit quelques statistiques des six derniers mois, telles qu'une augmentation du nombre de PR, de contributeurs, d'étoiles et de téléchargements mensuels, renforcer l'engagement de la communauté et l'utilisation d'ONNX.

  • 00:25:00 Dans cette section, l'orateur discute des versions et des mises à jour qui ont eu lieu dans la communauté ONNX depuis la dernière mise à jour de la communauté. ONNX 1.11 a été publié plus tôt cette année, qui a introduit de nouveaux opérateurs et mis à jour certains opérateurs, y compris le hub de modèles ONNX, qui permet aux utilisateurs de tirer des modèles pré-formés de différents zoos modèles. De plus, des utilitaires tels que l'utilitaire de composition et le générateur de fonctions ont été introduits, ainsi que des corrections de bogues et des améliorations de l'infrastructure. ONNX 1.12 a été récemment introduit avec plus de nouveaux opérateurs, des améliorations de forme et d'inférence et la prise en charge de Python 3.10. L'orateur discute également du processus de feuille de route ONNX et de 12 demandes de feuille de route qui ont été sélectionnées pour progresser davantage et assignées aux groupes de travail. Ces demandes incluent la mise en place de nouveaux opérateurs pour le prétraitement des données, une API C pour ONNX, etc.

  • 00:30:00 Dans cette section de la vidéo, l'orateur discute des progrès réalisés pour répondre au besoin d'informations quantifiées plus structurées à travers le modèle et les tenseurs. La proposition de pipeline de bout en bout avec les opérateurs ONNX est en cours d'affinement car elle est identifiée comme une interception à long terme. Jusqu'à présent, des progrès ont été réalisés avec les convertisseurs, les opérations les plus performantes étant prises en charge. L'orateur aborde également différents domaines, tels que le besoin de plus de bénévoles car il s'agit d'un projet communautaire et une demande pour les entreprises d'avoir plus de personnes qui se joignent à l'effort. Le conférencier répertorie différentes ressources telles que le site Web, GitHub, les canaux Slack et le calendrier ONNX.

  • 00:35:00 Dans cette section, le conférencier discute des mises à jour et améliorations récentes d'ONNX. Il y a eu deux versions récentes avec diverses mises à jour telles que l'amélioration de l'influence de la puce pour les opérateurs et une gestion plus stable des entrées incorrectes et facultatives. De plus, le conférencier souligne l'ajout de deux versions importantes : Model Composer et Function Builder. Le Model Converter est également devenu plus stable et l'équipe prévoit de fournir un meilleur support pour les versions mixtes à l'avenir. Dans l'ensemble, il est impossible de lister toutes les améliorations apportées par les contributeurs, mais ils continuent de travailler à l'amélioration d'ONNX.

  • 00:40:00 Rama de Operator SIG a donné un résumé des modifications et mises à jour récentes apportées à la spécification ONNX. L'objectif d'Operator SIG est de faire évoluer l'ensemble des opérateurs qui composent la spécification ONNX, en ajoutant de nouveaux opérateurs et en clarifiant leurs spécifications. Dans les deux dernières versions, de nouveaux opérateurs tels que l'échantillonnage de grille et la normalisation de couche ont été introduits. Les opérateurs existants tels que scatter op ont été mis à jour pour prendre en charge les index en double, tandis que certaines opérations ont été étendues pour prendre en charge des types tels que b float 16 et des types facultatifs. Rama a également mentionné des plans pour promouvoir certains des nouveaux opérateurs pour qu'ils deviennent bientôt des fonctions.

  • 00:45:00 Dans cette section, l'orateur discute des plans pour l'avenir d'ONNX et du compromis entre avoir une spécification compacte et prendre en charge de nouveaux types de modèles qui nécessitent plus d'opérations dans la spécification. La solution à ce défi est la notion de fonctions ONNX, qui fournissent une spécification exécutable pour une opération et permettent un équilibre entre des exigences conflictuelles. L'orateur mentionne des plans pour réduire l'ensemble des opérateurs primitifs en les promouvant en fonctions et en permettant la création en Python à l'aide d'un sous-ensemble appelé ONNX-Crypt. Des exemples de fonctions, telles que la fonction d'activation de Jello et l'opération d'abandon, sont donnés pour illustrer comment l'utilisation du flux de contrôle facilite la spécification naturelle et compacte de leur sémantique.

  • 00:50:00 Dans cette section, Kevin Chen fait le point sur la signature du convertisseur et le travail effectué depuis la dernière réunion. Il discute des mises à jour du convertisseur frontal, y compris les convertisseurs PyTorch, TensorFlow et sk-learn vers ONNX. Pour le convertisseur PyTorch, la dernière version prend en charge les exportations ONNX jusqu'au décalage ONNX 16, et de nouvelles fonctionnalités ont été ajoutées, telles que la possibilité d'exporter des modules de réseau neuronal spécifiquement en tant que fonctions locales ONNX. Chen passe également en revue les mises à jour du convertisseur back-end, telles que la centralité ONNX et le convertisseur ONNX TensorFlow. Enfin, Chen présente la feuille de route de la signature du convertisseur et encourage les gens à s'impliquer.

  • 00: 55: 00 Dans cette section, l'orateur discute des mises à jour et des améliorations du convertisseur SK learn to ONNX, du convertisseur de clé de détecteur ONNX et du convertisseur ONNX TensorFlow. Il est recommandé aux utilisateurs de mettre à jour les dernières versions pour une meilleure expérience utilisateur lors de la conversion de modèles. La feuille de route du convertisseur comprend des objectifs tels que l'amélioration de l'outillage communautaire, la normalisation des fonctions utilitaires et l'amélioration de l'assistance aux opérateurs et à la compensation. Les utilisateurs sont encouragés à rejoindre le canal des convertisseurs ONNX sur Slack ou à s'abonner à la liste de diffusion ONNX Converter SIG pour s'impliquer dans la communauté et fournir des commentaires.

  • 01:00:00 Jackie de Microsoft présente le zoo modèle ONNX et les didacticiels ONNX. ONNX Model Zoo est une collection de modèles d'apprentissage automatique pré-formés et à la pointe de la technologie, principalement fournis par la communauté ONNX. Il existe actuellement 168 modèles dans le zoo, dont 40 modèles ONNX et 35 modèles ONNX basés sur la vision pour la classification d'images et la détection d'objets. Les didacticiels ONNX fournissent des documents et des cahiers démontrant ONNX en pratique pour différents scénarios et plates-formes. Le Model Zoo a connu plusieurs améliorations depuis le dernier atelier, y compris de nouveaux modèles quantifiés d'Intel et une couverture de test accrue avec des tests CI de routine, la correction d'ensembles de données de test cassés et la collaboration avec l'équipe Hugging Face pour créer une interface Web pour les modèles de démonstration.

  • 01:05:00 Les conférenciers discutent de la disponibilité de tutoriels et de démos pour l'utilisation d'ONNX, y compris un site Web qui permet un traitement facile des images et des modèles ONNX en écrivant seulement quelques lignes de code Python. Ils discutent également de la future feuille de route du zoo modèle ONNX, avec des plans pour permettre à plus de modèles d'être exécutés par ORT et pour incorporer plus de contributions, y compris des modèles quantifiés et des exemples de modèles de formation. En outre, ils mettent en évidence le travail du groupe de travail sur le prétraitement ONNX, qui vise à faciliter le prétraitement des données à utiliser avec les modèles ONNX.

  • 01:10:00 Dans cette section de la vidéo, l'orateur discute du manque de normalisation dans les pipelines de prétraitement des données, soulignant les différences entre les bibliothèques populaires comme Pillow et OpenCV dans le prétraitement des images. Ces disparités peuvent entraîner des problèmes de précision lors du déploiement de modèles sur différentes plates-formes. Le conférencier présente l'objectif du groupe ONNX de standardiser les opérations de prétraitement des données pour éviter toute ambiguïté et améliorer le déploiement des modèles. Le groupe s'est efforcé de développer une infrastructure pour inclure le prétraitement des données dans les modèles, tels que le développement d'utilitaires de composition et l'opérateur de carte de séquence pour le traitement par lots. Le groupe ONNX étudie également les moyens de baliser la partie pré-traitement d'un modèle pour l'identification par les back-ends. De plus, le groupe propose des extensions à l'opérateur de redimensionnement, notamment un filtre anti-crénelage facultatif et une politique de maintien des proportions.

  • 01:15:00 Les intervenants discutent de la mise en œuvre d'une proposition d'opération de recadrage central ou de chemin, qui offre un niveau d'abstraction plus élevé et s'appuie sur les opérateurs de bloc et de tranche existants. Ils encouragent les téléspectateurs à rejoindre leur chaîne Slack et leurs réunions mensuelles pour partager des idées. La présentation suivante est donnée par Joaquin Anton, qui récapitule l'objectif du groupe de travail sur le prétraitement ONNX et partage les travaux récents qu'ils ont effectués. Marvin d'Italie se présente également et présente son travail en tant que développeur et scientifique des données dans le domaine du traitement du langage naturel.

  • 01:20:00 L'orateur discute de l'importance de vérifier la documentation ONNX avant de commencer à travailler sur un projet. Ils expliquent que tous les modèles ne peuvent pas être facilement convertis ou optimisés pour ONNX, et qu'il est important de s'assurer que les fonctions d'exploitation requises pour le projet sont implémentées dans le cadre utilisé. De plus, l'orateur déconseille l'hypothèse selon laquelle les meilleures options de performances optimiseront toujours un modèle, car parfois ces options peuvent en fait réduire la précision. Dans l'ensemble, il est important d'examiner attentivement l'architecture du projet et de vérifier la documentation et les outils ONNX comme l'optimiseur ONNX pour éviter les erreurs et assurer un déploiement réussi sur le cloud ou les appareils.

  • 01:25:00 Dans cette section, Jiraj Perry de Nvidia discute des bases de la quantification des réseaux de neurones et de la manière dont TensorRT prend en charge les réseaux quantifiés via diverses fusions. Il explique que la quantification est le processus de conversion de valeurs continues en un ensemble discret de valeurs à l'aide de techniques de mise à l'échelle linéaires ou non linéaires, qui peuvent offrir une inférence plus rapide et une empreinte mémoire réduite. Cependant, il pourrait y avoir des compromis avec la précision. Jiraj mentionne également les différents schémas de quantification et l'importance des paramètres de quantification ou q params. Il présente ensuite la quantification post-formation (PTQ) et la formation consciente de la quantification (QAT) et comment ils peuvent déterminer q params.

  • 01:30:00 Dans cette section, la vidéo traite de la quantification post-formation (PTQ) et de la formation consciente de la quantification (QAT). PTQ implique l'exécution d'un modèle pré-formé sur un ensemble de données d'étalonnage et la collecte de statistiques par couche pour déterminer la plage dynamique de chaque couche pour le calcul des paramètres de quantification. QAT introduit des nœuds qdq au niveau des couches souhaitées et affine le graphique pour un petit nombre d'époques pour apprendre le modèle ou les paramètres de quantification. PTQ est généralement plus rapide et a moins de contrôle sur la précision finale, tandis que QAT est plus lent mais offre plus de contrôle de précision. La vidéo met également en évidence les différences d'approche entre la boîte à outils TF Mod de Google et la boîte à outils de quantification TF2 de NVIDIA construite sur TF Mod.

  • 01:35:00 Dans cette section, l'orateur discute des différences entre la boîte à outils de quantification de Nvidia et le mod tf en termes de placement des nœuds qdq. La boîte à outils de Nvidia place des nœuds qdq aux entrées et aux poids d'une couche dans le réseau, tandis que tf mod recommande de les placer aux poids et aux sorties d'une couche. L'orateur décrit également comment TensorRT optimise les modèles par le biais de fusions de couches, telles que la convolution de fusion ponctuelle et la fusion de mise en commun, ainsi que des fusions dédiées pour les nœuds qdq. De plus, l'optimiseur de graphe de TensorRT effectue une propagation qdq pour déplacer les nœuds q et dq afin de garantir que la partie maximale du graphe s'exécute en entrée. Les exemples de fusion présentés incluent la quantification de pool moyen et la fusion par addition par élément. Enfin, l'orateur examine la fusion de quantification dans un bloc résiduel.

  • 01:40:00 Dans cette section, l'intervenant explique l'importance d'ajouter qdq nodes au niveau de la branche identité afin d'obtenir les meilleures performances de Tensor RT lors des opérations de rechargement. Les fusions résultantes ressemblent à des nœuds dq des poids et des entrées propagés au-delà de l'annonce et fusionnés avec des nœuds q après la couche d'ajout. L'orateur insiste sur la nécessité de nœuds qdq dans le graphe d'origine pour obtenir les meilleures performances pour votre modèle et avertit que ne pas les utiliser correctement peut entraîner de mauvaises performances dans le modèle. L'orateur conclut en invitant à une discussion sur la façon d'insérer des nœuds qdq dans la boîte à outils TensorFlow.

  • 01:45:00 Dans cette section, l'orateur reconnaît une difficulté technique avec la navigation dans les diapositives et assure au public qu'elle sera corrigée sous peu. Ils passent ensuite à la discussion d'une étude de cas sur la précision après avoir obtenu un modèle sauvegardé TensorFlow quantifié et affiné. Le public est invité à poser des questions avant de faire une courte pause.

  • 01:50:00 Dans cette section, l'orateur discute du concept de quantification et de la façon dont il peut être utilisé pour représenter une faible précision dans la quantification des réseaux de neurones. La quantification est une combinaison de deux fonctions : la fonction quantifiée qui mappe les valeurs en virgule flottante sur des valeurs entières et la fonction quantifiée qui mappe les valeurs entières sur une représentation en virgule flottante. La combinaison de ces deux fonctions est appelée fausse quantification. Ce processus permet le mappage des représentations à une représentation entière uniquement. L'utilisation d'une quantification uniforme, en particulier avec une précision réduite, a permis 1,7 milliard d'échantillons par seconde avec moins de trois microsecondes de latence sur la plate-forme de football rf.

  • 01:55:00 Dans cette section, l'orateur discute des limites d'ONNX dans la représentation d'une quantification de faible précision, en particulier en dessous de huit bits, et suggère une stratégie pour étendre la puissance de représentation d'ONNX en tirant parti de l'écrêtage pour induire une précision entre les nœuds quantifiés et déquantifiés . Cette stratégie ajoute une fonction de découpage supplémentaire qui est prise en charge sur des limites entières et n'affecte pas la rétrocompatibilité avec les bibliothèques et outils existants. Cependant, cette stratégie ne s'étend que dans la mesure où le linéaire quantifié le permet en tant qu'opérateur, et elle présente certaines limites concernant les différents types d'arrondis. L'orateur mentionne également leurs efforts avec le dialecte de quantification sur l'exponentiation (tuonex), qui représente une fausse quantification dans un seul nœud tout en s'étendant à un ensemble plus large de scénarios avec des émissions d'entrée, des options de quantification binaire, etc. Ce format est exploité dans le cadre de leurs efforts de déploiement sur fpgas, et leurs outils, tels que q ONNX et nqcdq, s'intègrent aux bibliothèques de quantification existantes et ont été adoptés par la communauté fpga.

  • 02:00:00 Dans cette section, Daniel de Mithril explique comment ils ont développé une solution appelée "Blind AI" qui permet le déploiement de modèles ONNX dans des enclaves sécurisées qui exploitent le matériel pour protéger les données. En utilisant des technologies basées sur le matériel, cette solution permet d'isoler et de crypter le contenu de la mémoire de l'enclave, ce qui empêche toute tentative de vidage depuis l'extérieur. Les données sont déchiffrées à l'intérieur de l'enclave, et tout initié malveillant ne peut pas accéder aux données, ce qui est un énorme avantage pour le propriétaire des données en matière de confidentialité et de sécurité. Blind AI est une solution open source facile à intégrer, et il est facile pour le fournisseur d'IA de maintenir et de vendre cette solution.

  • 02:05:00 Dans cette section, l'orateur discute de la possibilité de déployer des modèles d'IA avec des garanties de progression, en utilisant le SDK Python pour télécharger en toute sécurité les modèles et envoyer des données pour analyse sans donner à des tiers l'accès aux données. L'expressivité d'ONNX est également mise en avant, ce qui lui permet de couvrir divers cas d'utilisation, dont le contrôle des bagages, l'analyse de documents médicaux et la reconnaissance faciale. Le haut-parleur présente également différents modèles utilisés dans la pratique et leur vitesse à l'intérieur et à l'extérieur de l'enclave, avec une latence supplémentaire raisonnable en raison de la protection qu'il offre. De plus, ONNX nécessite une base de code minimale, ce qui le rend meilleur pour des raisons de sécurité et capable de renforcer chaque opérateur, garantissant une utilisation sécurisée de l'enclave. La présentation se termine par des informations sur leur GitHub et sur la manière dont ils peuvent couvrir divers scénarios, ainsi que sur la possibilité d'approfondir les détails techniques de la sécurité.

  • 02:10:00 Dans cette section, l'orateur discute de la proposition d'activation des métadonnées d'IA lisibles par machine dans ONNX, qui implique le suivi de la provenance et d'autres caractéristiques pertinentes d'un modèle pour identifier comment il se déplace dans le temps et évolue en fonction d'un cas d'utilisation spécifique. La proposition a été initialement présentée au comité directeur de l'ONNX en octobre 2020, et maintenant l'équipe souhaite étendre davantage la proposition pour inclure la création, l'interrogation et la visualisation des métadonnées dans le cadre d'une conception de bout en bout pour les hubs de modèles et zoos. L'orateur souligne l'importance des métadonnées en tant que catalyseur clé d'une IA responsable et explicable et souligne son utilité pour réduire les modes de défaillance et identifier les points faibles des systèmes d'IA.

  • 02:15:00 Dans cette section de la présentation de la Journée communautaire ONNX, les conférenciers discutent de l'importance des métadonnées dans les modèles et du potentiel d'utilisation de RDF pour une approche plus lisible et standardisée de la représentation des métadonnées. Ils expliquent comment cette approche peut aider à établir des relations entre les entités, à maintenir la transparence et à suivre la provenance, en répondant aux questions sur les raisons pour lesquelles un modèle est moins précis que prévu. Les conférenciers discutent également de la puissance de l'interrogation des métadonnées à l'aide de SPARQL et expliquent comment les modèles avec des métadonnées au format RDF peuvent fournir des informations au-delà de ce qu'une simple carte modèle peut offrir.

  • 02:20:00 Dans cette section, l'orateur discute du vocabulaire de contrôle de la fournaise, un ensemble de principes directeurs pour rendre les données et les actifs numériques accessibles, interopérables et réutilisables. Les principes de Furnace ont été identifiés par la communauté du Web sémantique et incluent l'équité, la fiabilité et la durabilité. Les métadonnées codées RDF peuvent être interrogées à l'aide de l'ontologie Furnace pour découvrir des modèles adaptés aux tâches NLP, identifier les créateurs et la taille des modèles, et suivre l'empreinte carbone des modèles pour les classer et les trier. L'extensibilité de RDF et de son langage de requête, Sparkle, permet une extensibilité infinie au-delà du vocabulaire sélectionné par les autorités d'examen. Cela peut permettre le suivi de l'IA responsable et du courant de précision mixte.

  • 02:25:00 Dans cette section, les présentateurs discutent des capacités d'interrogation et de filtrage d'ONNX Community Day. Ils montrent comment l'auteur de métadonnées peut identifier des modèles formés avec des ensembles de données contenant des informations privées ou personnelles à l'aide de balises de métadonnées. Les présentateurs démontrent également comment les capacités de filtrage étendues permettent aux utilisateurs d'interroger des modèles avec une précision mitigée. Ils mettent en évidence la visualisation des profils de modèles et des techniques d'IA explicables pour afficher efficacement les métadonnées. Les présentateurs appellent à l'action pour envisager une conception concrète autour de la création et de la consommation de modèles qui couvre l'ensemble de la création, de l'interrogation et du filtrage des métadonnées à partir du flux de travail des concentrateurs avec prise en charge des métadonnées lisibles par machine dans ONNX. Ils préparent actuellement une implémentation de l'homme de paille et explorent les technologies de création de métadonnées.

  • 02:30:00 Dans cette section, Adam Pocock d'Oracle Labs explique l'importance de prendre en charge la machine virtuelle Java (JVM) avec ONNX. Alors que la plupart des applications ML sont écrites dans des langages autres que Python, tels que Java, il est crucial d'apporter l'apprentissage automatique à ces langages. L'API Java d'exécution ONNX a été développée par Oracle Labs pour intégrer l'apprentissage automatique en Java et dans d'autres langages, avec des fonctionnalités telles qu'un impact minimal sur les performances et une facilité de déploiement. Adam fournit également un exemple de code pour démontrer les similitudes entre l'API Java et d'autres API.

  • 02:35:00 Dans cette section, l'orateur explique comment alimenter les données et exécuter un modèle à l'aide du tenseur ONNX, une représentation de tampon d'octets pour un flux d'octets. Bien qu'il soit possible d'utiliser des tableaux réguliers en Java, l'orateur recommande d'utiliser des tampons d'octets en raison de leur chemin de copie zéro, ce qui permet une meilleure efficacité dans la gestion des données. L'orateur note également que les tableaux multidimensionnels de Java ne sont pas optimaux pour l'apprentissage automatique car ils ne sont pas plats et impliquent beaucoup de chasse aux pointeurs. L'orateur discute en outre des plans de mise à niveau vers une version plus récente de Java, d'ajout de nouvelles fonctionnalités et de construction pour correspondre à l'arborescence d'exécution ONNX. De plus, l'orateur présente une bibliothèque open source qui écrit des modèles ONNX à partir de Java, qui est disponible n'importe où sur la JVM.

  • 02:40:00 Dans cette section, les conférenciers discutent de la compatibilité de l'ensemble d'outils ONNX avec les nouvelles bibliothèques d'apprentissage automatique telles que DeepJ et de la manière dont il s'intègre au runtime ONNX pour fournir des performances de premier ordre. DeepJ crée une couche d'abstraction sur diverses bibliothèques d'apprentissage en profondeur, en extrayant toutes les bibliothèques nécessaires et en fournissant plusieurs backends d'opérateurs à utiliser par les moteurs d'apprentissage automatique, tels que Apache MixTape, Tensorflow, PyTorch, ONNX, Pedal, etc. Ils explorent également des moyens de normaliser les métadonnées dans cet ensemble d'outils pour émettre des formats de métadonnées standard tout en continuant à étendre l'énumération des opérateurs.

  • 02:45:00 Dans cette section, l'orateur discute des avantages de la bibliothèque Deep Java qui comprend un ensemble de modèles pré-formés qui couvrent des tâches telles que la classification d'images, la détection d'objets, l'analyse des sentiments et la reconnaissance d'actions. La bibliothèque est prête à l'emploi et a subi des tests rigoureux pour fonctionner avec le meilleur contrôle possible de la vitesse et de la mémoire, comme en témoigne son utilisation réussie avec DHL pendant plus de six mois sans aucune erreur. De plus, le haut-parleur partage plusieurs cas d'utilisation dans lesquels ONNX et l'environnement d'exécution ONNX ont été utilisés pour obtenir des gains de performances significatifs et réduire la latence. L'une des réussites concerne une banque chinoise qui a réussi à réduire la durée d'exécution de ses modèles OCR d'une seconde à moins de 400 millisecondes sur une seule image. De plus, le haut-parleur présente le concept Hybrid Engine, qui permet de charger deux moteurs en même temps et assure une transition en douceur entre eux.

  • 02:50:00 Dans cette section, l'orateur explique une méthode utilisant le tampon direct pour envoyer des pointeurs de Python directement au runtime ONNX, ce qui évite la copie de données et améliore les performances. Ils introduisent également ND Manager, une architecture arborescente implémentée dans la bibliothèque DeepDraw pour fournir des collections de mémoire plus rentables. L'orateur explique comment les clients peuvent passer de l'utilisation de PyTorch à l'exécution ONNX sans changer une seule ligne de code. Plus tard, le conférencier de Hype Factors parle de leur société d'intelligence médiatique et de la façon dont ils ont choisi de baser leur infrastructure autour de la JVM pour son expérience de développeur, son écosystème de composants réutilisables et sa grande évolutivité.

  • 02:55:00 Dans cette section, l'orateur aborde les aspects techniques de son site Web d'analyse des médias, y compris l'utilisation de la JVM pour alimenter la plupart des fonctionnalités du site Web et la migration vers un système qui enrichit principalement toutes les données entrantes. Avec quelques milliards d'inférences GPU par jour, les fonctionnalités du produit dépendent fortement de l'apprentissage automatique et de la gestion des modèles, qui sont devenus un élément essentiel pour que tout soit opérationnel, ce qui conduit à la criticité du processus. Les données englobent toutes sortes de formats, y compris HTML et PDF, et elles suivent leur exécution pour enrichir les données à la volée, y compris la reconnaissance des entités nommées, la saillance, le sentiment, etc. Il y a eu de nombreux défis en cours de route, notamment des erreurs de conversion et une rare fuite de mémoire dans DTL, qui a pris un certain temps à résoudre.
ONNX Community Day!
ONNX Community Day!
  • 2022.06.24
  • www.youtube.com
This event is being hosted in-person at the brand-new Microsoft Silicon Valley Campus on Friday, June 24th. The event will cover ONNX Community updates, part...
 

ONNX : passé, présent et futur - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft



ONNX : passé, présent et futur - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft

La vidéo « ONNX : passé, présent et futur » présente Jim Spohrer d'IBM et Prasanth Pulavarthi de Microsoft discutant de la croissance et de l'avenir du framework d'IA open source ONNX. Ils soulignent l'importance de normaliser le déploiement des modèles d'IA grâce au format d'échange fourni par ONNX, permettant une optimisation transparente sur différents cadres d'apprentissage en profondeur. En outre, ils discutent des développements récents de la capacité d'exécution ONNX à fonctionner avec divers accélérateurs matériels et proposent des conseils et des ressources pour démarrer avec ONNX. Les conférenciers répondent aux questions du public concernant les capacités d'ONNX, le déploiement commercial et les plans de certification à venir tout en exhortant les téléspectateurs à s'impliquer dans la communauté ONNX.

  • 00:00:00 Dans cette section, Jim Spohrer d'IBM et Prasanth Pulavarthi de Microsoft se présentent et donnent un aperçu du passé, du présent et de l'avenir d'ONNX, un framework d'IA open source. ONNX sert de format d'échange standardisé, permettant à différents outils d'interagir et d'optimiser l'inférence dans divers cadres d'apprentissage en profondeur. Les conférenciers invitent les téléspectateurs à s'impliquer dans la communauté ONNX en consultant les actualités et en obtenant des informations de démarrage sur le site Web ONNX, ainsi qu'en rejoignant la communauté sur GitHub et Gitter. Ils mettent également en évidence les récentes réunions de la communauté virtuelle, où les partenaires ONNX ont discuté de leurs projets et de la manière dont ils utilisent ONNX de manière innovante.

  • 00:05:00 Dans cette section, les conférenciers discutent de la croissance de la communauté ONNX et de son importance en tant que format d'échange parmi de nombreux projets open source dans le domaine de l'intelligence artificielle et de l'apprentissage automatique. Ils mettent en évidence les progrès de la communauté ONNX en termes de demandes d'extraction, de contributeurs, d'étoiles, de fourchettes, d'articles publiés et de zoo modèle, et encouragent davantage d'organisations et d'individus à s'impliquer. Les conférenciers présentent également ONNX chez Microsoft et son utilisation dans divers produits, soulignant la nécessité d'un format standardisé comme ONNX dans le paysage diversifié des solutions d'IA et de ML. Ils offrent des conseils sur la façon d'utiliser ONNX et accueillent les questions du public.

  • 00:10:00 Dans cette section, les conférenciers discutent des problèmes courants auxquels les développeurs sont confrontés lorsqu'ils tentent de déployer des modèles ML en production, tels qu'une latence d'inférence élevée, l'exécution de modèles sur des appareils périphériques et IoT, et la nécessité d'exécuter le même modèle sur différents matériel et systèmes d'exploitation. Pour résoudre ces problèmes, les conférenciers présentent le format ONNX et le runtime ONNX, qui permettent aux développeurs de représenter des modèles de divers frameworks dans un format commun et de les exécuter efficacement sur différentes plates-formes et accélérateurs. Le service vocal de Microsoft est donné comme exemple de la façon dont ONNX a amélioré l'agilité et les performances en production.

  • 00:15:00 Dans cette section, les conférenciers expliquent comment l'utilisation de l'environnement d'exécution ONNX peut apporter des avantages en termes d'agilité, de performances et de précision. Ils mentionnent des exemples de services cognitifs de Microsoft, tels que la synthèse vocale et la vision par ordinateur, ainsi qu'Azure Connect, un appareil doté de capacités de suivi du corps. L'aspect portabilité d'ONNX est également mis en évidence, car il permet d'utiliser le même modèle et le même code d'application sur différentes plates-formes et accélérateurs matériels, ce qui permet d'économiser du temps et des efforts de personnalisation. De plus, les intervenants abordent Windows ML, qui utilise le runtime ONNX comme format commun pour les modèles, ce qui facilite l'inférence d'apprentissage automatique dans le système d'exploitation Windows.

  • 00:20:00 Dans cette section, Jim Spohrer et Prasanth Pulavarthi discutent de certains des développements et réalisations récents de l'environnement d'exécution ONNX. L'une de ses caractéristiques les plus importantes est sa capacité à fonctionner avec différents types d'accélérateurs matériels, tels que les GPU ou les VPU. Il offre également une prise en charge multilingue, permettant aux utilisateurs de convertir des modèles formés dans des environnements pythonic en C#. Un exemple d'entreprise utilisant le runtime ONNX est un ISV qui forme ses modèles financiers en python à l'aide de scikit-learn mais utilise le runtime ONNX pour la production en C#. De plus, le runtime ONNX a récemment optimisé l'inférence et la formation de modèles de transformateurs tels que BERT et GPT2, ce qui se traduit par des accélérations significatives et des économies de coûts pour les utilisateurs.

  • 00:25:00 Dans cette section, les intervenants fournissent des informations sur la façon de démarrer avec ONNX et l'environnement d'exécution ONNX. Le zoo de modèles, accessible via une URL, propose une variété de modèles pré-formés à télécharger et à utiliser avec le runtime ONNX pour la vision, le langage et les modèles de parole à venir. De plus, les conférenciers encouragent la contribution des modèles au zoo modèle. Les modèles existants d'autres frameworks peuvent également être convertis ou exportés au format ONNX. Des frameworks tels que PyTorch, Keras, TensorFlow et Scikit-Learn ont des fonctionnalités d'exportation ONNX, et le runtime ONNX peut être installé sur Windows, Linux et Mac avec prise en charge de plusieurs langages de programmation.

  • 00:30:00 Dans cette section, les conférenciers discutent de l'accélération matérielle et de la manière dont différents accélérateurs matériels peuvent être intégrés via l'API appelée fournisseurs d'exécution. Le runtime ONNX a une implémentation CPU hautement optimisée ainsi qu'une implémentation CUDA, et des fournisseurs de matériel tels que Nvidia et Intel se sont associés à ONNX pour intégrer leurs optimisations au runtime ONNX. Cela garantit que tout modèle ONNX peut fonctionner avec une prise en charge complète de l'ensemble de la spécification ONNX, même si une opération particulière n'est pas prise en charge par un accélérateur spécifique. Les conférenciers encouragent les téléspectateurs à essayer ONNX et à partager les ressources disponibles dans la communauté ONNX, y compris la gouvernance ouverte, les SIG et les groupes de travail.

  • 00:35:00 Dans cette section, les intervenants discutent de la structure de gouvernance ouverte du projet ONNX, qui se compose de différents groupes d'intérêts spéciaux (GIS) et groupes de travail. Ils expliquent que les SIG et les groupes de travail se réunissent périodiquement et que tout est ouvert, et que les réunions sont toutes publiées sur le calendrier du calendrier AI. De plus, la structure de gouvernance ouverte décrit comment les contributeurs et les approbateurs sont sélectionnés, qui obtiennent respectivement des droits de vote sur différentes décisions ou ont des autorisations de fusion. En fin de compte, les intervenants encouragent les gens à s'impliquer dans le projet ONNX en rejoignant les différents canaux et groupes, en s'inscrivant à la liste de diffusion et en participant aux discussions.

  • 00:40:00 Dans cette section, les conférenciers répondent à diverses questions du public sur des sujets tels que les publications potentielles de livres sur le sujet d'ONNX, les capacités de journalisation de l'environnement d'exécution ONNX et les méthodes utilisées pour réduire le temps de formation à l'apprentissage automatique. Ils mentionnent également certains déploiements commerciaux de modèles basés sur ONNX dans divers scénarios tels que les services cognitifs Azure, les modèles de bureau et le moteur de recherche Bing.

  • 00:45:00 Dans cette section, les conférenciers ont discuté du déploiement commercial des modèles ONNX en dehors de Microsoft et ont mentionné qu'il existe un certain nombre de modèles de niveau de production utilisés par les sociétés financières et d'autres organisations sur Azure. Ils ont également répondu aux questions du public sur ONNX, notamment s'il prend en charge CNTK (oui, ils ont une exportation ONNX) et si vous avez besoin de connaissances sur les outils d'accélération matérielle (non, car le runtime ONNX fournit une couche d'abstraction). Ils ont également évoqué les avantages de l'utilisation d'ONNX dans la formation par rapport à la conversion à ONNX après la formation, expliquant que le temps d'exécution ONNX peut accélérer le processus de formation, ce qui se traduit par des modèles de transformateurs plus rapides. Enfin, ils ont exprimé leur volonté d'entendre parler des plans de certification potentiels et des différentes façons dont les gens utilisent ONNX.

  • 00:50:00 Dans cette section, les intervenants répondent à une question sur la capacité d'ONNX à prendre en charge tous les types de pipelines. Bien que ce ne soit pas à 100 % en raison de certaines lacunes existantes, les types de modèles courants sont généralement pris en charge et les utilisateurs peuvent se référer à ONNX Converter GitHub pour obtenir une liste des pipelines pris en charge ou l'essayer eux-mêmes pour voir si leur pipeline peut être entièrement converti. Les conférenciers concluent ensuite la session en remerciant les participants et en les encourageant à rejoindre la communauté ONNX.
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
  • 2020.09.11
  • www.youtube.com
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
 

Journée communautaire ONNX ! Diffusé en direct le 24 juin 2022

Cet événement est organisé en personne sur le tout nouveau campus Microsoft Silicon Valley le vendredi 24 juin.

L'événement couvrira les mises à jour de la communauté ONNX, les témoignages de partenaires et d'utilisateurs, et de nombreux réseaux communautaires.



Journée communautaire ONNX !

Bref résumé:

  • 00:00:00 - 01:00:00 La vidéo YouTube "ONNX Community Day !" discute des mises à jour et des améliorations du travail de la communauté ONNX sur l'interopérabilité et la flexibilité pour les développeurs travaillant avec des modèles d'apprentissage automatique. La communauté ONNX travaille sous gouvernance ouverte, et les trois catégories d'outils, création, exécution et visualisation, soutiennent l'engagement et l'utilisation d'ONNX par la communauté. La vidéo fournit des rapports d'avancement sur différents aspects, tels que les mises à jour des spécifications ONNX, les nouveaux opérateurs et les améliorations des convertisseurs. Le conférencier souligne également les avantages d'ONNX, y compris l'éventail plus large de clients pour les fournisseurs de matériel et l'accès à plusieurs cadres et accélérateurs matériels pour les utilisateurs. L'avenir d'ONNX inclut la notion de fonctions ONNX pour fournir une spécification exécutable.

  • 01:00:00 - 02:00:00 L'événement de la journée communautaire ONNX aborde plusieurs sujets liés à ONNX, notamment le zoo modèle ONNX et les didacticiels ONNX, qui fournissent des modèles d'apprentissage automatique préformés et des démonstrations à utiliser avec les modèles ONNX. La vidéo met en lumière le travail du groupe de travail sur le prétraitement ONNX, qui vise à normaliser les opérations de prétraitement des données pour améliorer le déploiement des modèles. Les conférenciers discutent également des bases de la quantification des réseaux de neurones et de la manière dont TensorRT prend en charge les réseaux quantifiés grâce à diverses fusions, y compris la quantification post-formation et la formation consciente de la quantification. Ils se penchent également sur les limites d'ONNX dans la représentation de la quantification de faible précision et suggèrent une stratégie pour étendre sa puissance de représentation en utilisant l'écrêtage pour induire une précision entre les nœuds quantifiés et déquantifiés. Enfin, la vidéo se penche sur une étude de cas sur la précision d'un modèle sauvegardé TensorFlow quantifié et affiné.

  • 02:00:00 - 03:00:00 La journée communautaire ONNX a présenté de nombreux intervenants discutant de l'importance des métadonnées dans les modèles d'apprentissage automatique et de la prise en charge de la machine virtuelle Java (JVM) dans ONNX. Les conférenciers ont mis l'accent sur l'utilisation de technologies basées sur le matériel pour protéger les données et ont souligné la compatibilité d'ONNX avec diverses bibliothèques d'apprentissage automatique, notamment DeepJ et Deep Java Library. Ils ont démontré l'utilisation de tampons d'octets pour une meilleure efficacité et ont discuté de l'importance de normaliser les métadonnées pour une IA responsable et explicable. Les présentations ont également présenté des exemples de réussite, notamment l'amélioration de l'environnement d'exécution d'une banque chinoise à l'aide d'ONNX et de l'environnement d'exécution ONNX. La communauté ONNX travaille sur la création, l'interrogation et le filtrage de métadonnées à partir du flux de travail des hubs avec prise en charge des métadonnées lisibles par machine dans ONNX. Dans l'ensemble, les présentations ont mis en évidence les points forts de la plateforme ONNX et l'engagement de la communauté dans son développement.

  • 03:00:00 - 04:00:00 La "Journée communautaire ONNX !" La vidéo couvre diverses mises à jour et fonctionnalités liées à l'écosystème ONNX. Cela inclut une discussion sur la simulation de la quantification pour réduire la baisse de précision entre les modèles quantifiés et pré-formés, le déploiement de modèles TensorFlow formés avec la boîte à outils de NVIDIA sur un graphique ONNX à l'aide de TensorRT, et les améliorations apportées à ONNX Runtime, telles que la forme optimisée du tenseur, les fournisseurs d'exécution et prise en charge des plates-formes mobiles. De plus, les mises à jour d'ONNX lui-même ont été discutées, y compris la prise en charge de la bibliothèque XNNpack et la création d'extensions d'exécution ONNX pour les tâches de pré/post-traitement. La vidéo présente également la bibliothèque Optimum, qui se concentre sur l'accélération des modèles de transformateurs de la formation à l'inférence.

  • 04:00:00 - 05:00:00 La journée communautaire ONNX comprenait des discussions sur divers sujets liés à l'environnement d'exécution ONNX et à ses cas d'utilisation. Les intervenants ont décrit les fonctionnalités du package d'exécution ONNX, du convertisseur PiTorch ONNX et des opérations personnalisées dans PyTorch. Ils ont également discuté de cas d'utilisation tels que la surveillance des processus et la numérisation du commerce, ainsi que des défis associés au déploiement de modèles et aux tests de compatibilité. Tout au long de l'événement, il a été souligné que le runtime ONNX peut aider à améliorer les performances et à réduire la taille du déploiement, mais la compatibilité et la sélection sont essentielles pour garantir une qualité et une vitesse constantes.

  • 05:00:00 - 06:00:00 Lors de la journée communautaire ONNX, plusieurs intervenants ont discuté de divers outils et techniques utilisés pour optimiser et déployer des modèles d'apprentissage automatique à l'aide du framework ONNX. NVIDIA a présenté son approche pour améliorer la qualité de l'image et la compatibilité des modèles en utilisant la division de blocs pour l'inférence, ainsi que ses outils spécifiques à ONNX pour le débogage et la modification des modèles. Qualcomm a expliqué comment ils ont intégré des accélérateurs d'IA dans leurs conceptions en utilisant ONNX comme format d'échange, et a présenté leur pile logicielle qui comprend le runtime ONNX et divers outils d'optimisation et de déploiement. De plus, plusieurs intervenants ont discuté de l'optimisation des modèles ONNX à l'aide de techniques telles que l'optimisation de module, le point de contrôle et l'inférence de forme. L'événement a mis en évidence la polyvalence et l'évolutivité d'ONNX pour divers cas d'utilisation d'appareils, et a encouragé les contributions à poursuivre la croissance du projet ONNX. La dernière partie se concentre sur la simplification du processus de déploiement des modèles d'apprentissage automatique sur Spark à l'aide de la proposition SPIP, qui vise à masquer les complexités de la conversion du traitement des onglets et de l'initialisation du modèle pour les développeurs. L'écosystème Ascend AI et ses processeurs ont été introduits, y compris la couche logicielle "Kung" qui fournit des API pour créer des applications et des services d'IA. La pile logicielle Khan a été discutée et la feuille de route pour l'ajouter en tant que nouveau fournisseur d'exécution pour le runtime ONNX a été présentée. L'événement s'est terminé par des tables rondes sur des sujets tels que ONNX pour Mobile et Edge, le déploiement de modèles, la formation et les opérations, les conversions et les opérateurs, suivis d'un happy hour et de commentaires d'enquête.


Le résumé détaillé de la chronologie :

  • 03:00:00 Dans cette section, un conférencier discute de son expérience avec l'écosystème ONNX et des défis auxquels il a été confronté lors de son utilisation. Ils parlent de la nécessité de faire correspondre les pilotes et de mettre en place une surveillance pour s'assurer que le système continue de fonctionner correctement. Ils mentionnent également leurs plans futurs pour augmenter l'efficacité du GPU, ajouter plus de modèles et améliorer la robustesse globale du système grâce à des tests accélérés par le GPU. L'orateur invite toutes les questions et discussions sur ce cas d'utilisation et profite de l'occasion pour remercier tout le monde. La vidéo reprendra après le déjeuner avec une rediffusion de la conférence NVIDIA.

  • 03:25:00 Je suis désolé, mais cet extrait de transcription n'est pas lié à la "Journée communautaire ONNX !" vidéo. Pouvez-vous me fournir un autre extrait de la vidéo pour que je résume ?

  • 03:30:00 Dans cette section de la vidéo, les conférenciers expliquent comment simuler la quantification et stocker les paramètres q finaux afin de réduire la chute de précision entre le modèle quantifié et le modèle pré-entraîné. Une façon d'effectuer une formation prenant en compte la quantification consiste à utiliser la boîte à outils d'optimisation de modèle TensorFlow ou la boîte à outils créée par Nvidia, qui offre des fonctionnalités telles que la quantification des couches à l'aide du nom de couche et des attributs de classe et la quantification basée sur des modèles. Les intervenants notent que la boîte à outils de Nvidia utilise une variante de quantification symétrique qui offre les meilleures performances pour un modèle QAT sur un GPU utilisant une extension.

  • 03:35:00 Dans cette section, nous découvrons le processus de déploiement d'un modèle formé à l'aide du kit d'outils de quantification TF2 de NVIDIA sur un graphe ONNX à l'aide de TensorRT. Le flux de travail consiste à quantifier un modèle TensorFlow 2.0 pré-formé avec la boîte à outils de NVIDIA, à l'ajuster pour un petit nombre d'époques et à le convertir en un graphique ONNX à l'aide du convertisseur TF2ONNX. Ensuite, les API de TensorRT sont utilisées pour générer TensorRT Engine à partir du graphique ONNX. Nous voyons que la formation sensible à la quantification offre une alternative pour déployer des réseaux de neurones profonds avec une précision moindre, et les modèles qrt pourraient être moins sujets à une baisse de précision lors de l'inférence par rapport aux modèles ptq en raison de paramètres de modèle affinés. Enfin, les expériences avec les modèles ResNet montrent que la précision INT8 est comparable à la précision de base FP32, et la latence est plus de 10 fois plus rapide par rapport à leurs homologues FP32.

  • 03:40:00 Dans cette section, Ryan Hill, un ingénieur logiciel travaillant sur le runtime ONNX depuis sa création, parle des fonctionnalités et de l'utilisation du runtime ONNX. Le runtime ONNX est un runtime pour les modèles ONNX, entièrement multiplateforme et avec des liaisons de langage pour de nombreux langages de programmation. Microsoft l'utilise dans tous ses principaux groupes de produits tels que Windows, Office et Azure, alors qu'il existe plus de 160 modèles en production avec le runtime ONNX. Hill passe par de nouvelles fonctionnalités notables dans les versions récentes, notamment la possibilité d'utiliser des noyaux opérationnels comme bibliothèque mathématique et la possibilité d'alimenter des initialiseurs externes entièrement en mémoire. Les améliorations de performances incluent l'ajout d'un optimiseur de transposition, l'optimisation des allocations de tas et la réduction du besoin de transformations de mise en page.

  • 03:45:00 Dans cette section, les conférenciers discutent des améliorations apportées à ONNX Runtime, y compris l'optimisation de la forme du tenseur et des classes de vecteurs en ligne, entraînant une réduction des allocations de tas et une amélioration des performances. Ils expliquent également les avantages des fournisseurs d'exécution, qui permettent à ONNX Runtime de fonctionner de manière optimale sur diverses possibilités matérielles, y compris une implémentation CPU complète comme option de secours. En outre, ils mettent en évidence les mises à jour apportées pour prendre en charge les plates-formes mobiles et l'amélioration de la convivialité pour les développeurs mobiles, y compris l'utilisation de la conversion NHWC au moment de l'exécution et l'ajout de packages Android et iOS avec les versions complètes d'ONNX Runtime. Enfin, ils présentent ONNX Runtime Web, soutenu par la même base de code de base que ONNX Runtime et avec un binaire plus petit, et discutent de l'introduction d'une bibliothèque JavaScript appelée ONNX Runtime Common.

  • 03:50:00 Dans cette section, les conférenciers discutent des mises à jour d'ONNX, y compris la prise en charge de la bibliothèque XNNpack et la prochaine prise en charge d'OpenGL dans la version 1.12. Ils relèvent également les défis liés au pré et post-traitement des données et à la création des extensions d'exécution ONNX, qui fournissent une bibliothèque d'opérations personnalisées partageables axées sur le travail de pré-post-traitement du modèle. Ces extensions incluent des fonctions potentielles telles que la conversion de texte en majuscules ou en minuscules et la séparation des valeurs positives et négatives en tenseurs séparés. La bibliothèque actuelle est principalement axée sur le traitement du langage naturel et les domaines de la vision et du texte, mais il est prévu que cela évoluera à mesure que de nouveaux besoins seront identifiés. Ils présentent également Jeff de Hugging Face, qui discute de l'intégration d'ONNX avec la bibliothèque Optimum pour accélérer les modèles Transformers.

  • 03:55:00 Dans cette section, l'orateur discute de la puissance des modèles de transformateurs et de la manière dont ils sont utilisés par de grandes entreprises comme Tesla, Gmail, Facebook et Bing pour faire des milliards de prédictions chaque jour. Ils expliquent que l'objectif de Hugging Face est de rendre ces modèles accessibles à toutes les entreprises du monde grâce à des modèles et des outils pré-formés facilement accessibles pour les utiliser. Ils discutent également de leur objectif de créer une communauté qui partage et améliore ce qui est possible, avec plus de 1300 contributeurs open source à leurs bibliothèques et un accès à plus de 50 000 modèles affinés pour chaque tâche et langage d'apprentissage automatique. L'orateur présente ensuite sa bibliothèque Optimum, qui se concentre sur l'accélération des modèles de transformateurs de la formation à l'inférence, en relevant les défis des ressources de calcul, de mémoire et de bande passante qui accompagnent l'augmentation des paramètres de modèle.


  • 04:00:00 Dans cette section, l'orateur discute du package d'exécution ONNX dans la boîte à outils Optimum et de sa capacité à accélérer la formation et l'inférence des modèles de transformateur. Ils introduisent la nouvelle classe d'entraînement appelée ORT Trainer qui permet aux utilisateurs d'obtenir une intégration native de la vitesse profonde et d'atteindre jusqu'à 40 % d'accélération dans le débit de l'entraînement. Pour l'inférence, il existe trois classes principales : ORT Optimizer, RT Quantizer et RT Model for Task. Avec ces classes, les utilisateurs peuvent simplifier le graphique de leur modèle, optimiser les pondérations et bénéficier de toute l'accélération matérielle offerte par le runtime ONNX. L'orateur mentionne également les efforts de collaboration visant à permettre l'optimisation du modèle de séquence à séquence grâce à ces classes de pipeline d'inférence accélérée optimales.

  • 04:05:00 Dans cette section, deux présentateurs discutent de la communauté ONNX, en se concentrant sur le processus d'optimisation et de conversion des modèles ONNX. Le premier présentateur présente la bibliothèque optimale, qui permet aux utilisateurs d'optimiser et de quantifier leurs modèles, d'augmenter le débit et de réduire la latence tout en conservant la précision de leurs modèles. Le deuxième présentateur discute de l'architecture et du flux du convertisseur PiTorch ONNX, expliquant ses étapes de conversion des modèles PiTorch en représentation intermédiaire de la torche, en utilisant des optimisations de graphes et en convertissant en ONNX IR. Ils mettent également en évidence certaines fonctionnalités intéressantes, telles que la prise en charge de l'exportation d'un modèle quantifié au format QTQ et la capture des boucles de flux de contrôle python et des ifs dans les modèles ONNX en tant que boucle ONNX et noeuds ONNX if.

  • 04:10:00 Dans cette section, l'orateur discute de différentes manières d'exporter des opérations personnalisées dans PyTorch, y compris l'écriture d'une fonction d'autographe Torch personnalisée et la définition des méthodes avant et arrière. L'orateur explique comment utiliser l'API pour enregistrer une fonction symbolique personnalisée afin d'indiquer à l'exportateur comment l'exporter en tant qu'opérations ONNX standard ou en tant qu'opérations personnalisées dans un domaine personnalisé. Ils introduisent ensuite la fonction de fonction locale ONNX qui permet aux utilisateurs de spécifier une certaine classe de module Torch ou un type de nœud en tant que fonction pour que le back-end puisse toujours exécuter le modèle sans avoir de noyau spécifié. Enfin, le conférencier mentionne que l'équipe continuera de se concentrer sur la prise en charge d'un plus grand nombre de modèles et sur l'amélioration de l'expérience de diagnostic des pannes.

  • 04:15:00 Dans cette section, un cas d'utilisation est discuté où un système de caméra existant est réutilisé pour détecter les employés pénétrant dans des zones dangereuses à proximité de machines en mouvement. En utilisant un modèle ONNX open source pour détecter les personnes et l'outil Sasebo Stream Processing de SAS pour l'analyse en temps réel et le traitement des événements, une solution a été développée qui pourrait traiter des millions d'événements par seconde et être adaptée à des systèmes plus importants. La solution a également été mise à disposition via un studio graphique et un ordinateur portable Jupyter pour que les scientifiques des données développent des modèles et le runtime ONNX a été intégré dans Sasebo Stream Processing. Pour assurer la résilience, une solution modulaire a été suggérée qui divise le traitement de l'image en plusieurs étapes avec Kafka comme file d'attente tampon.

  • 04:20:00 Dans cette section, l'orateur décrit un modèle de traitement de vision par ordinateur qui a été déployé à la périphérie en utilisant Kubernetes comme mécanisme de déploiement. Le modèle comprend un processus d'ingestion avec un module pour chaque caméra, un bus Kafka pour les données vidéo et un module de traitement qui utilise un modèle de vision par ordinateur pour créer des résultats. Les résultats sont ensuite envoyés à un troisième module qui traite les données de capteur supplémentaires du client pour comprendre si l'équipement en cours d'enregistrement est actif ou non. De plus, le conférencier explique que cette architecture est actuellement en production dans l'une des installations de son client et que l'intégration de l'environnement d'exécution ONNX garantit un délai de rentabilisation optimal grâce aux modèles préformés disponibles au public et à la réutilisation des actifs du client. La résilience de l'architecture est un autre avantage clé et est assurée grâce à Kubernetes et Kafka.

  • 04:25:00 Dans cette section, Matthew de Bazaar Voice discute de la numérisation du commerce et de la façon dont les marques et les détaillants sont passés à l'espace de stockage infini sur Internet. Avec l'ampleur des données dont disposent les entreprises de commerce électronique, la création d'informations percutantes à l'aide de l'IA peut changer la donne. Matthew illustre cela en utilisant Bazaar Voice comme exemple, qui gère et traite les données de plus d'un milliard d'acheteurs par mois et fournit plus de 8 milliards d'avis au total pour les marques et les détaillants. En se concentrant sur le partage des avis sur les produits entre les catalogues, le concept de correspondance des produits joue un rôle central. Matthew explique comment un modèle d'apprentissage automatique est conçu pour effectuer la mise en correspondance des produits en comparant des identifiants de produit uniques, mais tout reste est effectué manuellement. Pour implémenter une solution qui génère une réelle valeur métier, l'approche idéale est une solution légère et économique qui maintient les performances.

  • 04:30:00 Dans cette section, le conférencier aborde différentes options pour déployer des modèles d'apprentissage automatique, notamment des serveurs virtuels, des plates-formes cloud ML et des fonctions sans serveur telles qu'Azure Cloud Functions ou AWS Lambdas. Après avoir évalué les avantages et les inconvénients de chaque option, le conférencier et son équipe ont décidé de développer un modèle scikit-learn exporté au format ONNX, de le construire avec Python, de le déployer sur une fonction sans serveur et d'utiliser un environnement de nœud pour exécuter l'inférence sur ONNX. Durée. L'orateur mentionne également qu'ONNX aide à réduire la taille de déploiement des modèles, mais souligne les défis de travailler dans les délais d'expiration et les limites de taille de déploiement des fonctions sans serveur, ainsi que les coûts et les limites de taille des packages Python.

  • 04:35:00 Dans cette section, Nikhil Calro, ingénieur logiciel senior chez Adobe, aborde les défis uniques liés à l'apprentissage automatique hautes performances pour les flux de travail vidéo et audio. Ces défis incluent les ressources limitées, l'intensité des données et les exigences de calcul intensif. Pour résoudre ces problèmes, Adobe utilise une combinaison de technologies et de pipelines pour accélérer les flux de travail, y compris le runtime ONNX pour alimenter les flux de travail d'apprentissage automatique dans Windows et le fournisseur d'exécution Direct ML pour l'accélération GPU sur les plates-formes Windows. Calro note également que les flux de travail d'apprentissage automatique d'Adobe visent à permettre aux créateurs de consacrer plus de temps au processus de création et moins de temps aux tâches redondantes et répétitives.

  • 04:40:00 Dans cette section, le conférencier explique comment les applications Creative Cloud d'Adobe ciblent l'ensemble de l'écosystème Windows en tant que plate-forme unique et doivent fournir la parité des fonctionnalités et des fonctionnalités sur tous les principaux IHV prenant en charge Windows, tels que Nvidia, Intel et AMD. Ils ont choisi le fournisseur d'exécution DirectML pour permettre l'utilisation de matériel spécifique au fournisseur, comme les cœurs de tenseur sur les GPU Nvidia, car il laisse le matériel libre pour d'autres flux de travail de calcul asynchrones. Ils ont également effectué des optimisations de performances supplémentaires en créant un cadre au-dessus du runtime ONNX et en essayant d'assembler les demandes d'inférence dans des flux de travail par lots pour réduire les conflits de ressources avec le GPU et minimiser la surcharge du pilote. Ils donnent un exemple du flux de travail Scene Edit Detection, qui est un flux de travail extrêmement gourmand en ressources, mais ils sont capables d'exécuter l'intégralité du pipeline de bout en bout, du décodage à l'inférence, en environ 10 secondes ou six fois en temps réel.

  • 04:45:00 Dans cette section, le conférencier explique comment les activations de performances fournies par ORT et le fournisseur d'exécution Direct ML ont permis d'utiliser des GPU haut de gamme modernes pour activer les flux de travail basés sur l'apprentissage automatique pendant le rendu GPU. Ils prévoient de faire évoluer leur pipeline pour qu'il ressemble davantage au pipeline de droite, en minimisant les transferts vers le CPU et en conservant autant de choses que possible sur le GPU ou le matériel adressable par GPU. Cela deviendra encore plus facile à mesure que davantage de leurs calculs GPU passeront à DX12, supprimant la surcharge associée à OpenCL et CUDA à DX12 dans leur OP.

  • 04:50:00 Dans cette section, Alexander Zang, développeur de logiciels chez Topaz Labs, discute des défis liés au déploiement de modèles d'image sur les ordinateurs de bureau et les ordinateurs portables. Il explique que la partie essentielle de ce déploiement consiste à s'intégrer dans un flux de travail existant, à obtenir les performances attendues sans configuration manuelle et à fournir des modèles d'image de haute qualité. Alexander explique que contrairement au déploiement de serveur, le déploiement de bureau manque de contrôle sur le système, en particulier avec différents GPU de différents fournisseurs avec différents niveaux de contraintes de mémoire et de réactivité. Sa solution consiste à s'appuyer sur différentes bibliothèques d'inférence pour chaque fournisseur de matériel, fournies par ONNX. Cette approche permet à Topaz Labs de créer une architecture de modèle pouvant être utilisée par différentes bibliothèques d'inférence tout en économisant sur le travail manuel.

  • 04:55:00 Dans cette section, l'orateur discute des défis associés à la conversion de modèle et de la nécessité de tester les problèmes de compatibilité avant de former un modèle. Le problème de l'ambiguïté dans les spécifications du modèle est mis en évidence, ainsi que la nécessité de tester différentes bibliothèques pour la performance et la cohérence. L'orateur explique également les raisons d'effectuer plusieurs conversions, indiquant que l'utilisation d'une interface plus générique peut entraîner des étapes de chargement supplémentaires et des coûts de conversion qui peuvent avoir un impact sur les performances de leurs applications. Enfin, le processus de sélection de la configuration appropriée et de gestion du pipeline d'inférence d'exécution est expliqué, soulignant le besoin de compatibilité et de sélection tout en garantissant une qualité et une vitesse constantes à partir des ordinateurs de bureau.



  • 05:00:00 Dans cette section, un conférencier de NVIDIA parle de son approche de la gestion de la compatibilité des modèles ONNX et de l'amélioration de la qualité d'image sur les systèmes de bureau en divisant les images en blocs et en les exécutant par inférence, en maximisant le débit et en s'exécutant potentiellement sur plusieurs appareils et bibliothèques en parallèle. L'orateur aborde également la difficulté de s'assurer que de nouvelles architectures de modèles peuvent être ajoutées et se comporter correctement dans toutes les bibliothèques, ce qui peut prendre beaucoup de travail et de temps. Ils passent ensuite à la discussion de deux outils, ONNX Craft Surgeon, une bibliothèque python qui vous permet de créer et de modifier des modèles ONNX, et Polygraphy, une boîte à outils pour déboguer des modèles d'apprentissage en profondeur. L'orateur explique comment ces outils fonctionnent et comment ils peuvent être utilisés pour construire des modèles aussi simples que la construction de graphes tf.

  • 05:05:00 Dans cette section, le conférencier présente l'outillage ONNX, qui comprend une API Python et divers outils de ligne de commande qui offrent de nombreuses fonctionnalités pour manipuler les modèles ONNX. Le conférencier se concentre sur les outils spécifiques à ONNX, tels que le modèle d'inspection, qui montre une représentation textuelle d'un modèle ONNX, et le sous-outil aseptisé par le chirurgien, qui simplifie et replie les constantes dans le modèle. L'extrait de chirurgien permet aux utilisateurs d'extraire des sous-graphes d'un modèle pour le déboguer, et le débogage de la bissectrice du modèle fonctionne comme git bisect mais pour les modèles ONNX, permettant de trouver le plus petit modèle défaillant pour diagnostiquer les erreurs dans le système.

  • 05:10:00 Dans cette section, le présentateur explique comment utiliser l'outil de réduction de débogage Calligraphy pour déboguer les modèles qui peuvent avoir des problèmes d'exécution. En réduisant la taille du modèle et en testant chaque modèle intermédiaire, les développeurs peuvent identifier les zones problématiques du code et faciliter le processus de débogage. Le présentateur explique également comment Qualcomm collabore avec la communauté en utilisant ONNX comme format d'échange pouvant être utilisé sur une variété d'appareils, des écouteurs aux ordinateurs portables en passant par les systèmes automobiles. En ciblant des modèles utilisant ONNX, les développeurs peuvent créer des modèles compatibles avec tous les appareils pris en charge par Qualcomm.

  • 05:15:00 Dans cette section, le conférencier parle des défis liés à la gestion de diverses architectures d'appareils qui nécessitent différents modèles, implémentations et exigences de synchronisation. Il donne un exemple de la façon dont le même algorithme et la même technologie conçus pour les capteurs de profondeur et les caméras dans les téléphones mobiles sont désormais utilisés pour les sonnettes intelligentes sécurisées et les caméras de surveillance intérieures et extérieures dans les automobiles. Il souligne ensuite l'importance de l'évolutivité et compare les différences entre les algorithmes des machines de traitement sur les CPU, les GPU et les accélérateurs d'IA en utilisant l'exemple de l'exécution du modèle Inception V3, où son exécution sur les accélérateurs d'IA peut fournir jusqu'à mille inférences par seconde, libérant le CPU pour d'autres tâches utiles.

  • 05:20:00 Dans cette section, un représentant de Qualcomm explique comment ils ont intégré des accélérateurs d'intelligence artificielle (IA) dans leur matériel pour améliorer les performances et l'évolutivité. En utilisant un accélérateur d'IA spécialement conçu à cet effet, ils peuvent gérer les charges de travail d'IA sans la consommation d'énergie supplémentaire ou les vitesses plus lentes qui résultent souvent de l'utilisation d'un CPU ou d'un GPU. De plus, leur format d'échange ONNX leur permet de compiler et d'exécuter des modèles d'apprentissage automatique sur différents appareils et secteurs verticaux, ce qui fait gagner du temps à l'entreprise et permet une plus grande portabilité. Ils ont également créé une pile logicielle et une bibliothèque unifiées qui prennent en charge une variété de systèmes d'exploitation et masquent les détails du matériel pour faciliter l'utilisation de leur matériel par les clients.

  • 05:25:00 Dans cette section, l'orateur présente la pile logicielle que Qualcomm a développée autour d'ONNX. Ils ont construit une solution complète qui inclut le runtime ONNX, ainsi qu'un système de délégation qui prend en charge le routage des modèles vers le CPU ou le GPU en fonction du cas d'utilisation de l'appareil. L'orateur discute des nombreux outils qu'ils ont développés, notamment des compilateurs, des profileurs, des analyseurs et l'activation des outils de recherche d'architecture réseau. L'orateur met l'accent sur l'évolutivité et la polyvalence d'ONNX et sur la manière dont il peut être utilisé pour divers cas d'utilisation d'appareils, notamment les algorithmes de caméra, les haut-parleurs intelligents et les appareils XR.

  • 05:30:00 Dans cette section, l'orateur explique le processus de développement du compilateur ANITA, qui est utilisé pour fournir un dialecte de référence dans Mair pour une optimisation facile sur différentes architectures et déployer les modèles sur divers environnements. L'orateur souligne également le cadre qu'ils ont introduit pour prendre en charge les accélérateurs personnalisés, ce qui leur permet de choisir les opérateurs à télécharger et d'activer/désactiver facilement l'accélérateur. Le conférencier donne également un aperçu de la façon dont l'optimisation est déployée dans ONNX Mlir, où le modèle ONNX est progressivement abaissé dans une représentation intermédiaire.

  • 05:35:00 Dans cette section, l'orateur parle du compilateur ONNX et de la façon dont plusieurs dialectes sont utilisés pour l'optimisation du processeur et de l'accélérateur. L'optimisation de haut niveau comprend l'optimisation au niveau du graphique et, à des niveaux inférieurs, l'optimisation est appliquée aux opérations du processeur et de l'accélérateur. L'orateur présente un exemple du fonctionnement d'un framework d'accélérateur dans le compilateur, où l'utilisation de l'accélérateur est 11 fois plus rapide que son exécution sur un processeur. Ils mentionnent également comment ils se concentrent sur l'optimisation des opérateurs d'apprentissage en profondeur et prendront en charge les opérateurs d'apprentissage automatique en ligne ainsi que d'autres accélérateurs tels que le CPU. Enfin, ils expriment leur gratitude aux contributeurs et invitent davantage de contributions pour continuer à développer le projet ONNX. Le conférencier suivant, de Preferred Networks, présente PFVM, leur compilateur de réseau neuronal qui utilise la représentation intermédiaire d'ONNX.

  • 05:40:00 Dans cette section, un membre de l'équipe Compile discute d'un cas d'utilisation d'ONNX dans l'optimisation de modules, en particulier en ce qui concerne sa représentation intermédiaire stable et bien documentée. L'équipe utilise ONNX pour optimiser les modèles avec une variété de chemins d'optimisation en étendant ONNX avec les opérateurs clients, comme l'ajout d'informations sur l'appareil pour optimiser les changements d'appareil et la mémoire. L'orateur discute également de l'importance de l'inférence de forme dans l'optimisation des modules et présente trois cas d'optimisation. Le premier cas consiste à réduire la surcharge de la plage du noyau dans les graphes de calcul exécutés sur CUDA en fusionnant plusieurs opérateurs élément par élément en un seul opérateur de groupe de fusion.

  • 05:45:00 pass contiendrait de nombreux opérateurs inutiles si le modèle était généré par un programme tel que la recherche d'architecture neuronale. C'est là que des optimisations telles que l'inférence de forme et la simplification de graphes sont utiles. L'inférence de forme est cruciale pour déterminer si les opérateurs adjacents au niveau des éléments peuvent être fusionnés, tandis que la simplification du graphe peut supprimer les opérateurs inutiles de la passe en arrière. Ces deux optimisations peuvent réduire considérablement le nombre de calculs nécessaires et améliorer l'efficacité globale du modèle.

  • 05:50:00 Dans cette section, l'orateur discute de la technique des points de contrôle, qui réduit l'utilisation de la mémoire lors de l'exécution d'un module. En modifiant le graphe de calcul, l'utilisation de la mémoire peut être réduite encore plus, mais au prix d'une latence accrue. L'orateur souligne l'importance de connaître les tailles des tenseurs pour estimer l'utilisation de la mémoire et indique les limites du point de contrôle automatique lorsqu'il s'agit de dimensions inconnues. De plus, le conférencier discute de l'impact des dimensions inconnues sur les opportunités d'optimisation et décrit les améliorations qui ont été apportées à l'inférence de forme ONNX. Plus précisément, l'introduction de l'inférence symbolique dans ONNX 1.10 a considérablement amélioré l'inférence de forme grâce à la propagation des données.

  • 05:55:00 Dans cette section, le conférencier discute de l'inférence de forme dans ONNX, expliquant que les informations de forme peuvent être propagées globalement à partir du haut pour les cas statiques, mais qu'un soutien supplémentaire est nécessaire pour les cas dynamiques. L'orateur montre un exemple de graphe ONNX où la forme d'un remodelage doit être estimée, mais qui est actuellement inconnue. Ils suggèrent d'implémenter davantage de fonctions d'inférence de forme pour les cas dynamiques et demandent si la prise en charge de cas tels que la concaténation de deux tenseurs de tailles différentes est nécessaire. L'orateur mentionne également brièvement les optimisations pour le supercalculateur md4, qui n'accepte que des modèles avec une forme statique et sans branchement dynamique, et utilise des informations statiques pour la planification et les optimisations. Ensuite, un représentant de Huawei partage une conférence préenregistrée sur l'apport de la puissance d'ONNX à Spark pour l'inférence.

  • 06:00:00 Dans cette section, l'accent est mis sur la proposition d'amélioration SPARK, communément appelée SPIP, qui vise à simplifier le processus de déploiement du modèle d'apprentissage automatique pour créer Spark, en l'intégrant à des frameworks DL tiers. Cette proposition s'adresse aux ingénieurs de données ou aux développeurs qui ont besoin de déployer des modèles DL sur Spark. L'objectif final est de masquer les complexités de la conversion du traitement des onglets et de l'initialisation du modèle dans une UDF modale, permettant aux utilisateurs de compléter facilement l'inférence ONNX sur le Big Data. Le propre processeur AI de Huawei appelé Ascend est présenté, et il est expliqué que pour compléter le pipeline SPARK et ONNX sur la plate-forme Ascend, il faut d'abord introduire la prise en charge d'Ascend dans l'environnement d'exécution ONNX.

  • 06:05:00 Dans cette section, le conférencier discute de l'écosystème Ascend AI et des différents processeurs qu'il prend en charge. L'Ascend 310 ne prend en charge que l'inférence IA, tandis que les Ascend 710 et 910 prennent en charge à la fois la formation et l'inférence. De plus, l'écosystème fournit une couche logicielle appelée "Kung" qui fournit des API aux développeurs pour créer facilement des applications et des services d'IA. L'orateur se concentre ensuite sur Khan, la pile logicielle actuelle de l'écosystème Ascend, et la dernière version, Khan 5.0. Ils expliquent les différentes couches de Khan et comment il fournit des bibliothèques d'opérateurs, des moteurs d'optimisation et un adaptateur de framework pour les développeurs. L'orateur discute ensuite de la feuille de route pour l'ajout de Khan en tant que nouveau fournisseur d'exécution pour le runtime ONNX, permettant aux utilisateurs d'exécuter directement des modèles ONNX sur le matériel Ascend.

  • 06:10:00 Dans cette section de la vidéo, la journée communautaire ONNX se termine avec les tables rondes pour les participants en personne. Les tables rondes se composaient de six sujets différents, avec de grands blocs-notes à la disposition des participants pour écrire. Les sujets ont été sélectionnés en fonction des soumissions des participants et incluent ONNX pour Mobile et Edge, le déploiement de modèles et la quantification de l'apprentissage automatique, la formation et les opérations, les conversions et les opérateurs. L'équipe ONNX Runtime était également disponible pour participer aux conversations. Après les tables rondes, les participants ont profité d'un happy hour avec de la nourriture et des boissons, et ont été encouragés à remplir le sondage pour donner leur avis.
ONNX Community Day!
ONNX Community Day!
  • 2022.06.24
  • www.youtube.com
This event is being hosted in-person at the brand-new Microsoft Silicon Valley Campus on Friday, June 24th. The event will cover ONNX Community updates, part...
Raison: