Quelle est l’empreinte écologique des entraînements de modèles en data science ?

CBTW
L’Actualité Tech — Blog CBTW
15 min readApr 7, 2020
Impact écologique de la data science et mesure de l’empreinte carbone du machine learning
Data center — Photo by Taylor Vick

Notre planète chauffe, c’est indéniable. Et à en croire les derniers modèles réalisés en 2019 par des laboratoires français pour le programme mondial de modélisation du climat (CMIP6*), programme qui par ailleurs alimente en données les rapports du GIEC**, elle va continuer à chauffer dans tous les scenarii envisagés.

Comme nous pouvons le voir dans cette animation, si nous ne changeons rien à nos habitudes (modèle SSP5 8,5 — croissance économique rapide alimentée par des énergies fossiles) l’augmentation de la température moyenne globale de la planète atteindrait 6 à 7°C d’ici à 2100 ! Seul un scenario beaucoup plus contraignant en termes d’activités (SSP1 1,9 — marqué par une forte coopération internationale et donnant priorité au développement durable), nous permettrait de respecter l’objectif des 2°C d’augmentation moyenne globale, tout en le dépassant temporairement au cours du siècle.

Cet objectif a d’ailleurs été voté et signé au cours de l’accord de Paris en 2015¹. On parlait alors même d’être “nettement en dessous des 2°C” et de tout faire pour “limiter l’élévation à 1,5°C”.
Parmi les leviers d’action retenus par les pays engagés dans cet accord, il y a notamment la réduction des émissions de gaz à effet de serre (GES). Effectivement il s’agit d’un levier majeur, comme de nombreuses études l’attestent depuis bien longtemps, comme le Résumé à l’intention des décideurs des rapports du GIEC.

Aujourd’hui un français émet en moyenne 11 Tonnes de CO2 par an². Or si l’on partage équitablement le quota de carbone que la terre peut absorber sur une année, il faudrait descendre en dessous de 2 T de CO2 par personne et par an³.

Pour y parvenir nous avons des outils à disposition en tant que citoyens, comme futur.eco par exemple, qui nous aident à percevoir l’impact de nos actions au quotidien. Ils nous permettent ainsi de mieux comprendre l’impact d’un trajet en avion ou encore d’une douche de 5 minutes.
Nous commençons également à être plus sensibilisés à l’impact de nos usages numériques⁴. À noter que ce secteur représente à lui seul tout de même 3,7% des émissions de GES de l’ensemble des activités humaines⁵. Vous pouvez retrouver de nombreux articles de qualité sur le sujet, tels que :

Mais en ce qui concerne notre métier de data scientist, nous n’avons aucune idée de l’empreinte écologique de notre travail. Nous avons donc décidé de nous attaquer à la question avec un premier exercice :

Mesurer le coût environnemental des entraînements de modèles de machine learning (ML).

Lien entre électricité et GES

L’entraînement des modèles de machine learning a effectivement un coût environnemental. Afin de mesurer ce coût, nous nous limiterons ici à estimer la quantité de CO2 émise par ces entraînements.
Les calculs effectués lors de ces entraînements sont nombreux et nécessitent des puissances computationnelles élevées, qui sont elles-mêmes gourmandes en consommation électrique. C’est bien cette électricité consommée qui sera source d’émission de CO2, dépendamment de la manière selon laquelle elle est produite.

Dans un pays comme la France, la production d’électricité n’aura en effet pas le même impact écologique qu’en Allemagne ou qu’aux États-Unis du fait des différents mix énergétiques utilisés.
La production allemande est réalisée à 39% avec du charbon⁶, là où la France n’en utilise quasiment pas et privilégie le nucléaire, qui produit entre 70 et 75% de son électricité⁷. En France, le taux moyen d’émission de CO2 par unité d’énergie produite est donc plus faible qu’en Allemagne (en 2019, 53gCO2/kWh⁷ contre 420gCO2/kWh⁸).
Nous veillerons donc à prendre en compte l’origine de l’électricité alimentant le serveur de calcul afin de mieux en estimer l’équivalent carbone, soit la quantité de CO2 émis par énergie consommée en g/kWh.

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning
Production mensuelle d’électricité en France sur le mois de janvier 2020 par filière, RTE

