Comment faire de l’IA plus verte ?

Les bonnes pratiques du Green MLOps

Firas Dhaha
neoxia
7 min readNov 3, 2022

--

Le développement de l’intelligence artificielle continue d’accélérer. Les publications se multiplient, les processeurs GPU et TPU sont de plus en plus puissants et optimisés pour des calculs de haute performance, les algorithmes de vision par ordinateur et de traitement de langage naturel sont en croissance exponentielle en atteignent aujourd’hui plus de 175 milliards de paramètres (OPT-175B).

L’innovation en IA a un impact positif certain. Cependant, son coût environnemental est considérable. La complexité croissante des algorithmes entraîne celle des calculs et avec elle, la hausse du temps d’entraînement. Ainsi, la consommation énergétique des processeurs est de plus en plus importante et l’empreinte carbone de l’IA s’étend . En effet, l’entraînement d’un modèle de Transformer (modèle de traitement de langage naturel) peut émettre cinq fois plus de CO2 que l’ensemble du cycle de vie d’une voiture.

Chart: MIT Technology Review Source: Strubell et al.

Dans la phase d’opérationnalisation des projets Machine Learning (MLOps), il est possible d’incorporer des bonnes pratiques pour réduire l’impact environnemental négatif de l’exploitation de l’IA. Dans cet article, je vous présente quelques-unes de ces pratiques, qui interviennent à plusieurs moments du cycle de vie ML.

A. Continuous Deployment/Cloud Infrastructure:

  • Le choix des data centers:

Lors d’un entraînement ML, les émissions de carbone proviennent principalement de la consommation énergétique des processeurs qui effectuent le calcul : la source de l’ énergie employée est donc cruciale pour leur bilan environnemental. Les Cloud providers laissent un choix assez vaste dans la localisation de l’hébergement des projets, et selon le réseau électrique qui alimente le data center choisi, le bilan carbone varie. Comme le montre le graphique ci-dessous, le choix de data center peut faire varier la pollution d’un même entraînement d’un facteur 40.

Emissions carbones d’un entraînement de 100h sur une machine Tesla P100 GPU sur GCP
Emissions carbone d’un entraînement de 100 heures sur une machine Tesla P100 GPU sur GCP (données simulées en utilisant mlco2)

Il vaut donc mieux privilégier les data centers les moins polluants pour héberger des jobs ML.

  • Le choix des processeurs de calcul:

Un autre facteur important dans le choix d’une infrastructure IA responsable est de bien utiliser les ressources de calculs. Votre GPU/TPU contrôle non seulement les performances de calcul — et ainsi la vitesse à laquelle l’algorithme peut converger — mais aussi la quantité d’énergie qui sera consommée lors de ce temps d’entraînement.

Le débit (vitesse) d’entraînement par Watt de puissance énergétique sur plusieurs types de processeurs GPU (Source)

Deux facteurs sont donc à prendre en compte:

  • La performance de calcul: réduction de temps d’entraînement
  • L’efficacité énergétique: la quantité d’énergie consommée par unité de temps (la puissance).

Un bon choix de processeurs permet d’effectuer des calculs rapides, mais sans être trop gourmand en énergie.

Les nouvelles générations des GPUs sont généralement plus optimisées vu que leurs architectures sont mieux ajustés aux besoins de calcul mais aussi la taille des circuits intégrés (les semi-conducteurs) diminue de manière significative (NVidia Geforce GTX 1050 est conçu avec des circuits de taille 14 nm alors la NVidia Geforce RTX 4090 aura une taille de 5 nm). En plus de cela, il faut que le choix de GPU soit le mieux adapté à la tâche qu’il va réaliser: la taille de la RAM ainsi que le nombre de coeurs selon les batches de données qu’il va traiter, surtout pour éviter le réchauffement du matériel (et ainsi le besoin de fournir en plus une énergie de refroidissement).

B. Continuous Training

Une phase centrale du cycle de vie ML concerne l’entraînement du modèle. Elle va déterminer la complexité du problème et, en conséquence, le temps de calcul nécessaire pour le résoudre.

L’optimisation du modèle

