Apprendre ONNX pour le trading - page 15

 

Quantification pratique post-formation d'un modèle ONNX



Quantification pratique post-formation d'un modèle ONNX

La vidéo explique comment mettre en œuvre la quantification pour réduire la taille d'un modèle TensorFlow à un modèle quantifié ONNX. Le modèle ONNX est nettement plus petit et peut être exécuté plus rapidement sur un processeur. L'auteur fournit des extraits de code et des instructions sur la façon d'implémenter la quantification dynamique et de vérifier la vitesse du processeur.

La vidéo montre le processus de quantification d'un modèle d'apprentissage automatique pour le rendre plus rapide et plus léger, tout en reconnaissant que cela peut entraîner une baisse de précision. Les modèles ONNX et TensorFlow sont comparés à un modèle quantifié, ce dernier se révélant plus rapide et plus léger. Cependant, le modèle quantifié ne profite pas autant de l'utilisation des GPU que les autres modèles. La précision du modèle quantifié est ensuite évaluée et s'avère n'avoir qu'une légère baisse. Le processus de visualisation des modèles ONNX est également abordé, avec l'utilisation de l'application Loot Rodas Neutron démontrée. Le processus global entraîne une réduction de la taille du modèle d'un gigaoctet à 83 mégaoctets avec une perte de précision minimale.

 

QONNX : une proposition pour représenter les NN quantifiés à précision arbitraire dans ONNX



QONNX : une proposition pour représenter les NN quantifiés à précision arbitraire dans ONNX

L'orateur discute de la quantification de faible précision, avec un exemple de son application dans la communication sans fil. Ils proposent QONNX, un dialecte pour représenter des réseaux de neurones quantifiés à précision arbitraire dans ONNX. QONNX simplifie la représentation de la quantification, l'étend à un ensemble plus large de scénarios et offre des options pour différents types d'arrondis et de quantification binaire. Il est utilisé pour le déploiement sur les FPGA et est intégré à la bibliothèque de quantification Brevitas Python, NQCDQ devant être intégré dans la prochaine version.

  • 00:00:00 Dans cette section, l'orateur parle du concept de quantification de faible précision, c'est-à-dire une quantification inférieure à 8 bits. L'orateur donne un exemple de la façon dont la quantification de faible précision a été utilisée dans une tâche de classification de modulation pour la communication sans fil, atteignant un débit élevé avec une latence réduite grâce à une formation sensible à la quantification. L'orateur explique les principes fondamentaux de la quantification uniforme et propose d'étendre la puissance de représentation d'ONNX pour les réseaux de neurones de faible précision en utilisant l'écrêtage comme fonction supplémentaire sur des frontières entières entre les nœuds quantifiés et déquantifiés. Cependant, l'orateur reconnaît que cette approche a des limites, notamment le fait d'être limité aux opérateurs linéaires quantifiés avec une sortie 8 bits et l'incapacité d'adopter différents types d'arrondis.

  • 00:05:00 Dans cette section, l'orateur présente QONNX, qui est un dialecte pour représenter des réseaux de neurones quantifiés à précision arbitraire dans ONNX. QONNX simplifie la représentation de la quantification en fusionnant une séquence d'opérations pour la fausse quantification en un seul nœud, tout en l'étendant à un ensemble plus large de scénarios. Il offre des options pour différents types d'arrondis, de diffusion d'entrées de bits et de quantification binaire. Le format est exploité pour le déploiement sur les FPGA dans le cadre de l'effort d'apprentissage automatique rapide, avec divers outils disponibles pour traiter QONNX qui s'intègrent au runtime ONNX et aux modèles de faible précision pré-formés. QONNX est déjà intégré dans la bibliothèque de quantification Brevitas Python, et NQCDQ devrait être intégré dans la prochaine version.
 

GRCon20 - Inférence d'apprentissage profond dans GNU Radio avec ONNX



GRCon20 - Inférence d'apprentissage profond dans GNU Radio avec ONNX