Pour plus de précision sur ce sujet, nous vous invitons à consulter ces deux outils qui donnent les chiffres de production d’électricité française en direct de manière assez détaillée sur le site de rte eco2mix, ou internationale sur le site electricitymap.

L’énergie consommée en machine learning

Avec la prolifération des modèles d’apprentissage profond (Deep Learning ou DL), nous avons vu la quantité de calculs nécessaires à l’entraînement de modèles prédictifs exploser. Et il en va de même avec la performance et le nombre des composants électroniques de calculs. Plus ces réseaux de neurones se composent de couches, plus le nombre de calculs à réaliser est important et donc plus élevée est la consommation d’énergie nécessaire.

Si l’on regarde l’évolution de la complexité algorithmique en coût de calcul des modèles à l’état de l’art sur ces dernières années, la tendance y est plutôt exponentielle.

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning
Le coût en calcul croît exponentiellement au cours du temps pour les modèles à l’état-de-l’art source : AI and compute

Mais il faut mettre en opposition le fait que les composants sont de plus en plus énergétiquement efficaces dans leurs calculs. En effet, si nous regardons de plus près l’évolution de l’enveloppe thermique (dont la définition est donnée juste après) des derniers GPUs, elle est assez stable alors même que le nombre de calculs que le composant est capable de réaliser par seconde augmente⁹.

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning
Une enveloppe thermique (TDP en anglais) plutôt stable au cours du temps… [9]
Impact écologique de la data science et mesure de l’empreinte carbone du machine learning
… mais une efficacité de calcul qui augmente d’un facteur 10 tous les 8 ans [9]

Plusieurs chercheurs se sont intéressés à la question du coût computationnel de ces entraînements, parfois très longs, comme décrit dans cet article : https://arxiv.org/pdf/1811.11880.pdf.

Mais pour nous l’exercice consiste à en connaître le coût environnemental, par le biais de la quantité de CO2 émis.

Comprendre la consommation électrique d’un calculateur

Avant de continuer à développer notre expérimentation, prenons un peu de temps pour comprendre ce qui est facteur de consommation d’électricité lors d’un calcul.

Tout composant d’un calculateur requiert de l’énergie, mais certains vont être plus gourmands que d’autres. On s’intéressera à la puissance de chacun des composants, c’est-à-dire sa capacité à consommer une quantité d’énergie par unité de temps. Afin de faciliter notre approche, nous avons négligé les composants peu sollicités et/ou peu consommateurs et nous sommes intéressés uniquement aux deux composants principaux :

  • Le CPU qui se charge d’exécuter les instructions envoyées par le système d’exploitation,
  • Le GPU, pas toujours nécessaire mais majoritairement utilisé dans notre cas d’usage puisqu’il s’occupe des traitements graphiques et s’avère donc particulièrement efficace pour les calculs matriciels.

Si l’on s’intéresse aux caractéristiques techniques fournies par les constructeurs, on nous parle d’Enveloppe Thermique ou Thermal Design Power (TPD), littéralement Puissance Thermique de Conception. Il s’agit de la puissance nécessaire à fournir au composant afin de dissiper la chaleur émise et lui permettre de fonctionner normalement. Un raccourci est donc souvent fait en estimant qu’il s’agit de la puissance théorique utilisée par le composant. La puissance réellement nécessaire au fonctionnement du composant dépendra toutefois de son pourcentage de capacité utilisée et variera au cours du temps.
Nvidia nous donne la possibilité d’accéder à cette information en temps réel lorsque l’on utilise leur GPUs, avec la commande nvidia-smi, on voit le pourcentage d'utilisation et la puissance en temps réel :

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning
Capture d’écran de la commande nvidia-smi où l’on voit la puissance consommée en cours

