Accéder au contenu principal

Qu'est-ce que TinyML ? Introduction à l'apprentissage automatique minuscule

Découvrez TinyML, ses applications et ses avantages, et comment vous pouvez vous lancer dans ce domaine émergent de l'apprentissage automatique.
Actualisé 14 nov. 2024  · 8 min de lecture

Les modèles d'apprentissage automatique jouent un rôle prépondérant dans notre vie quotidienne, que nous le sachions ou non. Au cours d'une journée normale, il y a de fortes chances que vous soyez amené à interagir avec un modèle d'apprentissage automatique, étant donné qu'ils ont imprégné presque tous les produits numériques avec lesquels nous interagissons ; par exemple, les services de médias sociaux, l'assistance personnelle virtuelle, les moteurs de recherche et le filtrage des spams par votre service d'hébergement de courrier électronique. 

Malgré les nombreux exemples d'apprentissage automatique dans la vie quotidienne, il existe encore plusieurs domaines dans lesquels la technologie n'est pas parvenue à s'imposer. La cause ? De nombreux modèles d'apprentissage automatique, en particulier les architectures de pointe (SOTA), nécessitent des ressources importantes. Cette demande de puissance de calcul haute performance a confiné plusieurs applications d'apprentissage automatique au cloud - fournisseur de ressources informatiques à la demande.  

Outre le fait que l'apprentissage de ces modèles est coûteux en termes de calcul, l'exécution de l'inférence sur ces modèles est souvent assez onéreuse également. Si l'apprentissage automatique doit étendre sa portée et pénétrer d'autres domaines, une solution permettant aux modèles d'apprentissage automatique d'exécuter des inférences sur des appareils plus petits et aux ressources plus limitées est nécessaire. La recherche de cette solution est à l'origine du sous-domaine de l'apprentissage automatique appelé Tiny Machine Learning (TinyML). 

Dans cet article, nous allons : 

  • Définir TinyML et ses avantages
  • Couvrir quelques applications de TinyML 
  • Discutez des exigences en matière de flux de travail pour les applications TinyML. 

Qu'est-ce que TinyML ?

"Les réseaux neuronaux sont également appelés réseaux neuronaux artificiels (RNA). Cette architecture constitue le fondement de l'apprentissage profond, qui n'est qu'un sous-ensemble de l'apprentissage automatique concernant les algorithmes qui s'inspirent de la structure et du fonctionnement du cerveau humain.  En d'autres termes, les réseaux neuronaux constituent la base des architectures qui imitent la façon dont les neurones biologiques se signalent les uns aux autres."
Source ; Tutoriel PyTorch : Construction d'un réseau neuronal simple 

L'apprentissage automatique est un sous-domaine de l'intelligence artificielle qui fournit un ensemble d'algorithmes. Ces algorithmes permettent aux machines d'apprendre des modèles et des tendances à partir des données historiques disponibles afin de prédire des résultats précédemment connus sur les mêmes données. Cependant, l'objectif principal est d'utiliser les modèles formés pour généraliser leurs inférences au-delà de l'ensemble de données d'apprentissage, en améliorant la précision de leurs prédictions sans être explicitement programmés.

Les réseaux neuronaux sont l'un des algorithmes utilisés pour ces tâches. Les réseaux neuronaux appartiennent à un sous-domaine de l'apprentissage automatique connu sous le nom d'apprentissage profond, qui consiste en des modèles dont la formation est généralement plus coûteuse que celle des modèles d'apprentissage automatique. Pour en savoir plus sur la construction de modèles de réseaux neuronaux dans R, consultez un autre didacticiel. 

réseau neuronal à trois couches

Figure 1. Visualisation d'un réseau neuronal à trois couches

Selon tinyml.org, "l'apprentissage automatique miniature est défini de manière générale comme un domaine en plein essor de technologies et d'applications d'apprentissage automatique comprenant du matériel, des algorithmes et des logiciels capables d'effectuer des analyses de données de capteurs sur l'appareil à une puissance extrêmement faible, généralement de l'ordre du mW ou moins, et donc de permettre une variété de cas d'utilisation en continu et de cibler des appareils fonctionnant sur batterie". 

La croissance de TinyML au cours des dernières années a été largement attribuée au développement des écosystèmes matériels et logiciels qui le supportent. Étant donné que les techniques peuvent être mises en œuvre dans des systèmes à faible consommation d'énergie (capteurs, microcontrôleurs, etc.), l'apprentissage automatique peut être poussé à l'extrême, ce qui permet à ces applications de fonctionner avec une réactivité en temps réel. En substance, l'idée est de permettre aux praticiens de l'apprentissage automatique d'en faire plus avec moins. 

