Files
docs/energy.md
T

81 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Energy and carbon
The co-op shows members how much energy its inference uses, and what carbon that
represents. This page says where those numbers come from and where they are weak.
The [model list](models.md) covers which providers we use and their energy
sources; this covers how we count.
## What we measure
**Output tokens, per model, per day** — read from our own gateway logs. Nothing
is required of your client, and no per-member figure is published: the dashboards
show co-op totals.
We count **output tokens only**, deliberately. That is the unit
[GreenPT's published metric](https://greenpt.com/blog/introducing-a-new-ai-metric-to-drive-sustainability)
uses ("mWh per 100 tokens"); input tokens are excluded so comparisons hold across
prompts, workloads and models. It also means these figures are **not** total
compute.
## How tokens become energy and carbon
```
energy = output tokens × (Wh per 1,000 output tokens)
carbon = energy × grid intensity of the electricity (gCO2e per kWh)
```
Both factors are held per provider in one table, with the source recorded for
each row, in the portal's
[`metrics_snapshot.py`](https://git.inference.coop/code/member-portal/src/branch/main/metrics_snapshot.py).
### Measured: GreenPT
GreenPT returns an `impact` object with every call — energy in watt-milliseconds,
emissions in µgCO2e — so these are fitted from their own numbers rather than
imported from a third party. Measured 2026-10-28 by regressing energy against
output tokens across prompt sizes (R² ≥ 0.999; there is a real per-request
overhead, because their energy derives from inference *time*):
| Model | Wh per 1,000 output tokens | Implied grid intensity |
|---|---|---|
| `greenpt/deepseek-v4.1-flash` | 0.36 | ~193 gCO2e/kWh |
| `greenpt/glm-5.3-flash` | 1.08 | ~193 gCO2e/kWh |
| `greenpt/green-r` | 0.55 | ~24 gCO2e/kWh |
`green-r` is roughly an order of magnitude cleaner per unit of energy, which is
where GreenPT's claim of up to 40% lower CO2 per query comes from.
### Estimated: everyone else
Providers that do not disclose impact — Tinfoil, Regolo, PublicAI — use a
**documented order-of-magnitude proxy**: 0.5 Wh per 1,000 output tokens at an EU
grid average of 250 gCO2e/kWh. It exists so a day's total is never quietly
missing models. It is an estimate, and it is labelled as one everywhere it
appears. Refining a factor is a data edit, not a code change.
## What this does not cover
- **It is a floor, not a total.** Embedding, audio and image requests carry no
completion tokens, so their compute is not counted at all. This is the largest
known gap.
- **Estimates for non-disclosing providers.** The proxy is an order-of-magnitude
figure, not a measurement of what a given provider actually draws.
- **GreenPT's energy is itself estimated** — from time and documented hardware
power — so our per-token figures are an efficiency ratio, not a per-call meter
reading.
- **Training emissions are not included**, for any model we serve. Nobody in this
market can verify them yet.
## Where to see the numbers
The [member dashboard](https://dashboard.inference.coop) has them under
"Co-op usage" — by day, alongside membership, requests and spend. Operators see
the same series on the admin panel's Trends tab.
## Units, for the curious
`Wh` is a watt-hour (a 100 W bulb for one hour is 100 Wh). `kWh` is 1,000 Wh.
`gCO2e` is grams of carbon-dioxide equivalent. Converting between them is where
mistakes hide: µgCO2e per mWh and gCO2e per kWh are the same ratio, and Wh to kWh
is a factor of 1,000.