Il existe bon nombre de bases de données en ligne afin de trouver le TDP de n’importe quel composant. Par exemple, le TDP d’un GPU NVIDIA GTX TITAN X est de 250W alors que celui d’un CPU Intel Core i7 9800X est de 165W.

Qu’en est-il du cloud ?

Les cloud providers nous permettent d’avoir à disposition une puissance de calcul qui correspond aux besoins de la tâche à accomplir en allouant les ressources de façon à optimiser l’utilisation des composants (CPU et GPU). L’arrivée des cloud providers a ainsi permis l’accès à des ressources pour des entreprises ou particuliers qui n’auraient pas pu les acquérir auparavant pour des questions de coût.
Il faut donc aussi faire attention à l’effet de rebond, il nous est devenu tellement facile d’augmenter notre puissance de calcul que nous n’utilisons plus toujours les ressources de façon raisonnable.

Concernant la consommation énergétique des cloud providers, nous prenons en compte les composants mis à disposition mais aussi le PUE, Power Usage Effectiveness. Le PUE est un indicateur d’efficacité énergétique¹⁰, il correspond aux dépenses énergétiques liées au bon fonctionnement d’un data center, par exemple la ventilation. Le PUE est donc corrélé au taux de disponibilité d’un data center. Plus un data center est disponible, plus il a une infrastructure de backup et de refroidissement importante, et donc consomme de l’énergie. Il est toujours supérieur ou égal à 1, 1 étant l’objectif ultime des principaux data centers.

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning

Il est très difficile d’obtenir le PUE des cloud providers, seules certaines entreprises le communiquent lorsqu’il est proche de 1 pour montrer leur engagement dans la réduction des coûts énergétiques, c’est le cas notamment de Google¹¹. À noter que de nombreuses améliorations infrastructurelles ont été faites ces dernières années, comme l’utilisation du froid extérieur. Elles ont permis de diviser par deux le PUE sur les vingt dernières années¹². En 2014 une étude a été menée et conclue à un PUE moyen autour de 1.7¹³, aujourd’hui on peut considérer que les plus gros cloud providers ont un PUE autour de 1.2¹⁴. Cette notion de PUE est importante et doit être prise en compte dans nos calculs d’émission de GES lors de l’entraînement de nos modèles de Deep Learning sur des serveurs cloud.

Première approche explorée : la puissance théorique des composants

Pour le moment nous nous sommes limités à une machine locale.

Calcul théorique

Maintenant que nous y voyons un peu plus clair sur le rôle de chacun des composants et leur coût théorique énergétique, une première approche du calcul de l’énergie d’utilisation en découle aisément :

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning

L’énergie consommée (en kWh) se récupère donc en multipliant la puissance totale du calculateur (composé d’un CPU et de n GPUS) exprimé en W au temps d’entraînement en heure :

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning

Les émissions de CO2 se récupèrent en utilisant le facteur d’émission moyen d’électricité du pays.

Cette approche reste plutôt approximative puisqu’elle fait l’hypothèse d’une utilisation de puissance maximale de chacun des composants durant toute la durée de l’entraînement et omet la contribution des autres composants. Or, lors d’un entraînement d’un modèle de Deep Learning utilisant des GPUs, nous savons déjà que lorsque les GPUs sont utilisés, le CPU est moins sollicité et inversement.

Ayant à disposition une machine avec 2 cartes GPU NVIDIA 1080 Ti X et 1 CPU AMD Ryzen Threadripper 1900X 8-Core Processor, nous avons fait quelques expérimentations pour évaluer la pertinence de l’approche.

Selon l’équation (1), la puissance de ce genre de calculateur est donc de 604W, calculée en utilisant les données venant de ce site :

  • TDP du CPU : 274W
  • TDP d’un GPU : 165W

Mesure expérimentale

Comparons ce résultat avec le protocole expérimental suivant :

  • mise en place d’un contrôleur de consommation électrique sur la prise de notre serveur,