Mais pourquoi est-ce si important ? Voyons pourquoi TinyML est intéressant.

Les avantages de TinyML

  1. Temps de latence: Les données n'ont pas besoin d'être transférées vers un serveur pour l'inférence, car le modèle fonctionne sur des appareils périphériques. Les transferts de données prennent généralement du temps, ce qui entraîne un léger retard. La suppression de cette exigence réduit la latence.
  2. Économies d'énergie: Les microcontrôleurs ont besoin d'une très faible quantité d'énergie, ce qui leur permet de fonctionner pendant de longues périodes sans avoir besoin d'être rechargés. En outre, une infrastructure de serveurs étendue n'est pas nécessaire car il n'y a pas de transfert d'informations : il en résulte des économies d'énergie, de ressources et de coûts. 
  3. Largeur de bande réduite: L'inférence ne nécessite que peu ou pas de connexion internet. Il existe des capteurs embarqués qui capturent des données et les traitent sur l'appareil. Cela signifie qu'il n'y a pas de données brutes du capteur qui sont constamment envoyées au serveur.
  4. Confidentialité des données: Vos données ne sont pas conservées sur des serveurs car le modèle fonctionne en périphérie. L'absence de transfert d'informations vers des serveurs augmente la garantie de confidentialité des données. 

Cas d'utilisation : Comment TinyML est-il utilisé ? 

Les applications de TinyML couvrent un large éventail de secteurs, notamment ceux qui dépendent des réseaux et des données de l'internet des objets (IoT) - L'internet des objets (IoT) est essentiellement un réseau d'objets physiques équipés de capteurs, de logiciels et d'autres technologies qui se connectent à d'autres appareils et systèmes sur l'internet et échangent des données avec eux. 

La vision artificielle, les mots d'éveil visuels, les détecteurs de mots-clés, la maintenance prédictive, la reconnaissance des gestes, la maintenance des machines industrielles, etc. sont autant de cas d'utilisation courants de TinyML. Jetons également un coup d'œil sur quelques secteurs où TinyML a été utilisé pour alimenter des applications : 

Agriculture

Les données relatives à l'agriculture et au bétail peuvent être contrôlées et collectées en temps réel à l'aide d'appareils TinyML. L'entreprise suédoise Imagimob, spécialisée dans les produits d'intelligence artificielle en périphérie, a créé une plateforme de développement pour l'apprentissage automatique sur les appareils en périphérie. Cinquante-cinq organisations de l'Union européenne ont collaboré avec Imagimob pour apprendre comment TinyML peut offrir une gestion efficace des cultures et du bétail.

Maintenance prédictive industrielle

TinyML peut être déployé sur des appareils de faible puissance pour surveiller en permanence les machines afin de détecter les dysfonctionnements et de prévoir les problèmes avant qu'ils ne surviennent ; ce type d'application a le potentiel d'aider les entreprises à réduire les coûts qui découlent souvent de machines défectueuses.

Ping Services est un excellent exemple de maintenance prédictive. Ils ont mis au point un dispositif de surveillance permettant de contrôler en permanence la signature acoustique des pales d'éoliennes afin de détecter et de signaler tout changement ou dommage. Selon le site web de Ping, "les opérateurs de surveillance continue peuvent apporter une réponse opportune aux dommages subis par les pales, réduisant ainsi les coûts de maintenance, les risques de défaillance et les temps d'arrêt, tout en améliorant les performances et l'efficacité des éoliennes".

Expérience client

La personnalisation est un outil de marketing essentiel que les clients exigent à mesure que leurs attentes augmentent. L'idée est de permettre aux entreprises de mieux comprendre leurs clients et de les cibler avec des publicités et des messages qui correspondent à leur comportement. Le déploiement d'applications TinyML en périphérie permet aux entreprises de comprendre les contextes des utilisateurs, y compris leur comportement. 

Exigences en matière de flux de travail

De nombreux outils et architectures déployés dans les flux de travail traditionnels d'apprentissage automatique sont utilisés lors de la création d'applications pour appareils périphériques. La principale différence est que TinyML permet à ces modèles d'exécuter diverses fonctions sur des appareils plus petits. 

Tensorflow Lite pour microcontrôleurs (TF Lite Micro) est l'un des frameworks les plus populaires pour l'apprentissage automatique sur les appareils périphériques ; il a été spécialement conçu pour la mise en œuvre de l'apprentissage automatique sur les systèmes embarqués avec seulement quelques kilo-octets de mémoire. 

