L’IA et l’environnement peuvent-ils coexister ?
Justine Bonnot CEO & Fondatrice de WedoLow IA ________________________________________________________________________________________ |
Il existe deux termes que j’ai du mal à faire coexister… Non, ce n’est pas moi et bronzée malgré mon retour de vacances, mais plutôt Intelligence Artificielle (IA) et environnement. Alors oui, je sais que de nombreux acteurs travaillent pour mettre l’IA au service de l’environnement, mais ce n’est pas ce que j’entends ici.
Le sujet de cet article concerne plutôt l’impact de l’intelligence artificielle sur l’environnement, comment le mesurer, comment le maîtriser, et de quoi parle-t-on quand on évoque une IA frugale ?
1. L’impact du numérique propulsé par l’usage des systèmes basés IA
À l’heure où le numérique a un impact toujours plus fort sur l’environnement, il est fondamental de se pencher sur ce sujet. Au 02 Juillet 2024, l’Arcep nous indiquait que le numérique représente aujourd’hui 3-4% des émissions de gaz à effet de serre dans le monde, et est prévu de croître fortement (+60% d’ici 2040). Ce n’est pas un scoop, il est urgent de revoir notre approche et nos usages du numérique.
Sauf qu’au-delà de l’impact du numérique, un autre élément ne fait que croître, c’est l’usage des systèmes basés IA.
- Selon la définition du Parlement européen, l’IA est tout outil, logiciel ou machine, destiné à “reproduire des comportements liés aux humains, tels que le raisonnement, la planification et la créativité”.
- D’après l’Afnor cette fois-ci, un système basé IA est constitué à la fois d’un algorithme, de données, et du matériel permettant de l’exécuter.
L’usage de ces systèmes basés IA peut avoir pour objectif d’effectuer de l’apprentissage automatique, d’analyser et de classifier des images, d’effectuer de l’analyse de textes… Difficile d’avoir des statistiques fiables sur le nombre de systèmes basés IA et leur croissance, mais prenons un exemple qui parlera au plus grand nombre : le robot conversationnel d’OpenAI ChatGPT.
La présentation de ChatGPT a été réalisée en Novembre 2022 par OpenAI et en deux mois celui-ci a réussi à absorber plus de 100 millions d’utilisateurs actifs. Ce nombre a atteint fin 2023 les 180 millions. Plusieurs études ont travaillé sur l’impact environnemental de l’IA qui n’est plus à démontrer. C’est assez logique, car en reprenant ce que nous dit l’Afnor, il faut prendre en compte tout ce qui permet d’exécuter ces algorithmes.
Tout ceci paraît très immatériel, et il est difficile de se représenter les ressources qui sont requises quand on lance une requête à ChatGPT, et pourtant au vu de cet impact, c’est urgent. On arrive donc face à deux nouvelles définitions données par l’Afnor :
“Système efficient d’IA : un système dont le fonctionnement prend en compte les mécanismes d’optimisation connus de l’état de l’art pour en réduire les besoins en ressources matérielles et énergétiques et les émissions associées, tout en conservant une performance suffisante”
“Système frugal d’IA : un système pour lequel la nécessité de recourir à un système d’IA plutôt qu’une autre solution moins consommatrice pour répondre au même objectif a été démontrée, des bonnes pratiques sont adoptées […] pour diminuer les impacts environnementaux du service utilisant un algorithme d’IA, les usages et les besoins visent à rester dans les limites planétaires […].
2. Et si d’autres algorithmes, plus frugaux, existent ? IA
À l’heure où l’on utilise des systèmes basés sur l’IA comme on enfilerait ses chaussettes, il est donc primordial de questionner la nécessité de ce type d’algorithme. C’est bien souvent là où le bât blesse : en tant que fondatrice d’entreprise, combien de collègues m’ont indiqué qu’ils utilisaient de l’IA pour avoir le buzzword requis pour obtenir certains financements ?
Ce que l’on prêche chez WedoLow, c’est donc de se questionner sur la nature de l’algorithme qui va solutionner le besoin soulevé : peut-être qu’un autre type d’algorithme peut être aussi performant tout en ayant un impact réduit sur les ressources pour l’exécuter. Cette question est assez similaire au fait de poser son cahier des charges dans une démarche d’éco-conception : il est essentiel de définir, en amont de tout développement, la qualité de service requise à la sortie de son application, pour éviter de faire appel à un bazooka pour tuer une mouche. On revient sur ce sujet juste après.
Si l’on prend maintenant la définition d’un système efficient d’IA, existe-t’il ces fameux mécanismes d’optimisation connus à l’état de l’art ? En effet, il y a un pan très actif en recherche sur ce sujet, mais certains travaux sont très aboutis et déjà déployés dans des applications industrielles. Évoquons trois sujets pour l’exemple :
L’un des éléments à regarder lorsque l’on cherche à explorer les mécanismes d’optimisation des algorithmes d’IA est, dans un premier temps, de les simplifier. Pour cela, nous allons citer deux éléments parmi les techniques existantes. Ainsi, l’arithmétique des données peut être optimisée. Pour la suite de cet article, prenons l’exemple particulier du système d’IA de type “deep learning”.
Ces algorithmes sont extrêmement résilients aux erreurs induites par une modification de l’arithmétique des données et on peut donc exploiter des unités arithmétiques et logiques entières plutôt que flottantes permettant de réduire le temps d’exécution mais aussi la consommation d’énergie. Sur ce point, de nombreux sujets existent déjà et sont grandement facilités par les outils existant, on parle de quantification.
Cependant, ce sujet implique, dans un premier temps, une très bonne connaissance de besoin de qualité requis à la sortie de l’application considérée. Prenons un exemple bien connu, le réseau SqueezeNet[1]. Son job ? Vous lui donnez une image en entrée et il vous dit de quoi il s’agit : un chat, un chien, le logo de WedoLow… Il classifie les images. Sa métrique de qualité, c’est donc un pourcentage de bonne classification : est-ce que le réseau se trompe 1% du temps ? 0.01% du temps ? Quelle est la valeur qui est ici acceptable ? C’est la première chose à définir pour ensuite aller “tailler” dans la donnée ! Par la suite, différents types d’arithmétique sont possibles : la virgule fixe, ou encore la virgule flottante de taille customisée[2].
Ce travail d’analyse de l’arithmétique des données peut également être réalisé conjointement avec du pruning. De la même manière qu’on va essayer, avec la quantification, de garder les tailles des données et les types d’arithmétique qui sont pertinents pour notre besoin en qualité, le pruning ou élagage permet de supprimer les paramètres d’un réseau qui ont un impact très faible sur la qualité de celui-ci, de manière à en réduire sa taille (certains réseaux de neurones profonds pouvant ainsi atteindre jusqu’à plusieurs centaines de milliards de paramètres[3]).
En effet, les réseaux de neurones ont généralement uniquement un sous-ensemble de paramètres qui sont essentiels à leur fonctionnement. Les poids sont généralement les paramètres qui sont élagués, et ce travail peut se réaliser à différents moments de la vie du réseau (pendant ou post training par exemple). Les deux techniques d’optimisation citées précédemment sont particulièrement utiles lorsqu’on travaille sur des réseaux devant s’exécuter sur des ressources réduites (par exemple, embarquées) en permettant d’en réduire la complexité.
3. S’appuyer sur les Tangled Program Graphs (TPGs)
L’une des pistes qui peut être intéressante à regarder lorsque l’on cherche à implémenter de l’intelligence artificielle sur un système contraint (par exemple, dans le domaine de l’embarqué) est de se tourner vers les Tangled Program Graphs (TPGs)[4]. Le but est de changer de paradigme et d’utiliser un modèle léger par construction (le TPG) en se basant sur les principes de la programmation génétique et du “reinforcement learning”, c’est-à-dire la méthode d’apprentissage “essai – erreur” (l’ordinateur est récompensé ou pénalisé). Le TPG est composé d’un ensemble de trois éléments :
- les programmes (suite d’instructions arithmétiques permettant de prendre un état d’entrée et d’en générer un nombre réel)
- les équipes
- les actions
Ces trois éléments composent le graphe, les programmes étant les arêtes du graphe, les équipes les nœuds internes et les actions les feuilles du graphe. Les TPGs permettent d’atteindre des résultats comparables à l’état de l’art tout en ayant besoin d’un à trois ordres de grandeur de calculs en moins et de deux à dix ordres de grandeur de mémoire en moins pour stocker le modèle d’inférence[5]. Pour renforcer leur efficacité, ceux-ci peuvent être implémentés à l’aide d’un langage performant tel que le C++ et parallélisé.
Conclusion
Pour finir, plusieurs méthodologies et techniques ont été proposées pour tendre vers des systèmes d’intelligence artificielle plus frugaux : quantification, pruning, approximations, ou encore de nouveaux paradigmes tels que les TPGs (évidemment, les exemples donnés dans cet article sont loins d’être exhaustifs). Ces pistes de réflexion permettent notamment de rendre compatibles des cibles embarquées et des algorithmes basés sur l’intelligence artificielle et leurs besoins en ressources.
Néanmoins, tout l’enjeu lorsqu’on cherche à optimiser la performance d’un algorithme d’IA est de connaître la qualité à garantir à la sortie de l’algorithme. A partir de là, on va pouvoir explorer de nouveaux compromis qualité / performance à l’aide des techniques évoquées précédemment.
- Sources
[1] Iandola, Forrest N., et al. « SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and< 0.5 MB model size. » arXiv preprint arXiv:1602.07360 (2016).
[2] Milot, Quentin, et al. « Wordlength Optimization for Custom Floating-point Systems. » Design and Architectures for Signal and Image Processing: 17th International Workshop, DASIP 2024, Munich, Germany, January 17–19, 2024, Proceedings. Springer Nature, 2024.
[3] Brown, Tom B. « Language models are few-shot learners. » arXiv preprint arXiv:2005.14165 (2020).
[4] Kelly, Stephen, and Malcolm I. Heywood. « Emergent tangled graph representations for Atari game playing agents. » Genetic Programming: 20th European Conference, EuroGP 2017, Amsterdam, The Netherlands, April 19-21, 2017, Proceedings 20. Springer International Publishing, 2017.
[5] Desnos, Karol, et al. « Gegelati: Lightweight artificial intelligence through generic and evolvable tangled program graphs. » Workshop on Design and Architectures for Signal and Image Processing (14th edition). 2021.