[APPLICATION FARNELL] Alors que l’efficacité du matériel s’améliore et que l’optimisation logicielle et l’architecture des modèles progressent, les systèmes embarqués de périphérie de réseau (edge) intègrent l’intelligence artificielle (IA) au sein de nouvelles classes d’applications sans dépendre des services cloud. Le large éventail de choix signifie qu’il existe des solutions pour chaque application et les fournisseurs dotés d’une expertise en IA, tels que le distributeur Farnell, vont s’avérer des partenaires inestimables pour aider les développeurs à faire les bons choix en fonction de leurs besoins applicatifs spécifiques.
Auteur : Ankur Tomar, Regional Solutions Marketing Manager, Farnell.
En un peu plus d’une décennie, l’apprentissage profond (deep learning) a transformé l’intelligence artificielle (IA), faisant passer cette technologie à l’avant-garde de l’innovation après une longue période d’hibernation. L’apprentissage profond, qui signifie simplement qu’un réseau de neurones à plusieurs couches est utilisé, peut être appliqué à de nombreuses formes d’IA, chacune adaptée à une application cible différente.
Dès que la capacité de créer un modèle a pu être développée, la vitesse à laquelle l’IA s’est déployée dans de nombreux systèmes différents s’est avérée étonnante. A titre d’exemple, l’architecture d’apprentissage profond dite transformeur (transformer en anglais) - qui se trouve derrière les modèles d’IA générative d’aujourd’hui - est apparue il y a seulement cinq ans, mais elle est maintenant en mesure de changer le paysage de nombreuses industries.
Aujourd’hui, l’IA générative, en particulier les grands modèles de langage (LLM) et la génération d’images, est fortement axée sur l’essor de l’informatique dans le nuage. En l’absence d’une connectivité à haut débit et d’un accès à des ressources informatiques massivement parallèles réparties sur un ou plusieurs centres de données, il serait beaucoup plus difficile d’accéder aux résultats révolutionnaires des modèles d’IA tels que GPT-4, tout en permettant la mise en place de modèles commerciaux réalisables. L’impact de l’IA, cependant, s’étend bien au-delà du bureau. L’accès à ce niveau de puissance de calcul a permis aux systèmes embarqués de profiter des capacités de ces plateformes pour offrir des services tels que la reconnaissance vocale, sonore et faciale en temps réel. Des modèles spécifiques ont aussi pu être développés tels que ceux utilisés pour analyser les vibrations et identifier les défaillances potentielles d’un système mécanique.
Les fournisseurs montent au créneau
De nombreux fournisseurs proposent des solutions complètes pour l’IA embarquée qui aident les ingénieurs à réduire les délais de mise sur le marché. On trouve, par exemple, la plateforme logicielle et matérielle de production de NXP (photo ci-contre), conçue pour permettre le développement rapide de produits IoT à l’épreuve du temps offrant des fonctionnalités telles que la commande vocale ou la reconnaissance faciale. Un autre exemple est le microcontrôleur MAX78000 d’Analog Devices, un accélérateur de réseau de neurones économe en énergie qui permet aux applications alimentées sur batterie d’exécuter des inférences d’IA.
Bien que les appareils connectés puissent exploiter la puissance de l’IA dans le cloud, il existe de nombreuses situations où cette solution n’est pas viable. Les applications temps réel ne peuvent pas accepter les délais inhérents à la communication avec un serveur distant ou, pire encore, la perte de connexion de l’appareil au cloud ou l’indisponibilité soudaine du service. Un autre exemple des limites de l’informatique dans le cloud est celui des drones qui sont envoyés pour inspecter les routes, les voies ferrées, les pipelines et les pylônes, et qui se déplacent souvent dans des zones éloignées qui n’ont peut-être pas d’accès Internet sans fil.
Même si la connectivité cellulaire est disponible, de nombreux systèmes ne peuvent pas se permettre le coût élevé ou la consommation d’énergie supplémentaire nécessaires pour fournir les services de données haut débit bidirectionnels indispensables pour relayer la vidéo en temps réel vers le cloud.
Des traitements IA en périphérie de réseau
Dans les environnements industriels, communiquer avec un serveur peut présenter de réels problèmes, et c’est là que les traitements avec IA en périphérie changent la donne. Bien qu’il ne soit pas possible d’égaler le nombre gigantesque de paramètres et les exigences de calcul de GPT-4, la capacité d’une prise en charge performante de l’IA existe pour les appareils en périphérie, qui rend possible une service localisé en partie, voire en totalité. Il est même possible de répartir la charge de travail pour maintenir des performances temps réel et à faible coût tout en tirant parti de la capacité de calcul plus élevée de l’IA dans le cloud.
La répartition de la charge de travail permet également d’optimiser l’autonomie de la batterie dans des systèmes tels que les drones.
Un scénario typique s’appuie sur des algorithmes d’apprentissage automatique qui s’exécutent sur des appareils relativement peu coûteux pour analyser toutes les données entrantes issues de capteurs afin de déterminer si une entrée nécessite une analyse plus approfondie. Prenons le cas d’un instrument qui cherche à évaluer l’usure d’une machine-outil. La détection de signes d’usure peut nécessiter l’utilisation de modèles plus complexes reposant sur le cloud qui traitent des entrées supplémentaires pour déterminer s’il faut déclencher une alarme. Une autre approche courante consiste à utiliser des modèles locaux pour un contrôle en temps réel à basse résolution, avec des données envoyées pour l’analyse des tendances à long terme lorsqu’une capacité de communication et d’alimentation est disponible. Les modèles plus complexes exécutés dans le cloud peuvent ainsi suivre des changements plus subtils sur les conditions de production en usine qui sont ensuite utilisés pour hiérarchiser les inspections ou isoler les défauts afin de fournir des instructions de maintenance ou de réparation spécifiques à un ingénieur de service.
Une scission architecturale qui a des avantages
Cette scission architecturale permet d’accéder à une gamme étendue et toujours croissante d’options de performance pour l’IA embarquée. Pour répondre aux exigences d’une IA à faible consommation d’énergie et toujours active, des fournisseurs tels qu’Edge Impulse, qui s’est associé à des fournisseurs de puces embarqués tels que Silicon Labs, ont développé des techniques qui permettent aux réseaux de neurones profonds de fonctionner même sur des cœurs de microcontrôleurs.
Les fournisseurs de semi-conducteurs ajoutent d'ailleurs progressivement l’accélération matricielle à leurs processeurs embarqués, ce qui leur permettra d’améliorer encore les performances de ces derniers.
A noter que le traitement vidéo et d’image multicanal est une exigence courante pour de nombreux équipements, des drones d’inspection jusqu’aux systèmes industriels, et nécessite des cartes prenant directement en charge un apprentissage automatique plus performant. Les développeurs peuvent choisir parmi un certain nombre de produits sur le marché. Cela va de la Raspberry Pi, éventuellement renforcée par diverses cartes additionnelles, à la BeagleY-AI, un nouveau calculateur monocarte open source de l’organisme BeagleBoard.org qui permet aux développeurs de se lancer directement dans la création d’une nouvelle gamme étendue d’applications d’IA (photo ci-dessus). Sans oublier les offres d’IA spécifiques de Nvidia et les solutions de la plateforme Xilinx d’AMD qui offrent une accélération par logique programmable.
Bien que chacune de ces plateformes nécessite un code particulier, les développeurs travaillant sur des applications d’apprentissage automatique peuvent tirer parti d’outils de développement multiplateformes qui permettent d’optimiser le code pour l’architecture cible. Ces outils permettent de "mapper" les modèles entraînés dans un environnement cloud dans une version qui peut s’exécuter à la vitesse requise sur du matériel embarqué.
Par exemple, l’élagage (pruning) et le codage parcimonieux (sparsification) tirent parti de la redondance des poids généralement attribués aux neurones pendant l’apprentissage, en supprimant les opérations qui ne contribuent pas de manière significative au résultat. La combinaison d’une prise en charge matérielle de l’accélération de l’IA et de l’optimisation logicielle apporte des types de modèles encore plus avancés aux appareils en périphérie.
Prise en charge des "transformeurs"
Les plateformes d’aujourd’hui offrent la flexibilité nécessaire pour mettre en œuvre les structures reposant sur les transformeurs qui alimentent désormais les systèmes d’IA générative. Les transformeurs de vision nécessitent plus de mémoire que les réseaux de neurones convolutifs conventionnels, mais peuvent fournir de meilleurs résultats dans les applications de reconnaissance d’images.
La prise en charge de la "sparsification" dans des plateformes telles que le processeur graphique Nvidia Ampere porté par le module Jetson Orin permet d’exécuter ce type de modèle dans un environnement embarqué. La flexibilité présente au cœur de l’architecture Versal dans le moteur AMD AI Engine offre aussi des optimisations supplémentaires qui répondent aux exigences de manipulation des données des transformeurs.
Dans la plupart des cas, les fabricants d’accélérateurs fournissent des outils qui facilitent ces optimisations. Comme ces outils se connectent généralement à des plateformes de développement largement disponibles telles que PyTorch ou TensorFlow, les concepteurs peuvent sélectionner une architecture qui répond aux besoins de traitements d’une application cible et appliquer les optimisations requises.