happynood's picture
Add artwork and tighten the card
368d239 verified
|
Raw
History Blame Contribute Delete
1.75 kB
---
title: quant-control-bench how few bits before it falls over?
emoji: 🦿
colorFrom: green
colorTo: gray
sdk: static
pinned: false
license: mit
---
<p align="center"><img src="assets/logo.svg" alt="quant-control-bench" width="820"></p>
# How few bits does a closed-loop robot controller need?
<p align="center"><img src="assets/demo.gif" alt="three precisions walking" width="820"></p>
The same trained Go1 policy, quantized several ways, walking in real MuJoCo
physics compiled to WebAssembly. Everything runs in your browser: the
simulation, the neural networks, and the timing.
Pick precisions, drive them with the joystick sliders, then break them:
push the robots, change torso mass and ground friction, add actuator delay
or observation noise. Every variant shares an initial state and a command,
so the only difference between them is the precision of the weights.
Weights are loaded from [happynood/quant-control-bench-policies](https://huggingface.co/happynood/quant-control-bench-policies),
which is the single source of truth for them.
Methodology, raw results and the code: https://github.com/Happynood/quant-control-bench
## What the benchmark found
- int8 costs nothing measurable, on return or on any of five robustness axes.
- The interesting boundary is between int8 and int4 — and at 4 bits, *how* you
group the scales matters more than the bit width does.
- Quantizing the observation-normalization statistics, 0.05% of the parameters,
breaks the policy outright at 4 bits.
The live figures on this page (steps survived, whether the robot fell, action
jitter, inference milliseconds) are computed in your browser. The benchmark
tables come from recorded runs on an RTX 3050 Laptop and are not recomputed
here.