Bonsai:把 27B 大模型塞进手机的极端量化方案,到底靠不靠谱?
来源:PrismML-Eng/Bonsai-demo(GitHub README)交叉验证信源:博客园 @ninghg《把 27B 模型压到 4GB 跑在手机上》、Microsoft Azure Labs《BitNet b1.58 2B4T》
核心观点
PrismML 发布的 Bonsai 系列,是一组以 Qwen3.6 27B 为基底、通过端到端(而非事后压缩)极端量化训练得到的语言模型。旗舰是 Bonsai-27B,分两个量化档:
- 1-bit Bonsai:有效比特数 ~1.125 bpw,模型文件 3.9 GB,目标跑上 iPhone 17 Pro(6 GB 内存预算)
- Ternary-Bonsai:有效比特数 ~1.71 bpw,打包为 2-bit 加速核,模型文件 5.9 GB,官方默认推荐,质量更高
两个家族均支持视觉、工具调用(OpenAI 风格 tool_calls + MCP)、长上下文(256K+)和推理思考(reasoning effort 可调)。
关键机制:量化不是压缩,而是训练方式
理解 Bonsai 最关键的一个点:它不是把已有的 FP16/BF16 大模型事后量化,而是从训练阶段就把权重约束为极端低比特({-1, +1} 或 {-1, 0, +1}),再配合 FP16 的 group-wise scaling factor 做补偿。
这和传统 GPTQ/AWQ/4-bit PTQ 的逻辑根本不同:后者在一个已经训练好的全精度模型上做近似,损失是累积叠加的;而 BitNet/Bonsai 路线让模型在训练时就学会用极端低比特表达信息,理论上损失更小、泛化更自然。这也是 Microsoft BitNet b1.58(W1.58A8,同为三值权重 + 训练时设计)最核心的贡献——它们共享同一个范式,都在挑战"表达能力必须依赖高比特宽度"这个长期默认假设。
Ternary 的理论存储下限是 5 trits/8 bits ≈ 1.6 bits/trit,Bonsai Ternary 实际达到了 1.71 bpw,已经非常接近理论极限——这意味着后续在当前架构下靠 packing 继续压缩的空间几乎没有了,下一步必须动架构(MoE、稀疏、不同数值格式)。
性能数据
| 有效比特 | 1.125 bpw | 1.71 bpw |
| 模型大小 | 3.9 GB | 5.9 GB |
| vs baseline 能力保留 | ~90% | ~95% |
| RTX 5090 吞吐 | 163 tok/s | 134 tok/s |
| M5 Max 吞吐 | 87 tok/s | 58 tok/s |
| 智能密度(per GB) | 0.53(baseline 的 10×) | — |
| Context 长度 | 256K+ | 256K+ |
Math/Coding 损失极小;Tool Calling 损失"几个点"(官方说法)——恰好是 Agentic 场景最依赖的能力,这个损失值得警惕。
快速上手(代码示例)
# 克隆仓库
git clone https://github.com/PrismML-Eng/Bonsai-demo.git
cd Bonsai-demo
# 设置 HuggingFace token(27B 私有期需要)
export BONSAI_TOKEN="hf_your_token_here"
# 一键安装依赖 + 下载模型(默认 Ternary-Bonsai-27B)
./setup.sh
# 启动本地服务器,支持聊天/视觉/工具调用
./scripts/start_llama_server.sh
# 访问 http://localhost:8080
切换模型家族和尺寸:
# 下载并运行 Ternary-Bonsai 4B(更小,适合低内存机器)
BONSAI_FAMILY=ternary BONSAI_MODEL=4B ./scripts/download_models.sh
BONSAI_FAMILY=ternary BONSAI_MODEL=4B ./scripts/run_llama.sh -p "Hello!"
# 用 mainline llama.cpp 跑(CPU/Metal,无需 fork)
hf download prism-ml/Ternary-Bonsai-4B-gguf Ternary-Bonsai-4B-Q2_0_g64.gguf –local-dir models
模型尺寸矩阵
| 1-bit Bonsai | ✅ GGUF/MLX | ✅ | ✅ | ✅ |
| Ternary-Bonsai | ✅ GGUF/MLX(2bit) | ✅ | ✅ | ✅(默认) |
后端支持现状(2025年7月)
1-bit(Q1_0)已完整合并进 llama.cpp 主线,所有后端可用。Ternary(Q2_0/Q2_0_g64)仍处于分批合并中,当前状态:
| CPU(ARM NEON + generic) | ✅ 已合并主线 |
| Metal | ✅ 已合并主线 |
| Vulkan | 🔄 PR 审核中 |
| CUDA | 🔄 PR 审核中 |
| x86 AVX-512-VNNI | ⏳ 待开发 |
实际结论:Mac 用户用 mainline llama.cpp + *-Q2_0_g64.gguf 无需 fork;CUDA 用户目前需要用 PrismML 的 fork 预编译二进制,不能开箱即用 Ollama/LM Studio。
交叉验证
信源一:博客园 @ninghg《把 27B 模型压到 4GB 跑在手机上》
总体认同官方核心主张,并补充了独立实测数据和批判性发现:
- 实测吞吐数字(RTX 5090 163 tok/s、M5 Max 87 tok/s)与官方数字吻合
- 指出了 LM Studio / Ollama 当前均无法直接运行,需要自编译 PrismML fork——这是官方 README 没有明确强调的
- 引用了 HN 用户 verdverm 的第三方评测(wikitext 困惑度 16.75 vs 官方数字),与官方数字存在显著 gap,作者认为可能是 eval bug,但无法完全排除模型实际质量的问题
- 明确指出"Tool Calling 损失几个点"这一点对 Agentic 场景是实质性风险,不是可以忽略的尾注
- 独立结论:端侧隐私敏感场景有真实价值,但"一行命令快速部署"的叙事当前不成立
信源二:Microsoft Azure Labs《BitNet b1.58 2B4T》
提供了技术路线的背景参照系,部分佐证了 Bonsai 的底层逻辑,但并不直接评价 Bonsai:
- BitNet b1.58(同为三值权重、训练时极端量化)在 ARM CPU 上实现 1.37x–5.07x 加速,能耗降低 55–82%,证明这条路线在 2B 规模确实成立
- 然而 BitNet 目前公开验证的最大规模是 2B(4 万亿 token),Bonsai 直接做到 27B 是一个规模上的大跳,Microsoft 自己在这个参数量上尚未有对应成果
- BitNet 的核心贡献也强调"训练时设计而非事后压缩",与 Bonsai 技术路线一致,说明这不是 PrismML 孤立的论断,而是一个有独立研究支撑的方向
综合判断:官方的核心技术方向(端到端极端量化 > 事后压缩)被 BitNet 路线的学术工作所支持,是可信的;但 27B 规模下质量保留的具体数字尚未经过充分的第三方独立复现,存疑。
个人启发:该怎么用,不该怎么用
现在就可以做的:
- 隐私敏感的本地 Agent(医疗问答助手、法律合同审阅、内部知识库 QA):Apache 2.0 开源、本地运行、27B 级推理能力,这是目前最小内存需求和最强能力的组合,有真实的采用价值
- Apple Silicon 开发者:Mac 上 CPU/Metal 已进主线,用 Ternary-Bonsai-4B-Q2_0_g64.gguf 配合 mainline llama.cpp 现在就能稳定跑,是代码补全/文档摘要的可用选项
- 希望在端侧跑视觉理解的场景(截图分析、文档 OCR 辅助):值得试用,但要自己验证多模态精度,官方未披露详细的视觉 benchmark
现在还不适合做的:
- 生产环境 CUDA 服务:Ternary 的 CUDA kernel 还在 PR 审核中,需要依赖 PrismML 私有 fork 的预编译二进制,引入了不可控的依赖风险
- 高频 Agentic Tool Calling 流水线:Tool Calling 能力有明确损失,在多轮 Agent 循环中的可靠性未经验证
- 替代 Claude / GPT-4o 做前沿任务:27B 无论量化与否,当前能力天花板仍远低于顶级闭源模型,这不是量化可以弥补的差距
延伸思考
"端到端训练量化"路线的扩展极限在哪里? BitNet 和 Bonsai 都证明了 2B–27B 可以做,但从 27B 到 100B+,三值权重能否保持 90%+ 的能力保留率?训练成本和数据需求会不会成为决定性瓶颈,让这条路线只能在小公司手里停在 30B 以下?
极端量化会不会改变"参数量"的意义? 当 1-bit 27B 体积和速度都接近甚至优于 4-bit 7B,"X B 模型"的直觉对比就失效了。业界评测体系(MMLU、HumanEval 等)是否需要专门针对极端量化模型重新设计,以更准确反映其真实可用性?
iPhone 上的 27B LLM 是否真的改变了移动端 AI 的格局? 官方说 1-bit-27B 能跑上 iPhone 17 Pro,但 90% 能力保留 + 手机 SoC 推理速度(远低于 M5 Max 的 87 tok/s)的实际用户体验,能否超越当前苹果 Intelligence 或 Gemini Nano 的路线?还是说这只是一个工程可行性演示,并不代表实际产品体验的跃升?
📚 参考来源