Python est souvent le langage privilégié pour construire des modèles d'apprentissage automatique. Cependant, TensorFlow Lite permet de développer facilement des modèles en C, C++ ou Java et de les déployer sans se connecter à Internet.

D'un point de vue matériel, une carte microcontrôleur est nécessaire pour commencer à utiliser TinyML dans TF Lite ; la bibliothèque prend actuellement en charge les microcontrôleurs suivants : 

  • Arduino Nano 33 BLE Sense
  • SparkFun Edge
  • STM32F746 Kit de découverte
  • Adafruit EdgeBadge
  • Kit Adafruit TensorFlow Lite pour microcontrôleurs
  • Adafruit Circuit Playground Bluefruit
  • Espressif ESP32-DevKitC
  • Espressif ESP-EYE
  • Terminal Wio : ATSAMD51
  • Carte de développement Himax WE-I Plus EVB Endpoint AI
  • Plate-forme de développement logiciel Synopsys DesignWare ARC EM
  • Sony Spresense

Avec le soutien de TinyML, il est possible d'accroître l'intelligence de milliards d'appareils que nous utilisons tous les jours, comme les appareils ménagers et les gadgets IoT, sans dépenser une fortune en matériel coûteux ou en connexions internet fiables, qui sont fréquemment limitées par la bande passante et la puissance et produisent une latence importante.

Ressources pédagogiques

Synthèse

Ces dernières années, la technologie TinyML a gagné du terrain dans divers secteurs d'activité grâce au développement d'écosystèmes matériels et logiciels qui la prennent en charge. L'outil a permis de mettre en œuvre des modèles d'apprentissage automatique dans des systèmes à faible consommation d'énergie, tels que les microcontrôleurs, ce qui ouvre la voie à de nombreuses nouvelles possibilités. La faible latence, les économies d'énergie, la confidentialité des données et l'absence de dépendance à l'égard des connexions sont quelques-uns des facteurs qui rendent TinyML si attrayant pour les développeurs qui cherchent à mettre au point des applications pour les appareils de l'internet des objets (IoT).

FAQ

Qu'est-ce que le Tiny Machine Learning (TinyML) ?

TinyML est un type d'apprentissage automatique qui permet aux modèles de fonctionner sur des appareils plus petits et moins puissants. Il s'agit de matériel, d'algorithmes et de logiciels capables d'analyser les données des capteurs de ces appareils avec une très faible consommation d'énergie, ce qui en fait la solution idéale pour les cas d'utilisation permanente et les appareils fonctionnant sur batterie.

Quels sont les avantages de TinyML ?

Les avantages de TinyML sont notamment la réduction de la latence, les économies d'énergie, la réduction de la bande passante et l'amélioration de la confidentialité des données. TinyML permet de traiter les données sur les appareils périphériques, ce qui élimine la nécessité de transférer les données vers un serveur, ce qui peut entraîner des retards. TinyML nécessite également beaucoup moins d'énergie que les modèles d'apprentissage automatique traditionnels, ce qui lui permet de fonctionner pendant de longues périodes sans avoir besoin d'être rechargé.

A quoi sert TinyML ?

TinyML peut être utilisé dans un large éventail de secteurs, notamment l'agriculture, la maintenance prédictive industrielle et l'expérience client. Il peut également être utilisé pour la vision par ordinateur, les mots d'éveil visuels, les détecteurs de mots clés, la reconnaissance des gestes, etc.

Quelles sont les exigences en matière de flux de travail pour les applications TinyML ?

Les exigences en matière de flux de travail pour les applications TinyML sont similaires à celles des flux de travail traditionnels d'apprentissage automatique. Cependant, TinyML permet à ces modèles d'exécuter diverses fonctions sur des appareils plus petits. TensorFlow Lite pour microcontrôleurs (TF Lite Micro) est l'un des cadres les plus populaires pour l'apprentissage automatique sur les appareils périphériques, et il a été spécialement conçu pour la mise en œuvre de l'apprentissage automatique sur les systèmes embarqués avec seulement quelques kilo-octets de mémoire.

Quelles sont les ressources d'apprentissage pour TinyML ?

Parmi les ressources d'apprentissage de TinyML, citons la Fondation TinyML, le livre "Tiny ML : Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers" et le podcast "Embedded Machine Learning on Edge Devices,". DataCamp propose également de nombreuses ressources, comme ce tutoriel sur l'apprentissage profond, ce cours sur la compréhension de l'apprentissage automatique et bien plus encore dans ce hub Learn AI.

Sujets