Impact écologique de la data science et mesure de l’empreinte carbone du machine learning
  • lancement de plusieurs entraînements, à chaque fois distribués sur les 2 GPUs avec ce code très basique,
  • récupération de l’énergie totale consommée relevée sur le contrôleur de chacun des entraînements,
  • la durée de chaque entraînement pouvant varier, nous avons ramené à la puissance moyenne en divisant par leur durée,
  • comparaison de notre valeur théorique de puissance à la moyenne des valeurs expérimentales.

Voici les résultats obtenus :

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning

La puissance moyenne serait donc d’environ 670W, soit un écart relatif d’un peu moins de 10%.
À prendre bien évidemment avec précaution étant donné le peu d’expérimentations que nous avons menées.

Il est intéressant de noter également que notre calcul théorique sous-estime la puissance réellement consommée, venant du fait que nous avons fait le choix de ne considérer que les principaux composants alors que d’autres comme la RAM ou le ventilateur consomment également.

Discussions

Avec cette approche, nous pouvons donc savoir que cette configuration de calculateur émet, en utilisant l’électricité française, environ 35 grammes de CO2 par heure d’entraînement. C’est-à-dire autant que si vous rouliez une centaine de mètres seul dans une voiture de taille moyenne à essence¹⁵. Pour information, le même entraînement aux États-Unis émettrait 333 grammes de CO2 par heure d’entraînement (équivalent à 1,3 km parcouru en voiture).

Nous pouvons donc remercier le mix énergétique français plus décarboné de nous permettre d’entraîner nos modèles avec un plus faible impact !

Et les gros modèles dont tout le monde parle ?

En extrapolant cette approche, nous pouvons estimer la quantité de carbone émise par les entraînements de gros modèles sur des quantités massives de données… À condition d’avoir toutes les informations nécessaires ! Or, il est assez rare d’avoir de manière très précise, le détail de l’ensemble des composants présents dans les calculateurs et le temps d’entraînement.

Prenons l’exemple d’un modèle entraîné à géolocaliser une photo sans aucune information supplémentaire¹⁶. Ces chercheurs de Google, basés aux États-Unis nous fournissent seulement un temps d’entraînement de 2,5 mois et le nombre de CPUs utilisés (200). En prenant une puissance moyenne de 200W, nous obtenons 2200 kg de CO2 émis, soit l’équivalent pour un passager d’un trajet en avion entre Paris et la Nouvelle-Orléans !

Si nous prenons l’exemple d’AlphaGo, le modèle entraîné par les équipes de DeepMind qui a battu les meilleurs joueurs mondiaux au jeu de go. À en croire le papier de recherche publié à la sortie d’AlphaGoZero¹⁷, cette dernière version n’aurait eu besoin ‘que’ de 72h d’entraînements sur 4TPUs et 44 cœurs CPU pour battre la précédente version, AlphaGoLee, qui avait nécessité plusieurs mois sur 48 TPUs. Puis, au total 40 jours d’entraînement pour devenir le meilleur joueur du monde¹⁸. Cela représenterait environ 1.5kW de puissance (en tenant compte de tous les composants en plus des TPUs), confirmé par le graphe fourni par Deepmind ci-dessous. Sur 40 jours, cela correspondrait donc à 1.3MWh d’énergie dépensée.

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning
source : https://deepmind.com/blog/article/alphago-zero-starting-scratch

Si les serveurs sont hébergés aux États-Unis, cela représenterait 585kg de CO2 émis, soit l’équivalent de ce que devrait émettre un humain sur un trimestre afin de rester dans l’objectif des 2°C d’augmentation de température. Je vous laisse le soin de faire ce calcul pour l’entraînement d’AlphaGo Fan qui a utilisé 178 GPUs, ayant une consommation 30 fois plus importante !

Deuxième approche explorée : utiliser la performance par unité de puissance

Certains fabricants fournissent comme information la performance (de calcul) par unité de puissance. Cette mesure nous donne la vitesse de calcul que le calculateur est capable de réaliser pour 1W de puissance fourni. La vitesse de calcul se mesure en nombre d’opérations par seconde par exemple, souvent exprimée en FLOPS ***.

