HuggingFace镜像/gpt-oss-20b-tq3
模型介绍文件和版本分析
下载使用量0

gpt-oss-20b-tq3

openai/gpt-oss-20b 的 TurboQuant 3-bit MLX 量化版本——由 TurboQuant-MLX 生成。

GPT-OSS-20B 是一个拥有 210 亿参数的混合专家模型(Mixture-of-Experts),包含 32 个专家,每个 token 约有 36 亿活跃参数。经过 TurboQuant 3-bit 压缩后,它可以轻松在 16 GB 苹果硅 Mac 上运行,并支持完整的 131K token 上下文——叠加 v0.2 版 KV 缓存压缩后,缓存大小也能缩减 4 倍。

模型详情

  • 基础模型:openai/gpt-oss-20b(共 210 亿参数,32 个专家,约 36 亿活跃参数)
  • 量化方式:TurboQuant 3-bit(Hadamard 旋转 + Lloyd-Max 码本),group_size=64
  • 校准数据:无——TurboQuant 无需数据
  • 大小:磁盘占用约 9.5 GB
  • 解码时峰值 wired RAM:约 11 GB(已在运行 macOS 后台应用的 16 GB Mac 上验证)
  • 解码速度:60–80 tok/s(M 系列芯片),在 M4 Max 上使用 fp16 KV 缓存时可达 73 tok/s
  • 运行环境:配备 16 GB 及以上统一内存的苹果硅设备(M1/M2/M3/M4)

要求

pip install "turboquant-mlx-full>=0.2.0" "mlx-lm>=0.31.3"

采样器推荐

GPT-OSS-20B 是一个小于 250 亿参数的模型,这意味着它正处于多步推理能力的边缘。与更大模型相比,此处的采样器选择更为重要:

使用场景推荐采样器
日常聊天 / 创意写作 / 问答--temp 0.7 --rep-penalty 1.1
数学、代码、多步推理--temp 0.3 --rep-penalty 1.1

在温度为 0.7 时,模型偶尔会在解决文字题时中途放弃,或者写出看似合理但存在逻辑错误的代码。将温度降至 0.3 可以稳定推理过程,并为数学和代码生成正确的解决方案框架。

验证质量(6 项测试压力测试工具)

使用 scripts/stress_hybrid_sampler.py 在 64 GB M 系列 Mac 上进行测试(峰值内存与 16 GB 目标匹配):

#测试结果(推荐采样器)
01长文章(1500 字关于罗马帝国,最大令牌数 3500)内容流畅,无尾部退化
02数学题(两列火车,相遇时间 + 距离,最大令牌数 800)使用 --temp 0.3 时结果正确(列出方程 60t + 75(t-0.5) = 215,解得 t≈1.87 小时 → 上午 10:52);温度 0.7 时结果不稳定
03代码(merge_intervals 函数 + 3 个单元测试,最大令牌数 1500)使用 --temp 0.3 时函数逻辑正确;偶尔会出现测试断言值幻觉(函数本身可用,需修正测试用例)
04找关键词(在大量文本中找 FUCHSIA-7741,最大令牌数 200)密码被完整准确提取
05格式(5 项列表,每行不超过 15 个单词,最大令牌数 1500)恰好生成 5 行简短编号列表,无额外注释
06重复陷阱(以“sky-blue thorough”开头,最大令牌数 4096)回答内容流畅,无段落循环

所有 6 项测试的解码速度:46–94 令牌/秒。峰值内存:11.0–11.2 GB。

快速开始

下载模型

hf download manjunathshiva/gpt-oss-20b-tq3 \
    --local-dir ~/models/gpt-oss-20b-tq3

生成文本 — 标准对话

turboquant-generate \
    --model ~/models/gpt-oss-20b-tq3 \
    --prompt "Why is the sky blue? Explain in detail." \
    --max-tokens 1024 --temp 0.7 --rep-penalty 1.1

生成文本 — 数学/代码(温度 0.3)

turboquant-generate \
    --model ~/models/gpt-oss-20b-tq3 \
    --prompt "Solve this multi-step word problem..." \
    --max-tokens 1024 --temp 0.3 --rep-penalty 1.1

使用 TurboQuant KV 缓存(v0.2+)生成 —— 缓存大小减少 4 倍

对于长上下文生成,可在基础上叠加 v0.2 版本的 KV 缓存压缩。当叠加在 TurboQuant 量化权重上时,必须使用 K8/V3 混合精度—— 对称的 K3 会加剧噪声,导致超过约 800 个 token 后长文本输出出现问题。128 token 的 fp16 汇聚区可保护提示词开头的注意力汇聚点。

turboquant-generate \
    --model ~/models/gpt-oss-20b-tq3 \
    --prompt "Why is the sky blue? Explain in detail." \
    --max-tokens 1024 --temp 0.7 --rep-penalty 1.1 \
    --kv-k-bits 8 --kv-v-bits 3 --kv-min-tokens 128

许可证

Apache-2.0(继承自基础模型)。

引用与项目

基于 TurboQuant-MLX 构建。有关相关技术原理(Hadamard 旋转 + Lloyd-Max 码本实现无数据量化),请参见 Zandieh et al., 2025 — TurboQuant: Online Vector Quantization with Optimal Distortion-Rate Trade-off。