Views
No views yet
| Bits | Layers | % Params | Description |
|---|---|---|---|
| BF16 | — | ~0.02% | norm, router, bias, sinks — tiny count, cannot tolerate precision loss |
| 6-bit | — | ~3.3% | Embeddings, lm_head, v/o_proj (all layers), edge layers (0–5, 30–35) attention, full_attention q/k |
| 4-bit | — | ~0.5% | Middle sliding_attention (6–29) q/k_proj |
| 3-bit | — | ~96% | Expert FFN (128 experts, 4 active/token) |
| This (3.6bit) | Original MXFP4 | |
|---|---|---|
| Model size | 48 GB | 65 GB |
| Peak memory (pp1024/tg128) | 48.6 GB | 61.0 GB |
| Peak memory (pp4096/tg128) | 48.7 GB | 61.1 GB |
| Prefill (1k ctx) | 171.9 tok/s | 189.0 tok/s |
| Prefill (4k ctx) | 191.9 tok/s | 210.7 tok/s |
| Generation (1k ctx) | 48.2 tok/s | 43.9 tok/s |
| Generation (4k ctx) | 40.5 tok/s | 38.1 tok/s |
Generation speed is faster than the original MXFP4 despite lower bit-width — smaller model size means better memory bandwidth utilization.
1from mlx_lm import load, generate
2
3model, tokenizer = load("MoringLabs/GPT-OSS-120B-MLX-3.6bit")
4
5messages = [{"role": "user", "content": "Hello!"}]
6prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
7response = generate(model, tokenizer, prompt=prompt, max_tokens=200)
8print(response)