Optimiser les modèles pour les rendre plus efficaces et plus rapides est une bonne approche pour améliorer leur empreinte carbone, mais aussi pour les rendre plus performants dans les tâches données. Dans cette partie, on vous présente quelques méthodes pour réduire la phase d’optimisation de la modélisation.

  • Neural Architectural Search: Le Neural Architectural Search (NAS) est une technique très utilisée ces dernières années. Elle permet d’obtenir un modèle plus performant et plus efficace que les résultats obtenus par des experts. L’avantage de cette technique est que la recherche est faite une fois par problème et non par l’entraînement jusqu’au bout de plusieurs modèles. Les modèles obtenus avec NAS sont donc généralement moins consommateurs d’énergie, plus performants et plus rapides avec moins de paramètres. A titre exemple, le modèle de Transformer (un modèle de traitement de langage naturel) développé en 2017 pour le NLP a été optimisé avec NAS en 2019 pour obtenir le Evolved Transformer qui est ~1.3x plus rapide et avec 37% moins de paramètres. encore été optimisé en 2021 pour obtenir le Primer qui est ~4.1x plus rapide et ainsi permet de réduire la consommation énergétique des ces modèles.
  • AutoML: Dans le même esprit que le NAS, l’AutoML est très fortement conseillé pour obtenir des modèles plus rapides et plus optimisés permettant de faire des économies financières mais surtout énergétiques. L’AutoML (Automated Machine Learning) est déjà une option fournie par tous les cloud providers qui peut être déployée très rapidement pour n’importe quelle problématique ML. Ainsi, il est important de semer les avantages de cette technologie pour améliorer l’efficacité de nos projets.
  • Ne pas commencer de zéro: Un des avantages de la data science, c’est que le domaine est très basé sur la collaboration et la démocratisation des produits. Il faut donc profiter de cet effort collectif pour ne pas ré-entraîner des modèles de zéro à chaque fois. La plupart des gros modèles produits par la communauté avec un coût énergétique d’entraînement élevé sont en open-source. La réutilisation de ces modèles par des milliers d’utilisateurs permet donc de compenser l’empreinte carbone initiale: en d’autres termes, plusieurs cas d’usage se feront par un entraînement partiel (transfer learning) ou une utilisation directe (sans entraînement).
  • Parallèlisation: Tous les GPUs et TPUs à disposition aujourd’hui sont multi-cores et permettent la parallélisation des calculs. L’utilisation de cette capacité permet donc d’accélérer les entraînements et de réduire le temps de consommation énergétique par les processeurs. Cette parallélisation repose sur la bonne utilisation des frameworks ML: Pytorch, TensorFlow, Pyspark. Ceux-ci offrent des méthodes de calcul distribué optimisées qui permettent de paralléliser le processus d’entraînement et d’ainsi réduire l’empreinte carbone.

C. Continuous Monitoring:

Avoir conscience des détails de la consommation énergétique des différentes parties du projet est crucial pour réussir la transformation écologique du paradigme des projets data science. C’est à travers ces données qu’on peut agir pour améliorer et optimiser notre empreinte carbone.

  • Monitoring de l’entraînement:

L’entraînement est la première partie à monitorer, puisqu’elle représente le cœur des dépenses énergétiques d’un projet ML. La veille sur l’entraînement consiste à suivre le processus d’optimisation du modèle ainsi que l’évolution des métriques de performance. A travers ces observations, on peut décider des seuils pour l’arrêter. Un exemple est le early stopping, qui permet d’arrêter l’entraînement si l’optimisation stagne. Cela permet de gagner du temps et de l’énergie qui auraient été dépensés inutilement.

  • Monitoring de l’utilisation des processeurs:

Au-delà du monitoring des métriques, on peut aussi observer les performances des processeurs de calcul. En l’occurrence, on doit veiller à ce que notre utilisation des processeurs soit la plus efficace et optimale possible. On regarde si la charge de calcul est bien distribuée sur tous les cores/processeurs, s’il y a des cas de surcharge ou de sous-charge. On peut ensuite diagnostiquer ces sous-performances et agir pour optimiser l’utilisation des ressources.

  • Monitoring de l’empreinte carbone:

Enfin, on peut directement monitorer l’empreinte carbone de nos projets. Ceci devient de plus en plus facile : tous les cloud providers offrent des services pour créer des dashboards détaillant l’empreinte carbone de votre utilisation du cloud. On peut citer Carbon Footprint de GCP ou Emissions Impact Dashboard d’Azure ou Carbon Footprint Reporting d’AWS. A travers ces dashboards, on peut repérer les ressources les plus polluantes et repenser l’infrastructure pour la rendre plus écologique.

Conclusion

Si les modèles d’intelligence artificielle ont une empreinte carbone non négligeable, il y a plusieurs bonnes pratiques pour la réduire:

  • Choisir la bonne zone d’hébergement
  • Choisir une infrastructure adaptée
  • Optimiser les modèles
  • Utiliser le Transfer Learning si possible.
  • Veiller sur les processus d’entraînement et leurs consommations

Toutes ces pratiques supposent une utilisation des ressources cloud pour héberger les projets ML. Ceci est en effet beaucoup plus écologique que d’allouer des serveurs on-premises plus énergivores étant donné le manque de partage de ressources entre les utilisateurs.

Ces pratiques permettent d’ agir concrètement pour que l’intelligence artificielle soit un élément de progrès, aie un impact positif sur notre société et réduise son impact sur l’environnement en évitant de faire porter un fardeau supplémentaire sur notre planète.

--

--

Firas Dhaha
neoxia
0 Followers
Writer for

Data Consultant & ML Engineer @Neoxia