Research · 2026
A real model, a real laptop, real energy readings

Joule
Route-LM

Easy sentences don't need a language model's full effort. I let them leave early and measured, on a real laptop, how much energy that saves.

−37%
Less computing
98.8%
Of the original accuracy kept
−37%
Less measured energy
5
Repeated runs behind every result
Area
Research
Status
Public repo
Stack
Python · LLM Research · Statistics · Energy Measurement
What it is

What it
is.

A language model normally runs every sentence through all of its layers, even when the answer is already obvious halfway through. JouleRoute-LM lets easy sentences leave early, then measures on a real laptop how much energy that actually saves.

It rebuilds my earlier simulation on a real BERT model, running on an M5 MacBook Air, and every energy number comes from the laptop's own power logs rather than an estimate.

The result

What it
showed.

At the best setting, easy sentences left early: about 37% less computing and about 37% less measured energy, keeping 98.8% of the original accuracy, a difference too small to measure. It was measured on one model and one task, and the energy is for the whole chip, not the model alone.

Two real-measurement panels: accuracy versus average layers computed, and accuracy versus measured energy per example, each with the 92.43% full-depth baseline drawn as a dashed line.
Accuracy against layers computed (left) and against measured energy (right). The dashed line is the full model.
How it works

How it
works.

An exit after every layer

A small classifier sits after each layer. When it is confident enough, the sentence leaves with that answer; hard sentences keep going to the top.

Measure the real energy

Energy is read from the laptop's power sampler and logged, never worked out from a count of layers.

Check it properly

Every result is repeated five times and tested statistically, so a lucky run cannot pass as a finding.

Try the Mechanism

Route it
yourself.

An illustrative model of the routing decision on a 12-layer stack, not the benchmark. Set a sentence's difficulty, the entropy threshold τ, and the simulated battery, and watch where it exits versus full depth. The measured numbers are in the curve above.

Router modeADAPTIVE
Easy
Easy & clear → hard / ambiguous
100%
Simulated: lower battery loosens τ, exits earlier
0.20
Higher τ = exit sooner, less confident
Full Depth All 12 layers
12 / 12 layers · full-depth energy
JouleRoute-LM Early-exit
- / 12 layers computed
-
Energy saved vs full depth
-
Avg exit layer
-
Accuracy (illustrative)
Illustrative model of the entropy + battery routing decision, not a measurement. The real, measured result (BERT-base / SST-2, M5): at τ=0.20, ~37% fewer layers and ~37% less energy at 98.8% of baseline accuracy, with no statistically significant accuracy change. See the curve above.
What I learned

What I
learned.

A modest result is the honest one

Cutting about a third of the energy with no measurable accuracy loss is exactly the believable result. I set out to measure the honest shape of the trade-off, not to manufacture a big number.

Energy cannot fall faster than work

Some costs never go away, so energy saved can only follow the layers saved. If my numbers had shown otherwise, the measurement would have been wrong.

Check the measurement before the result

My first two ways of measuring energy gave confused numbers. I caught both and threw them out before I trusted the third. Getting the measurement right was the whole reason to redo the project on real hardware.