Publié le 15/11/2022
Data Science
Efficience énergétique et IA
L’actualité politique et les nombreuses alertes sur le réseau de transport d’électricité RTE nous incitent à communiquer sur un enjeu crucial : l’utilisation parcimonieuse des ressources énergétiques. Ce thème n’est pas nouveau pour nous : l’agence Kernix a apporté sa pierre, par exemple, en réalisant le site institutionnel de Mai à Vélo qui promeut l’utilisation de la bicyclette. Nos nombreuses réalisations dans le secteur énergétique et un secteur intimement lié, celui des transports, témoignent de notre appétence pour ce sujet. Pourtant, une expertise de l’agence Kernix interroge : l’intelligence artificielle (IA) n’est-elle pas incompatible avec l’engagement en faveur de l’efficience énergétique ?
Le présent article vise à répondre à ce questionnement naturel suivant deux axes :
- l’apport de l’IA pour optimiser l’utilisation des ressources ;
- les choix d’implémentation visant à utiliser moins de ressources.
L’IA au service de l’écologie
L’intelligence artificielle, discipline majeure de la science des données, entretient un rapport privilégié avec le progrès. Utilisée à bon escient, elle permet de résoudre des problèmes qu’il serait difficile de solutionner autrement. Par apprentissage automatique, l’IA peut apprendre d’expériences passées et ainsi éviter à l’utilisateur (ou au développeur) d’expliciter les étapes menant à la décision.
Par exemple, dans le cas où on cherche à réduire la consommation énergétique d’un bâtiment tout en gardant une température acceptable, l’IA peut trouver les réglages de la chaudière adaptés à la température extérieure, à l’ensoleillement, etc. Autrement, il faudrait faire appel à des experts pour modéliser les échanges thermiques, ce qui se révèle extrêmement complexe dans certains cas (chauffage d’une école, d’une grande copropriété, etc.). L’approche par IA, plus spécifiquement par optimisation sous contraintes, est celle que nous avons utilisée pour notre projet avec Dalkia.
De façon moins directe, l’IA permet le développement de filières mutualisant les ressources, telles que les transports collectifs. À ce titre, l’agence Kernix a fait appel à l’IA pour l’entretien du réseau ferroviaire de la SNCF. Il s’agissait pour ce cas-là, d’une modélisation à l’aide de graphes.
De manière générique, l’IA peut bien souvent être vue comme l’exploitation de données pour optimiser un objectif mathématique (ou fonction de coût). Il suffit alors que le coût à minimiser par apprentissage automatique inclue une dimension énergétique pour que l’IA contribue à gagner en efficacité énergétique. Cette dimension énergétique n’est bien souvent pas l’objectif affiché, les entreprises privilégiant le rendement financier. Cependant, réduire les coûts financiers revient souvent à réduire les dépenses énergétiques.
Illustrons le lien entre coût financier et énergétique avec une de nos réalisations pour le laboratoire pharmaceutique Servier : l’IA permet des économies en sélectionnant les molécules les plus prometteuses pour l’élaboration de médicaments. Une alternative plus coûteuse est de tester chimiquement plus de molécules. Cette approche nécessiterait l’utilisation de davantage de robots et impliquerait par conséquent un coût énergétique plus élevé.
Nous l’avons vu à travers quelques exemples, l’IA permet de réduire la consommation énergétique de processus industriels. Il reste toutefois à s’assurer que la méthode de résolution des coûts (l’IA en l’occurrence) n’utilise pas plus d’énergie que l’économie réalisée avec la solution trouvée.
Des algorithmes plus efficaces
L’utilisation de réseaux de neurones artificiels de plus en plus complexes, faisant intervenir de nombreuses couches de calculs, favorise les interrogations quant à la réelle plus value de l’IA pour consommer moins.
Certaines entreprises (comme OpenAI) à la pointe dans le domaine du deep learning et utilisatrices de modèles d’IA à la fois complexes et gourmands, sont obligées de riposter et montrent que les modèles ont tendance à être de plus en plus efficaces au fil des années.
En effet, si les modèles sont de plus en plus précis, c’est souvent qu’avec la même puissance de calcul, ils apprennent mieux. Par exemple, les Transformers ont révolutionné le traitement du langage naturel parce qu’ils proposent une implémentation d’un mécanisme d’attention plus efficace que ce qui était fait auparavant. Le titre de l’article scientifique les ayant popularisés « Attention is all you need » l’explique, en substance : utiliser uniquement un mécanisme d’attention est plus efficace que d’utiliser une combinaison d’un mécanisme d’attention et de couches de convolutions ou de récurrence.
Modèles pré-entraînés
Il n’en demeure pas moins que ces modèles sont souvent entraînés sur des volumétries gigantesques de données. Yoav Goldberg, chercheur renommé dans le domaine du traitement du langage naturel, évaluait ainsi à 12M$ le coût d’entraînement du modèle GPT-3 d’OpenAI (sans compter les essais liés à la conception du modèle). Il est ainsi difficile de déclarer que l’IA utilise peu de ressources.
Au sein de Kernix, nous n’avons pas encore eu l’occasion d’entraîner de tels modèles. Cependant, puisqu’ils existent et sont librement disponibles, nous ne nous privons pas d’utiliser ces modèles pré-entraînés comme base de modèles dont nous affinons l’entraînement sur les données spécifiques de nos clients. Le surplus d’énergie utilisée est ainsi très faible.
Les gros modèles de deep learning ne sont cependant pas la panacée. D’autres techniques sont souvent beaucoup plus efficaces.
Réduction de dimension
Les données sont décrites par des variables, ou caractéristiques qui, dans le cas d’un format texte ou images, sont nombreuses. En effet, un texte est souvent décrit par autant de variables qu’il y a de mots différents, une image est décrite par autant de variables que le triple du nombre de pixels dans l’image. Lorsque les variables sont nombreuses, le poids de la donnée est important, et le nombre de calculs effectués par les algorithmes croît avec le nombre de variables.
Un ensemble de techniques vise à réduire la dimension des données, c’est-à-dire à décrire les données par un nombre de variables plus petit. Le nombre de calculs est alors réduit, et la consommation énergétique est moindre. À titre d’exemple, l’analyse en composantes principales permet de réduire la dimension tout en conservant l’information essentielle.
D’autres méthodes reposent sur ce même principe, à l’instar de l’algorithme word2vec qui capture, dans un nombre de dimensions réduit, l’information sémantique des mots. Ce type de modèles, appelés word embeddings, combinent d’ailleurs ce principe avec celui de l’apprentissage générique évoqué précédemment (modèles pré-entraînés).
Au-delà du principe de réduction de dimension en amont de l’application d’un algorithme prédictif, une approche plus poussée consiste à utiliser une réduction de dimension implicite au cœur de l’algorithme d’apprentissage automatique. C’est le cas de la classification croisée qui, lorsqu’elle est appliquée au texte, compresse l’information apportée par la classification des mots pour améliorer la classification des documents, et réciproquement.
Vitesse de convergence
Les algorithmes de deep learning optimisent souvent leur objectif mathématique par une application directe de descente de gradient. Cet algorithme d’optimisation est assez générique et requiert peu de compétences mathématiques pour être utilisé. Il est suffisamment versatile pour s’appliquer à de nombreux objectifs mathématiques, d’où sa popularité.
Introduire de l’expertise humaine pour reformuler les objectifs mathématiques permet d’appliquer un ensemble d’algorithmes différents qui, grâce à des formulations explicites de certaines étapes de résolution, permettent une convergence plus rapide vers l’objectif mathématique. La résolution analytique de ces étapes, lorsqu’elle est possible, est alors immédiate.
L’optimisation de l’objectif mathématique constitue une part importante du travail du data scientist. Le choix de la méthode de résolution se révèle dans certains cas déterminante pour obtenir une solution dans un temps raisonnable. Certaines de nos missions se focalisent essentiellement sur cet aspect d’optimisation mathématique. Parfois, l’optimisation se fait sous contraintes, c’est-à-dire que l’espace possible des solutions est restreint.
Lorsque l’augmentation de la vitesse de convergence est obtenue par un choix judicieux des algorithmes, elle permet de consommer moins d’énergie. Il est évident qu’augmenter la puissance de calcul permet de résoudre le problème d’optimisation plus vite, mais ne réduit pas la consommation d’énergie.
Des implémentations qui économisent les ressources
L’algorithme d’optimisation joue un rôle primordial dans la consommation énergétique. D’autres choix d’implémentation sont aussi importants.
Cloud computing
Le cloud computing permet de ne payer que les ressources que l’on consomme : plutôt que d’avoir un serveur qui tourne en permanence, qu’il soit beaucoup sollicité ou non, il est intéressant de mutualiser les serveurs. Ceci consiste souvent à packager des services pour qu’ils tournent dans des conteneurs (Docker) ou machines virtuelles sur les différentes machines de l’hébergeur.
Lorsqu’on entraîne un modèle, la machine virtuelle n’est allumée que pendant la durée de l’entraînement. Lorsque ce n’est plus le cas, la machine physique peut être utilisée par une autre machine virtuelle. À grande échelle, le cloud computing permet des économies significatives de ressources matérielles.
L’utilisation du cloud computing peut se faire également lors de l’utilisation du modèle d’IA pour la prédiction. Dans ce cas, les économies sont faites à deux niveaux :
- la machine utilisée pour la prédiction peut être beaucoup plus petite que celle utilisée pour l’entraînement ;
- le nombre de machines utilisées pour la prédiction peut s’adapter à la demande et fluctuer avec le temps.
Langage de programmation
Des langages de programmation de haut niveau tels que le langage de science des données R et Python, ou encore l’écosystème Java sont utilisés pour l’IA. Ces langages interprétés ne sont intrinsèquement pas les plus adaptés pour l’utilisation précise des ressources matérielles. C’est pour cela que nous utilisons certaines bibliothèques scientifiques telles que NumPy et SciPy, ou encore TensorFlow qui sont spécifiquement optimisées. Ces bibliothèques sont implémentées avec des langages de plus bas niveau (tels que C et C++), ce qui permet des optimisations. Elles utilisent elles-mêmes des bibliothèques extrêmement optimisées d’algèbre linéaire, implémentées en Fortran et Assembleur.
Parallélisation matérielle
Les bibliothèques d’algèbre linéaire telles que BLAS et LAPACK cherchent à tirer partie des spécificités des différentes architectures matérielles (ex : type de processeur). Elles ont recours à des jeux d’instructions Assembleur spécifiques à chaque architecture matérielle. En particulier, les instructions SIMD permettent en une seule instruction Assembleur, d’effectuer plusieurs calculs en parallèle. Elles exploitent ainsi les capacités de calcul au maximum, et visent à avoir le meilleur rapport calculs / énergie utilisée.
Le choix des bibliothèques d’algèbre linéaire a un fort impact : nous avons pu observer un facteur de 1 à 100 du temps d’exécution d’algorithmes en changeant seulement cette couche (BLAS), tout en utilisant les mêmes bibliothèques scientifiques NumPy et SciPy.
Dans le cas des frameworks comme TensorFlow, la bibliothèque d’algèbre linéaire est intimement liée au framework, ne permettant pas d’en changer comme avec NumPy. En revanche, le package TensorFlow, et sa bibliothèque d’algèbre linéaire intégrée, peuvent être spécifiquement compilés pour la plateforme utilisée. Cette optimisation n’est pas faite par défaut lorsqu’on installe TensorFlow avec le gestionnaire de paquets de Python et qu’on utilise ce framework en mode CPU.
L’efficience énergétique au cœur de votre projet
L’efficience énergétique sera à n’en pas douter un aspect majeur à prendre en compte ces prochaines années. L’IA permet à certaines industries de mieux répondre à cet enjeu. Quel que soit le secteur, par la réglementation ou le poids des décideurs et / ou des consommateurs, les systèmes reposant sur l’IA devront y porter une attention toute particulière.
Des choix de conception, d’implémentation ou de mise en production, sont autant de facteurs impactant l’efficience énergétique de l’IA. Kernix vous apporte son expertise avec plusieurs dispositifs : l’audit de modèles déjà en places, la conception et la réalisation de systèmes d’IA sur mesure… Contactez-nous !