gpt-oss-120b-tq3a-tq2e-g32 (hybrid 3-bit attention / 2-bit experts)
0
5 commits
1 linked in READMEs
updated Jul 16, 2026
TurboQuant hybrid quantization of openai/gpt-oss-120b using TurboQuant-MLX β 3-bit attention + 2-bit MoE experts at group size 32.
This is the smallest GPT-OSS-120B build that runs on a 48 GB Apple Silicon Mac while passing a full 6-test stress harness. ~35 GB on disk, ~38β39 GB peak wired RAM at decode, 42β50 tok/s.
GPT-OSS-120B is a top-4 MoE: ~117 B total params but only ~5.1 B active per token. The MoE expert weights dominate disk size but are mostly idle during decode, so they tolerate aggressive quantization (2-bit). Attention is on the hot path every token, so it gets the higher-fidelity 3-bit treatment. The result is a model that fits 48 GB with comparable quality to full 3-bit at ~14 GB lower wired RAM.
| Build | On-disk | Peak RAM | Decode tok/s | Fits 48 GB? |
|---|---|---|---|---|
| BF16 (original) | ~240 GB | β | β | β |
| MXFP4 (original) | ~63.5 GB | β | β | β |
| TurboQuant 3-bit (g64) | ~48 GB | 52.31 GB | 40 | β (49 GB est.) |
| TurboQuant 3a/2e g32 (this repo) | ~35 GB | 38.65 GB | 42β50 | β |
Don't guess, and don't download 37.7 GB to find out β ask first (needs turboquant-mlx-full >= 0.15.1):
turboquant-plan --model manjunathshiva/gpt-oss-120b-tq3a-tq2e-g32
It reads only this repo's safetensors headers over the network (a couple of hundred KB, a few seconds β the weights are never fetched), then projects the peak against your machine and prints the flags to use:
Model
weights (exact) 37.7 GB
KV cache 36.6 KB/token (hybrid: 18/36 full-attention, 18 sliding (window 128))
Verdict: <resident | needs a wired-limit raise | streaming>
Recommended: <the exact flags for your Mac>
Planning for a machine you're not sitting at β deciding whether a 16 GB mini or a 64 GB Mac can take this β is what --wired-gb / --ram-gb are for:
turboquant-plan --model manjunathshiva/gpt-oss-120b-tq3a-tq2e-g32 \
--wired-gb 10.5 --ram-gb 16 --context 8192
turboquant-doctor runs the same projection plus a readiness check; both take --json. The projection is calibrated against real measurements on a 16 GB Mac mini rather than estimated from theory β on the 9.4 GB ternary 35B it predicts a 10.44 GB peak where that machine measures 10.42.
# macOS with Apple Silicon (M1/M2/M3/M4), 48 GB unified memory minimum
pip install turboquant-mlx-full mlx-lm
huggingface-cli download manjunathshiva/gpt-oss-120b-tq3a-tq2e-g32 \
--local-dir ~/models/gpt-oss-120b-tq3a-tq2e-g32
turboquant-generate \
--model ~/models/gpt-oss-120b-tq3a-tq2e-g32 \
--prompt "Why is the sky blue? Give a thorough explanation." \
--max-tokens 400 \
--temp 0.7 --rep-penalty 1.1
For prompts beyond ~2k tokens, enable KV cache compression to keep wired RAM under the 48 GB ceiling:
turboquant-generate \
--model ~/models/gpt-oss-120b-tq3a-tq2e-g32 \
--prompt "$(cat long_prompt.txt)" \
--max-tokens 200 \
--temp 0.7 --rep-penalty 1.1 \
--kv-k-bits 8 --kv-v-bits 3 --kv-min-tokens 128
The KV flags compress past the first 128 tokens of context, keeping memory bounded on long inputs.
All tests run on a 64 GB M-series Mac with --temp 0.7 --rep-penalty 1.1:
| # | Test | Verdict |
|---|---|---|
| 01 | long_essay (1500-word Roman Empire history, 3500 max_tok) | clean, no degenerate tail |
| 02 | math (two trains, meeting time + distance, 2048 max_tok) | correct setup 60t + 75(t-0.5) = 215, t~1.867 hr -> 10:52 AM, ~112 mi from Boston |
| 03 | code (merge_intervals + 3 unit tests, 1500 max_tok) | correct sort-then-expand impl, all 3 asserts pass |
| 04 | needle (FUCHSIA-7741 inside ~1.3k-token haystack, 200 max_tok) | password retrieved verbatim |
| 05 | format (5-item exercise list under 15 words/line, 1500 max_tok) | exactly 5 short numbered lines, no commentary |
| 06 | repetition_trap (sky-blue thorough, 4096 max_tok) | clean Rayleigh-scattering answer with LaTeX + Python illustration, no loops |
Decode speed across all 6 tests: 38β50 tok/s. Peak RAM: 38β39 GB.
TurboQuant applies, in one shot with no calibration data:
The same recipe works for any standard transformer architecture without per-model calibration data.
Apache 2.0 (same as the base model).
mlx-lm maintainers β for the GPT-OSS architecture support@article{zandieh2025turboquant,
title = {TurboQuant: A Unified Framework for Extremely Low-Bit Weight and KV Cache Quantization},
author = {Zandieh, Amir and Han, Minsik and Dalca, Andre and Shin, Jungwoo and Wang, Brian and Zhang, Yichao and Bordegoni, Matteo and Tian, Yuan and others},
year = {2025}
}
gpt-oss-120b-tq3a-tq2e-g32 (hybrid 3-bit attention / 2-bit experts)
0
5 commits
1 linked in READMEs
updated Jul 16, 2026
TurboQuant hybrid quantization of openai/gpt-oss-120b using TurboQuant-MLX β 3-bit attention + 2-bit MoE experts at group size 32.
This is the smallest GPT-OSS-120B build that runs on a 48 GB Apple Silicon Mac while passing a full 6-test stress harness. ~35 GB on disk, ~38β39 GB peak wired RAM at decode, 42β50 tok/s.
GPT-OSS-120B is a top-4 MoE: ~117 B total params but only ~5.1 B active per token. The MoE expert weights dominate disk size but are mostly idle during decode, so they tolerate aggressive quantization (2-bit). Attention is on the hot path every token, so it gets the higher-fidelity 3-bit treatment. The result is a model that fits 48 GB with comparable quality to full 3-bit at ~14 GB lower wired RAM.
| Build | On-disk | Peak RAM | Decode tok/s | Fits 48 GB? |
|---|---|---|---|---|
| BF16 (original) | ~240 GB | β | β | β |
| MXFP4 (original) | ~63.5 GB | β | β | β |
| TurboQuant 3-bit (g64) | ~48 GB | 52.31 GB | 40 | β (49 GB est.) |
| TurboQuant 3a/2e g32 (this repo) | ~35 GB | 38.65 GB | 42β50 | β |
Don't guess, and don't download 37.7 GB to find out β ask first (needs turboquant-mlx-full >= 0.15.1):
turboquant-plan --model manjunathshiva/gpt-oss-120b-tq3a-tq2e-g32
It reads only this repo's safetensors headers over the network (a couple of hundred KB, a few seconds β the weights are never fetched), then projects the peak against your machine and prints the flags to use:
Model
weights (exact) 37.7 GB
KV cache 36.6 KB/token (hybrid: 18/36 full-attention, 18 sliding (window 128))
Verdict: <resident | needs a wired-limit raise | streaming>
Recommended: <the exact flags for your Mac>
Planning for a machine you're not sitting at β deciding whether a 16 GB mini or a 64 GB Mac can take this β is what --wired-gb / --ram-gb are for:
turboquant-plan --model manjunathshiva/gpt-oss-120b-tq3a-tq2e-g32 \
--wired-gb 10.5 --ram-gb 16 --context 8192
turboquant-doctor runs the same projection plus a readiness check; both take --json. The projection is calibrated against real measurements on a 16 GB Mac mini rather than estimated from theory β on the 9.4 GB ternary 35B it predicts a 10.44 GB peak where that machine measures 10.42.
# macOS with Apple Silicon (M1/M2/M3/M4), 48 GB unified memory minimum
pip install turboquant-mlx-full mlx-lm
huggingface-cli download manjunathshiva/gpt-oss-120b-tq3a-tq2e-g32 \
--local-dir ~/models/gpt-oss-120b-tq3a-tq2e-g32
turboquant-generate \
--model ~/models/gpt-oss-120b-tq3a-tq2e-g32 \
--prompt "Why is the sky blue? Give a thorough explanation." \
--max-tokens 400 \
--temp 0.7 --rep-penalty 1.1
For prompts beyond ~2k tokens, enable KV cache compression to keep wired RAM under the 48 GB ceiling:
turboquant-generate \
--model ~/models/gpt-oss-120b-tq3a-tq2e-g32 \
--prompt "$(cat long_prompt.txt)" \
--max-tokens 200 \
--temp 0.7 --rep-penalty 1.1 \
--kv-k-bits 8 --kv-v-bits 3 --kv-min-tokens 128
The KV flags compress past the first 128 tokens of context, keeping memory bounded on long inputs.
All tests run on a 64 GB M-series Mac with --temp 0.7 --rep-penalty 1.1:
| # | Test | Verdict |
|---|---|---|
| 01 | long_essay (1500-word Roman Empire history, 3500 max_tok) | clean, no degenerate tail |
| 02 | math (two trains, meeting time + distance, 2048 max_tok) | correct setup 60t + 75(t-0.5) = 215, t~1.867 hr -> 10:52 AM, ~112 mi from Boston |
| 03 | code (merge_intervals + 3 unit tests, 1500 max_tok) | correct sort-then-expand impl, all 3 asserts pass |
| 04 | needle (FUCHSIA-7741 inside ~1.3k-token haystack, 200 max_tok) | password retrieved verbatim |
| 05 | format (5-item exercise list under 15 words/line, 1500 max_tok) | exactly 5 short numbered lines, no commentary |
| 06 | repetition_trap (sky-blue thorough, 4096 max_tok) | clean Rayleigh-scattering answer with LaTeX + Python illustration, no loops |
Decode speed across all 6 tests: 38β50 tok/s. Peak RAM: 38β39 GB.
TurboQuant applies, in one shot with no calibration data:
The same recipe works for any standard transformer architecture without per-model calibration data.
Apache 2.0 (same as the base model).
mlx-lm maintainers β for the GPT-OSS architecture support@article{zandieh2025turboquant,
title = {TurboQuant: A Unified Framework for Extremely Low-Bit Weight and KV Cache Quantization},
author = {Zandieh, Amir and Han, Minsik and Dalca, Andre and Shin, Jungwoo and Wang, Brian and Zhang, Yichao and Bordegoni, Matteo and Tian, Yuan and others},
year = {2025}
}