Limite 1B Violetto drafter
Draft model for speculative decoding of Limite 1B Violetto, built for the silicon-violetto Metal engine.
Usage
Setup silicon-violetto then:
uv run hf download Belluxx/limite-1b-violetto-drafter drafter.vlt --local-dir data/spec
./target/release/violetto serve --weights models/limite-int8.vlt --drafter data/spec/drafter.vlt
Speed
Decode tok/s on an M4 Max (40 GPU cores). Setup: int8 weights, temperature 0.6.
| Sequences x context | Plain | With drafter | Speedup |
|---|---|---|---|
| 1 x 1k | 252 | 660 | 2.61x |
| 1 x 64k | 182 | 417 | 2.29x |
| 4 x 8k | 755 | 1224 | 1.62x |
| 16 x 32k | 777 | 1118 | 1.44x |
| 32 x 8k | 1550 | 2017 | 1.30x |
Every context and batch size is in the engine's performance.md.
Output should match plain decoding, except where rounding flips near ties.
Model
- Architecture: 2 layers on the target's layers 35 and 47, with convolutions and context injection, a 1024-token attention window and a 16,384-token head
- Training: KL to the target on its own traces (103M positions, 400M anchors)
- Decoding: the engine verifies a tree of the drafts in one step
- Acceptance: tokens per step on held-out traces:
| Drafts per step | 1 | 3 | 4 | 7 |
|---|---|---|---|---|
| Tokens per step | 1.78 | 2.70 | 2.96 | 3.30 |
For more infos and reproduction steps, check here.
Files
| File | Use |
|---|---|
drafter.vlt |
int8 weights (69 MB) |
model.safetensors, config.json |
fp32 weights (244 MB) |