La vidéo traite de l'utilisation d'ONNX en tant que format ouvert pour intégrer l'apprentissage en profondeur en tant que solution flexible et open source dans le domaine des radiofréquences. L'orateur présente son nouveau module GR DNN DN4, qui utilise les interfaces Python pour GNU Radio et ONNX, et démontre ses capacités avec un exemple de classification de modulation automatique utilisant un modèle de réseau neuronal à convolution profonde formé sur des données simulées générées par GNU Radio. Ils discutent également des exigences et des défis liés à l'utilisation de l'apprentissage en profondeur pour la classification des données SDR avec le modèle BGG16 et suggèrent d'utiliser une accélération matérielle, telle qu'un GPU, pour améliorer l'inférence et obtenir des résultats en temps réel. Le projet est open source et la collaboration est encouragée.

  • 00:00:00 Dans cette section de la vidéo, Oscar Rodriguez discute de son travail sur l'inférence d'apprentissage en profondeur dans GNU Radio avec ONNX. L'objectif principal de leur projet était d'intégrer l'apprentissage en profondeur en tant que solution flexible et open-source dans le domaine des radiofréquences. Ils ont choisi ONNX car il s'agit d'un format ouvert qui permet l'interopérabilité de l'apprentissage automatique entre différents frameworks, résolvant le problème des frameworks d'apprentissage en profondeur incompatibles. Cependant, il y a un coût d'adaptation des modèles à ONNX et il peut y avoir des problèmes de disponibilité opérationnelle avec certaines opérations, bien que cela soit atténué par le fait qu'ONNX est activement développé et pris en charge par Microsoft. En fin de compte, ONNX fournit une couche d'abstraction entre le modèle de l'utilisateur et différents cadres d'apprentissage en profondeur.

  • 00:05:00 La section traite de l'utilisation d'ONNX, qui permet la conception et la formation de modèles d'apprentissage automatique dans divers cadres tels que TensorFlow et PyTorch avant de les convertir dans un format commun à utiliser dans le bloc ONNX. ONNX définit un ensemble d'opérations de base couramment utilisées dans les modèles d'apprentissage en profondeur, et son environnement d'exécution fournit des interfaces et un support pour diverses accélérations logicielles et matérielles. Le runtime crée également une représentation graphique du modèle qui attribue des opérations à différents fournisseurs d'exécution en fonction des accélérateurs disponibles.

  • 00:10:00 Dans cette section, l'orateur discute de l'extensibilité des fournisseurs d'exécution dans ONNX, qui permet la prise en charge de nouvelles plates-formes matérielles tant que toutes les opérations ONNX ont été mises en œuvre sur cette plate-forme. Ils présentent ensuite leur nouveau module, GR DNN DN4, qui utilise des interfaces Python pour GNU Radio et ONNX. Le module de synchronisation adapte les entrées au format attendu du modèle, adapte le modèle aux données transformées, puis retransforme la sortie en un format unidimensionnel. Le module permet également la sélection de différents fournisseurs d'exécution pris en charge dans ONNX. L'orateur poursuit en démontrant les capacités de GR DNN DN4 avec un exemple de classification de modulation automatique utilisant un modèle de réseau neuronal à convolution profonde formé sur des données simulées générées par GNU Radio.

  • 00:15:00 Dans cette section, l'orateur discute de l'utilisation de l'apprentissage en profondeur pour la classification des données SDR avec le modèle BGG16. Ils expliquent que l'entrée du modèle nécessite un vecteur de 128 valeurs de QI, qui doit être adapté à la sortie du dispositif SDR. Ils notent également que l'inférence d'apprentissage en profondeur est intensive en calcul et que les performances dépendent de la complexité du modèle. L'orateur conclut en suggérant que l'utilisation d'une accélération matérielle, telle qu'un GPU, peut améliorer l'inférence et obtenir des résultats en temps réel.

  • 00:20:00 Dans cette section, l'orateur discute d'une nouvelle implémentation radio qui peut intégrer l'inférence d'apprentissage en profondeur et la radio définie par logiciel (SDR) en utilisant un format standard pour la représentation du modèle d'apprentissage en profondeur et en prenant en charge diverses méthodes d'accélération. L'orateur montre comment le module peut être utilisé pour la classification automatique de la modulation et réaliser une inférence en temps réel avec une accélération matérielle. L'orateur discute également des améliorations futures du module, notamment en le rendant plus flexible pour différents types de modèles d'apprentissage en profondeur et en incluant la fonctionnalité de prétraitement dans le bloc. Le projet est open source et la collaboration est encouragée.