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.
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.
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.
Chaque étape a son facteur, et chaque facteur est réglable dans l'application. Voici la chaîne complète sur un exemple.
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.
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.
| Type | Le tarif énergétique, par type de service |
|---|---|
| Conversation | 2 Wh par millier de tokens |
| Code | 3 Wh par millier de tokens |
| Recherche | 2,5 Wh par millier de tokens |
| Image, son, vidéo | 2 Wh par mégaoctet reçu |
| Modèles locaux | 0,75 Wh par minute |
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 électrique | Code | Intensité |
|---|---|---|
| Suisse | CH | 40 gCO₂e/kWh |
| France | FR | 50 gCO₂e/kWh |
| Union européenne | EU | 250 gCO₂e/kWh |
| États-Unis | US | 380 gCO₂e/kWh |
| Monde | WORLD | 480 gCO₂e/kWh |
| Chine | CN | 580 gCO₂e/kWh |
| Région absente ou inconnue | — | 480 gCO₂e/kWh |
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.
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.
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.
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.