Si nous connaissons le nombre d’opérations nécessaires durant l’entraînement d’un modèle (FLOPs ***), nous pouvons donc en extrapoler la puissance utilisée en kWh. Elle sera ensuite convertie en émission de CO2 en utilisant le facteur moyen d’émission de l’électricité comme pour la méthode précédente :

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning

Le nombre d’opérations faites lors de l’entraînement d’un modèle est difficile à obtenir. Des modules pour récupérer cette information ont été développés mais il reste encore du travail pour l’obtenir sur tous nos modèles de Deep Learning. Nous avons néanmoins testé cette méthode de calcul avec des modèles de réseaux de neurones connus pour lesquels nous disposons du nombre d’opérations¹⁹ et des super calculateurs pour lesquels nous disposons des performances par unité de puissance²⁰. La plupart du temps il s’agit de calculateurs dédiés à la recherche, jamais utilisé pour ce genre d’entraînement de modèles de Deep Learning mais nous voulions mener ces calculs pour avoir un ordre d’idée des grandeurs.

Pour un entraînement de 1 million d’inputs et 100 epochs, nous obtenons des émissions théoriques allant de 81 à 21 000 gCO2, ce qui correspond respectivement à 0,3 km et 82 km parcourus en voiture. Le modèle qui consomme le plus est le vgg-vd-19 (Very Deep Convolutional Networks for Large-Scale Image Recognition²¹), il oscille entre 21 000 et 2 200 grammes d’émission de CO2 théoriques en fonction du calculateur utilisé, soit 82 et 8,6 km de voiture.

Le calculateur qui consomme le moins est le Pangeas III situé en France, là encore le mix énergétique a une grande influence sur la différence de CO2 émis. Car c’est pourtant le calculateur qui a le FLOPS par watt le plus petit, il fait donc moins d’opérations par watt.
Le calculateur avec le plus grand FLOPS par watt est le A64FX prototype situé au Japon, si on entraîne le modèle vgg-vd-19 avec le même nombre d’input et d’epoch, les émissions théoriques de CO2 sont de 17 156 grammes soit 7 fois plus qu’avec le calculateur Pangeas III.

Voici nos résultats pour une sélection de modèles :

Impact écologique de la data science et mesure de l’empreinte carbone du machine learning
Impact écologique de la data science et mesure de l’empreinte carbone du machine learning

Conclusion

Nous nous sommes limités dans cette analyse à des approches très simples du calcul du coût environnemental des entraînements de modèles de machine learning. Mais cela nous a permis de nous donner une première idée de l’impact que nous pouvons avoir dans nos quotidiens de data scientist avec les modèles que nous développons.
Nous avons conscience que de nombreux paramètres ne sont pas pris en compte dans cette étude, notamment tout l’impact de la production des composants des machines, ou encore tout le temps passé à faire des analyses des données, implémenter le modèle, et surtout toute la consommation liée aux inférences.
NVIDIA estime que le coût d’un modèle repose à 80–90% sur ces inférences²². Ce pourcentage interpelle mais nous le challengerons lors d’une prochaine session de recherche et développement dédiée à ce sujet.
Nous pouvons néanmoins retenir que certains types de modèles sont très gourmands durant leur entraînement, et que la question de leur finalité se pose.

Alors quels leviers avons-nous à notre disposition afin de réduire notre empreinte carbone en tant que data scientist ?
Plusieurs exemples nous viennent après ces recherches :

  • Faire attention aux pays où sont hébergés les serveurs afin de privilégier une électricité au mix énergétique le plus décarboné possible, et se tourner vers des data centers écologiques.
  • Éviter de répéter inutilement des entraînements qui donneront des modèles que l’on jettera à la poubelle, en choisissant des techniques d’optimisation des hyperparamètres différents d’un bête et méchant gridsearch (exemple)
  • À l’heure où nous commençons à confronter l’interprétabilité d’un modèle à sa performance en faisant des arbitrages pour ne pas à tout prix privilégier un modèle précis au prix de sa transparence, nous pourrions imaginer ajouter une troisième mesure dans la balance : son impact environnemental. Nous n’avons pas réellement trouvé d’outils permettant de le faire aujourd’hui donc autant le créer ! Cela pourra également faire l’objet d’une nouvelle session de recherche et développement, dont nous vous partagerons les résultats.

