ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Ternary-Bonsai-2-9B-2bit架构深潜:262K长上下文背后的24+8混合注意力设计

Ternary-Bonsai-2-9B-2bit架构深潜:262K长上下文背后的24+8混合注意力设计
  • 大模型
  • 多模态
  • 模型量化
  • 本地部署
  • 计算机视觉

【免费下载链接】Ternary-Bonsai-2-9B-2bit

项目地址:https://ai.gitcode.com/hf_mirrors/mlx-community/Ternary-Bonsai-2-9B-2bit
点击查看免费下载

Ternary-Bonsai-2-9B-2bit是一款专为 Apple Silicon 打造的 9B 级视觉语言模型,采用三元权重(Ternary)压缩至 2-bit 存储,仅占 3.46 GB 磁盘空间,却继承了 262K 超长上下文能力。其核心是 24 层线性注意力 + 8 层全局注意力的混合架构,让长文本推理在本地设备上也变得可行且高效。

一、模型概览:9B 能力装进 3.46 GB

这款模型基于 Qwen3.5-9B 架构改造而来,语言模型部分约 8.95B 参数,搭配约 0.46B 参数的官方视觉塔,整体以三元值(−1、0、+1)编码为 MLX 的 2-bit 分组格式,组大小 128。相比 FP16 版本约 17.9 GB 的体量,磁盘占用压缩到了约五分之一。

规格项参数
语言模型参数约 8.95B(32 层,隐藏维度 4096)
视觉塔参数约 0.46B(深度 27,patch 16)
权重格式Ternary {−1, 0, +1},MLX affine 2-bit,group 128
最大上下文262144 tokens(262K)
磁盘占用3.46 GB

二、混合注意力:24 层线性 + 8 层全局

262K 长上下文能否真正落地,关键就在注意力机制的设计上。config.json 中明确列出了 32 层的layer_types分布,规律非常清晰——每 4 层里前 3 层是线性注意力(linear_attention),第 4 层是全局注意力(full_attention),由full_attention_interval: 4控制,整个 32 层正好是 8 组循环:

  • 线性注意力层(24 层):linear_num_key_heads: 16、linear_num_value_heads: 32,键值头维度各 128,卷积核大小 4,SSM 状态以 float32 计算。这类层不需要保存完整 KV 缓存,显存占用几乎不随上下文增长,是长文本能跑上 262K 的根本原因。
  • 全局注意力层(8 层):16 个查询头 + 4 个键值头(GQA 结构),head_dim为 256,保留了完整注意力的精确建模能力。

这种"24+8"的排布是典型的混合注意力(Hybrid Attention)策略:大部分层用廉价的线性注意力处理长程上下文,少量层用全局注意力锚定关键信息,两者互补,既省显存又不失精度。

三、三元权重与 Hadamard 旋转

三元权重并非简单把浮点数值四舍五入成三个档位,而是配合了Hadamard 旋转:旋转被折叠进了存储的权重里,运行时再对激活做匹配的变换。hadamard.json 记录了变换细节——采用归一化 Sylvester–Walsh–Hadamard,块大小 4096,作用于输入最后一维,符号模式为显式(explicit)。这套机制让极低的位宽下仍能保持可用的精度。

转码过程由 runtime/codec.py 完成,它把 PQ2_0/PTQ1_0 无损地转码为 MLX 的 affine 2-bit 分块格式,组大小 128;runtime/runtime.py 里的fwht函数则负责在推理时施加前向/逆向 Hadamard 变换。

四、MTP 投机解码(可选加速)

仓库还附带了一个可选的多 token 预测头(MTP),存放在 mtp/ 目录,以 4-bit、block 2 量化。主模型会逐 token 校验草稿,因此输出与普通解码一致。它最适合代码改写、重复性高的文本生成场景,能明显提速;但在普通对话里收益有限,默认仍走普通解码。使用方式见 MTP.md。

五、快速上手

在 Apple Silicon 上跑通非常简单,安装 mlx-vlm 后加载即可:

pip install "mlx-vlm>=0.7.8"
from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template model, processor = load("bonsai2-9b-mlx") prompt = apply_chat_template(processor, model.config, "What is in this image?", num_images=1) print(generate(model, processor, prompt, ["photo.jpg"], max_tokens=4096, temperature=1.0, top_p=0.95, top_k=20))

采样参数建议参考 generation_config.json:思考模式用temperature=1.0, top_p=0.95, top_k=20,非思考模式可降到temperature=0.7, top_p=0.80。详细加载契约见 PACK-RUNTIME.md,一条命令冒烟测试可跑 quickstart.py。

小结

Ternary-Bonsai-2-9B-2bit 把"大参数、长上下文、本地运行"这三件过去难以兼得的事,用三元 2-bit 权重 + 24/8 混合注意力 + Hadamard 旋转组合了起来:3.46 GB 的体积、262K 的上下文窗口,以及面向 Apple Silicon 原生优化的推理路径,让它成为本地长文本与视觉任务里一个相当有吸引力的选择。

  • 大模型
  • 多模态
  • 模型量化
  • 本地部署
  • 计算机视觉

【免费下载链接】Ternary-Bonsai-2-9B-2bit

项目地址:https://ai.gitcode.com/hf_mirrors/mlx-community/Ternary-Bonsai-2-9B-2bit
点击查看免费下载

相关推荐

上一篇:MHY_Scanner:游戏登录自动化革命,告别手动扫码时代
下一篇:WVP-PRO视频监控平台实战指南:从零构建企业级安防系统

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进