#9 CODECARBON — Mesurer l’empreinte carbone de l’IA et la Data Science

Data for Good
3 min readJun 28, 2021

--

Article rédigé par l’équipe CodeCarbon

Dans un monde où les changements climatiques menacent la viabilité de nos modes de vie, il n’est pas de domaine qui soit exempt de prise de conscience et d’efforts pour être plus sobre énergétiquement. Notamment pas l’Intelligence Artificielle ni la Data Science. Mais pour diminuer la consommation énergétique de ses algorithmes et leur empreinte carbone, encore faut-il pouvoir la mesurer. C’est toute l’ambition de CodeCarbon.

CodeCarbon est développé par une équipe de bénévoles issue d’une collaboration entre Mila, Institut Québequois d’Intelligence Artifcielle, Comet.ml et BCG GAMMA afin d’estimer aussi précisément que possible d’une part la consommation énergétique d’un script Python d’autre part la traduction de cette consommation en émissions carbone. Pour ce faire, nous développons un package Python qui suit en temps réel la consommation énergétique des GPUs, CPUs et de la RAM. Ensuite, étant donnée une consommation en kWh et une localisation (soit fournie par l’utilisateur soit détectée automatiquement) nous utilisons des données gratuites et publiques d’intensité carbone des réseaux électriques pour estimer les émissions carbone engendrées par ce code.

Afin d’accélérer le développement de CodeCarbon nous avons eu la chance de pouvoir présenter ce projet à la Saison 9 de DataForGood et de bénéficier des contributions de bénévoles compétents et motivés! Les grands enjeux pour cette saison étaient:

  1. Développement d’une API en ligne pour stocker les séries temporelles d’émissions carbon au lieu de les écrire dans un fichier CSV local
  2. Structurer l’API afin de permettre d’agréger les données par utilisateur / projet / équipe / organisation
  3. Améliorer la collecte des données de consommation énergétique en supportant plus de configurations et d’environnements d’exécution
  4. Fournir un outil de visualisation permettant de comprendre ses émissions carbone et comment les diminuer

Grâce à une équipe de 4 bénévoles de compétition, CodeCarbon a bien grandi! Le déploiement de l’API est en très bonne voie, la structure est bien avancée et il ne manque plus grand-chose pour qu’elle soit accessible au grand public! Nous sommes très fiers d’avoir pu avancer aussi vite sur un sujet qui n’était pas dans les compétences de l’équipe initiale et qui n’aurait pas pu être aussi bien fait sans les contributions expertes des volontaires DataForGood. Nous avons également pu ajouter du support pour d’autres types de CPUs, inclure la consommation énergétique de la RAM, et ajouter des fonctionnalités pour faire fonctionner CodeCarbon dans des environnements partagés type SLURM.

Le plus grand chantier qui nous reste à ce jour est de développer l’outil de visualisation qui permette à la fois d’interagir avec l’API (pour créer/rejoindre un projet ou une équipe par exemple) et de présenter les courbes d’émissions carbone générées par l’utilisateur. Nous avons un prototype développé en Dash (Python) mais sommes ouverts à toute contribution si un lecteur ou une lectrice de cet article voulait contribuer!

CodeCarbon est une initiative open source qui a vocation à continuer d’être développée sur le long terme et un projet si ambitieux ne saurait être développé en si peu de temps. Nous voulons continuer sur ces grands axes dans les mois à venir et afin de regrouper des bénévoles dans le monde entier nous avons élu domicile au sein d’une communauté internationale grandissante: Climate Action Tech (CAT). Pour nous rejoindre, remplissez simplement leur formulaire d’inscription et retrouvez-nous sur #proj-codecarbon!

Parce que c’est un projet Data For Good, CodeCarbon est open source, ici le GitHub : https://github.com/mlco2/codecarbon

Si votre curiosité à été titillée et que vous voulez en savoir encore plus sur les projets, Data For Good vous invite à nous rejoindre ce 1 Juillet pour son Démo Day !

--

--

Data for Good

Data For Good est une communauté de data scientists bénévoles mettant leurs compétences au profit de la résolution de problèmes sociaux.