Définitions

  • CMIP6 : Coupled Model Intercomparison Project, sixième édition

** GIEC : Groupe d’experts intergouvernemental sur l’évolution du climat

*** FLOPS : FLoating Operations Per Second. À ne pas confondre avec FLOPs qui correspond juste au nombre d’opérations : FLoating OPerations

Sources

¹ Accords de Paris, COP21, Paris, 2015
² L’empreinte carbone des Français reste stable, developpement-durable.gouv.fr
³ Global warimng of 1.5°C, IPCC
Pour une sobriété numérique, Shift Project, 2018
Empreinte environnementale du numérique mondial, GreenIT, 2019
Öffentliche Nettostromerzeugung in Deutschland im Jahr 2018, Institut Fraunhofer ISE, janvier 2019
https://www.rte-france.com/fr/eco2mix/eco2mix-mix-energetique
https://www.lemonde.fr/blog/huet/2019/05/06/electricite-et-co2-le-tableau-europeen/
https://www.karlrupp.net/2013/06/cpu-gpu-and-mic-hardware-characteristics-over-time/
¹⁰ https://www.greenvision.fr/menu-greenit/menu-pue
¹¹ https://www.google.com/about/datacenters/efficiency/
¹² greenit.fr/2020/03/04/data-center-seulement-6-de-hausse-en-8-ans/
¹³ https://www.datacenterknowledge.com/archives/2014/06/02/survey-industry-average-data-center-pue-stays-nearly-flat-four-years
¹⁴ https://aws.amazon.com/blogs/aws/cloud-computing-server-utilization-the-environment/
¹⁵ https://www.delijn.be/fr/overdelijn/organisatie/zorgzaam-ondernemen/milieu/co2-uitstoot-voertuigen.html
¹⁶https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45488.pdf
¹⁷ https://www.nature.com/articles/nature24270.epdf?author_access_token=VJXbVjaSHxFoctQQ4p2k4tRgN0jAjWel9jnR3ZoTv0PVW4gB86EEpGqTRDtpIz-2rmo8-KG06gqVobU5NSCFeHILHcVFUeMsbvwS-lxjqQGg98faovwjxeTUgZAUMnRQ
¹⁸ https://deepmind.com/blog/article/alphago-zero-starting-scratch
¹⁹ https://github.com/albanie/convnet-burden
²⁰ https://en.wikipedia.org/wiki/Performance_per_watt
²¹ https://arxiv.org/abs/1409.1556
²² https://www.forbes.com/sites/moorinsights/2019/05/09/google-cloud-doubles-down-on-nvidia-gpus-for-inference/#1fa3c4c36792

Nous publions régulièrement des articles sur des sujets de développement produit web et mobile, data science, cybersécurité, cloud, hyperautomatisation et organisation du travail. N’hésitez donc pas à suivre notre compte Medium pour être notifié de nos prochaines publications et réaliser votre veille professionnelle.

Vous pouvez également suivre nos publications et notre actualité professionnelle, via nos différents réseaux sociaux : LinkedIn, Twitter, Instagram, Youtube et Twitch.

Pour en savoir sur notre entreprise et nos expertises, vous pouvez aussi consulter notre site Positive Thinking Company et nos offres d’emploi.

Les auteurs

Carole Portugal
Data scientist
Arnaud Delaunay
Data scientist

--

--

CBTW
L’Actualité Tech — Blog CBTW

Nos experts partagent leur vision et leur veille en développement web et mobile, data et analytics, sécurité, cloud, hyperautomation et digital workplace.