Dans un monde de plus en plus numérisé, l’intelligence artificielle et le calcul intensif sont devenus des moteurs d’innovation. Cependant, cette puissance de calcul a un coût caché : une consommation énergétique significative et, par conséquent, une empreinte carbone grandissante. Comment concilier innovation technologique et responsabilité environnementale ? C’est là qu’intervient CodeCarbon.
CodeCarbon est un outil open source qui permet de mesurer et de visualiser l’impact environnemental de vos calculs informatiques. Que vous soyez un développeur, un data scientist ou une organisation, comprendre l’empreinte carbone de votre code est la première étape vers un numérique plus durable.

Pourquoi CodeCarbon ? L’urgence d’une IA verte
L’IA, en particulier l’apprentissage profond, est gourmande en ressources. L’entraînement de modèles complexes, le stockage de vastes ensembles de données et le fonctionnement des centres de données consomment d’énormes quantités d’énergie. Cette consommation se traduit directement par des émissions de CO₂.
CodeCarbon répond à un besoin pressant : rendre visible l’invisible. Il transforme la consommation d’énergie abstraite en une mesure concrète de CO₂ équivalent, permettant aux acteurs du numérique de prendre conscience de leur impact et d’agir en conséquence.
Comment ça marche ? La magie derrière CodeCarbon
CodeCarbon est une bibliothèque Python facile à intégrer qui estime vos émissions de CO₂ en quatre étapes clés :
- Suivi de la consommation d’énergie : Il mesure la puissance consommée par les ressources matérielles utilisées par votre code (CPU, GPU, RAM).
- Détection de votre localisation : Il identifie automatiquement où votre code est exécuté (localement, sur site ou dans le cloud).
- Calcul des émissions : En utilisant des données publiques sur l’intensité carbone du réseau électrique de votre région, il convertit la consommation d’énergie mesurée en kilogrammes de CO₂ équivalent. L’intensité carbone varie énormément d’une région à l’autre en fonction du mix énergétique (nucléaire, renouvelable, fossile).
- Rapports de résultats : Il fournit un feedback clair sur l’énergie consommée (kWh), le CO₂ équivalent émis (kg) et les informations régionales.
CodeCarbon peut fonctionner en mode en ligne (pour récupérer les données d’intensité carbone en temps réel) ou hors ligne (en spécifiant manuellement un pays ou une région).
Qui est derrière ce projet ? Une communauté engagée
CodeCarbon est un projet open source, gratuit et communautaire, né d’une collaboration entre plusieurs acteurs majeurs :
- Mila : L’Institut québécois d’intelligence artificielle, un leader mondial de la recherche en IA.
- BCG GAMMA : L’équipe mondiale de science des données et d’IA du Boston Consulting Group.
- Haverford College : Une institution académique américaine.
- Comet.ml : Un fournisseur de solutions MLOps.
Le projet est maintenu par des bénévoles de Mila et de la communauté DataForGoodFR, ainsi que des ingénieurs de Comet.ml et BCG GAMMA, ce qui garantit son indépendance et son évolution constante.
CodeCarbon en action : exemples d’utilisation
L’intégration de CodeCarbon dans votre code Python est simple et non intrusive.
1. Utilisation avec un décorateur (pour une fonction) :
from codecarbon import track_emissions
@track_emissions()
def entrainer_mon_modele_ia():
# Votre code d'entraînement de modèle intensif en calcul ici
print("Début de l'entraînement du modèle...")
# Simuler un calcul
_ = [i**2 for i in range(10**7)]
print("Fin de l'entraînement du modèle.")
if __name__ == "__main__":
entrainer_mon_modele_ia()
2. Utilisation avec un gestionnaire de contexte (pour un bloc de code) :
from codecarbon import EmissionsTracker
# Le tracker peut être configuré (ex: output_file, project_name, measure_power_secs)
tracker = EmissionsTracker(output_file="emissions_report.csv", project_name="MonProjetIA")
tracker.start()
# Votre code d'entraînement ou de calcul intensif ici
print("Début du calcul intensif...")
_ = [i**2 for i in range(10**8)]
print("Fin du calcul intensif.")
tracker.stop()
print(f"Émissions totales : {tracker.emissions} kg CO2")
Après l’exécution, CodeCarbon générera un fichier emissions.csv (ou affichera les résultats dans la console) détaillant la consommation d’énergie et les émissions de CO₂ pour la période mesurée.
CodeCarbon dans Google Colab (avec GPU)
CodeCarbon est particulièrement utile dans des environnements comme Google Colab, où l’on utilise souvent des GPU pour des calculs intensifs. L’intégration est simple et permet de suivre l’impact de vos notebooks.
# 1. Installation de CodeCarbon
!pip install codecarbon
# 2. Vérifier la disponibilité du GPU (optionnel, pour s'assurer que CUDA est là)
!nvidia-smi
import torch
from codecarbon import EmissionsTracker
from tqdm.notebook import tqdm # Pour une barre de progression visuelle dans Colab
# Fonction pour simuler un entraînement de modèle sur GPU
def train_gpu_model():
# Détecter le périphérique (GPU si disponible, sinon CPU)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Utilisation du périphérique: {device}")
if device.type == 'cuda':
# Opération GPU intensive (ex: multiplication de matrices)
a = torch.randn(10000, 10000, device=device)
b = torch.randn(10000, 10000, device=device)
for _ in tqdm(range(100), desc="Calcul GPU"):
c = torch.matmul(a, b)
print("Calcul GPU terminé.")
else:
print("Pas de GPU disponible, exécution sur CPU (les émissions seront moindres).")
_ = [i**2 for i in range(10**7)] # Simuler un calcul CPU
# Initialiser le tracker
# CodeCarbon détectera automatiquement le GPU et la localisation du serveur Colab.
tracker = EmissionsTracker(
project_name="Colab GPU Test",
output_file="emissions_colab.csv",
measure_power_secs=10 # Mesurer toutes les 10 secondes
)
# Démarrer le suivi
tracker.start()
# Exécuter la fonction d'entraînement
train_gpu_model()
# Arrêter le suivi et obtenir les émissions
emissions_data = tracker.stop()
print("\n--- Rapport d'émissions CodeCarbon ---")
print(f"Émissions de CO2 : {emissions_data} kg")
print(f"Rapport détaillé sauvegardé dans emissions_colab.csv")
# Afficher le contenu du fichier CSV (optionnel, nécessite pandas)
try:
import pandas as pd
df_emissions = pd.read_csv("emissions_colab.csv")
print("\nContenu de emissions_colab.csv :")
print(df_emissions)
except ImportError:
print("\nPandas non installé. Impossible d'afficher le CSV directement.")
Qui l’utilise et quels résultats ? L’impact concret
CodeCarbon est adopté par une large gamme d’acteurs :
- Développeurs et data scientists : Pour intégrer la durabilité directement dans leurs pratiques de codage et d’entraînement de modèles.
- Organisations et entreprises : Pour suivre et réduire l’empreinte carbone de leurs infrastructures informatiques et de leurs projets d’IA, contribuant à leurs objectifs RSE (Responsabilité Sociale des Entreprises).
- Chercheurs : Pour évaluer l’impact environnemental de leurs travaux et explorer des méthodes d’IA plus économes en énergie.
L’impact principal de CodeCarbon est de :
- Sensibiliser : Il rend tangible l’impact environnemental du calcul, encourageant une prise de conscience collective.
- Permettre des choix éclairés : En fournissant des données d’émissions, il aide à choisir des régions de cloud plus “vertes” ou à optimiser les architectures de modèles pour réduire la consommation.
- Optimiser l’utilisation de l’énergie : Il identifie les phases de calcul les plus énergivores, permettant d’améliorer l’efficacité sans sacrifier la performance.
- Promouvoir la transparence : Il encourage la publication de l’empreinte carbone dans les publications scientifiques et les rapports techniques.
Conclusion
CodeCarbon est bien plus qu’une simple bibliothèque ; c’est un mouvement vers une IA plus responsable et durable. En rendant la mesure de l’empreinte carbone accessible à tous, il offre un outil puissant pour transformer nos pratiques et construire un avenir numérique plus respectueux de l’environnement.
Alors, prêt à mesurer l’impact de votre code ? Essayez CodeCarbon et contribuez à une IA plus verte !
Références
- Site officiel CodeCarbon : https://codecarbon.io/
- Dépôt GitHub CodeCarbon : https://github.com/mlco2/codecarbon

