CarbonWatch

CarbonWatch estime l'énergie et l'empreinte carbone de l'usage des services d'IA à partir du volume d'octets reçus, sans lire un octet de contenu et sans droits administrateur. Voici le calcul entier, ses facteurs, et ce qu'il ne dit pas.

Deux estimateurs, chacun adossé à sa physique

Services distants — au volume reçu. L'énergie d'une inférence distante suit le nombre de tokens produits, dont les octets reçus sont le meilleur indice accessible sans lire le trafic. Un flux de génération arrive token par token : le débit d'octets est le débit de la réponse.

Facturer le temps de connexion, comme le faisait le prototype, surévalue lourdement : claude.ai et ChatGPT gardent des sockets HTTP/2 ouvertes en keep-alive, si bien qu'un onglet ouvert et inactif reste établi des heures. Sur un delta d'octets, il pèse zéro.

Modèles locaux — au temps d'inférence. L'énergie est ici celle de cette machine : puissance appelée × durée. Les octets, qui circulent sur la boucle locale, n'y changent rien. Le tarif retenu est 0,75 Wh par minute, soit environ 45 W de machine en charge.

Deux garde-fous encadrent le volume

Plafond de débit. Un modèle ne produit pas plus vite que ~120 tokens par seconde, soit ~3 000 octets par seconde de flux. Les octets facturables sont plafonnés à ce débit, par connexion et par échantillon. Sans quoi charger l'interface de claude.ai — plusieurs mégaoctets de scripts — coûterait plus qu'une heure de conversation. C'est une borne haute assumée, pas un tri des octets.

Plancher de bruit. En dessous de 200 octets par service et par échantillon, le trafic est du protocole : trames de keep-alive, PING TLS, renouvellements de session. Sans ce plancher, une application ouverte facturerait en permanence.

Du volume au carbone, en trois conversions

Chaque étape a son facteur, et chaque facteur est réglable dans l'application. Voici la chaîne complète sur un exemple.

  1. Octets reçus → tokens : diviser par 25 octets par token.
  2. Tokens → énergie : multiplier par le tarif du type de service, en wattheures par millier de tokens.
  3. Énergie → CO₂e : multiplier par l'intensité carbone du réseau électrique de la région où le service calcule, en grammes par kilowattheure.

L'exemple qui sert partout sur ce site

Une réponse de 500 tokens — environ 350 mots — sur un service de conversation. Sur le fil : 12 500 octets reçus. Divisés par 25, cela fait 500 tokens, soit un demi-millier ; au tarif de 2 Wh par millier, 1 Wh. Ce wattheure devient 0,38 gCO₂e sur un service hébergé aux États-Unis, et 0,05 g sur un service hébergé en France. C'est le même modèle, le même échange, et un facteur huit entre les deux.

Le tarif énergétique, par type de service

Ordres de grandeur de type EcoLogits, pour un modèle de grande taille servi à l'échelle. Le code coûte plus cher que la conversation : les réponses y sont plus longues et les modèles plus gros.

TypeLe tarif énergétique, par type de service
Conversation2 Wh par millier de tokens
Code3 Wh par millier de tokens
Recherche2,5 Wh par millier de tokens
Image, son, vidéo2 Wh par mégaoctet reçu
Modèles locaux0,75 Wh par minute

L'intensité carbone, par réseau électrique

Valeurs location-based — le mix réel de la zone — et non market-based, qui décompte les certificats d'origine renouvelable achetés par l'opérateur. Le premier est le seul qui reste comparable d'un fournisseur à l'autre : personne ne peut baisser son chiffre en achetant du papier.

Réseau électriqueCodeIntensité
SuisseCH40 gCO₂e/kWh
FranceFR50 gCO₂e/kWh
Union européenneEU250 gCO₂e/kWh
États-UnisUS380 gCO₂e/kWh
MondeWORLD480 gCO₂e/kWh
ChineCN580 gCO₂e/kWh
Région absente ou inconnue480 gCO₂e/kWh

L'électricité comptée est celle du fournisseur, pas la vôtre

L'énergie est convertie en CO₂e au réseau électrique de la région où le service calcule, et non à celui de l'utilisateur. L'inférence distante ne se produit pas ici : parler à un service américain depuis la France brûle du courant américain, à 380 gCO₂e/kWh et non 50.

Chaque service porte donc une région dans le registre. Une région absente ou inconnue est comptée au tarif mondial, 480 g/kWh — jamais au plus favorable. Le réseau choisi dans les réglages ne vaut que pour les modèles locaux : eux seuls consomment le courant de cette machine.

Périmètre : l'opérationnel seul

L'électricité de l'inférence, et rien d'autre : ni la fabrication des serveurs, ni l'entraînement amorti sur les requêtes, ni le réseau de transport, ni la fin de vie.

Une analyse de cycle de vie complète, comme celle publiée par Mistral avec Carbone 4 et l'ADEME, ajoute typiquement 20 à 40 %. C'est ce qui explique qu'un chiffre constructeur puisse être trente fois plus élevé qu'un autre sans que le matériel y soit pour rien : ils ne mesurent pas la même chose. Ces chiffres-ci ne sont comparables qu'à d'autres chiffres opérationnels.

Ce que cette estimation ne sait pas

Le rapport entre octets sur le fil et tokens produits est le paramètre le plus incertain de tout le modèle. 25 octets par token vaut pour un flux qui encapsule chaque token dans une trame JSON ; une autre encapsulation donnerait un autre chiffre, et le registre permet de le corriger service par service.

Sur Windows, le système ne donne le volume échangé à aucune application sans droits administrateur. L'estimation y retombe sur le temps de connexion établie — un onglet laissé ouvert y compte comme s'il travaillait. Les chiffres y sont des bornes hautes, l'application le dit dans son interface, et le total mondial les compte à part.

Deux installations peuvent estimer différemment le même usage : tous les facteurs sont réglables. Ce sont des ordres de grandeur, pas des mesures — un estimateur, pas un compteur.

Ce qui n'est jamais lu

Aucun contenu n'est lu, aucune connexion n'est déchiffrée, aucun certificat n'est installé. La détection se fait par adresse et par nom de processus, jamais par nom d'hôte ni par inspection du trafic. Aucun droit administrateur, aucune extension réseau, aucun compte, aucune télémétrie — et rien ne quitte la machine tant que le partage vers le total mondial n'a pas été activé, ce qu'il n'est pas par défaut.

Voir le total mondial →