Ternary LLM weights are mostly zeros, so storing them by zero-ness beats 1.58 bits.
1.485bits per weight
Storage cost on sparsest model
Below the log2 3 ≈ 1.585 bits usually treated as the floor
How it works
Packing ignores zeros
Five-trit-per-byte packing costs 1.625 bits per weight and treats -1, 0, +1 as equally common. Yet zeros reach 51.5%.
Bitmap plus signs
Store one presence bit per weight and one sign bit only per non-zero. Cost is 2 minus zero density.
Smaller, faster decode
Beats five-trit packing on 26 of 29 models. Decode runs up to 1.18x faster on CPUs, 1.27x on GPUs.
What they found
Which comes out on top on Bits per weight (BitNet)?
More zeros, fewer bits
try itDrag zero density up and watch bits per weight fall.
- Bits per weight
- low
Terms
6 termsTernary weight A weight restricted to -1, 0 or +1, times a shared group scale.
A seating chart: first mark which seats are occupied, then list only the occupants' team colors. Empty seats cost one tick, nothing more.
Limits
- Slower than 2-bit kernels on bandwidth-rich, few-core Lunar Lake CPU.
- Gains shrink when zero density is below 0.375; 3 models lose.
- Unpack kernels only shown for x86 and Intel Xe2 GPUs.