开源模型实施技术:Bonsai / 量化 / Google先压缩再训练
三项技术的核心目标都是降低模型部署成本(显存/推理速度),但底层理论路径完全不同。
一、Bonsai 技术 —— 极低位权重重编码
代表实现
PrismML(Caltech 孵化,获 Google/Samsung 投资)推出的 Bonsai 27B,将阿里 Qwen3.6-27B 的权重压缩到 1-bit 或 1.71-bit(三元值)。
底层理论
核心来自 Caltech 教授 Babak Hassibi 的 低位神经网络压缩 研究:
- 把每个权重从 FP16 重新编码为 三元值 {-1, 0, +1} 或 纯二进制 {-1, +1}
- 整个 network(embedding、attention、MLP、LM head)全部用低位表示,没有回退到高精度的 fallback 层
- FP16 下 54GB 的 Qwen3.6-27B → 三元版 5.9GB / 1-bit 版 3.9GB
本质
权重编码方式的重构 —— 不是训练一个小模型,也不是剪枝/蒸馏,而是把同一个模型的权重用更高效的数值编码表示。精度损失:三元保留 94.6% baseline,1-bit 保留 89.5%。
二、量化技术 —— 数值精度降级
主流方案对比
| 方法 | 核心原理 | 典型工具 | 精度保留 |
|---|---|---|---|
| GPTQ | 后训练量化,基于二阶梯度(Hessian)优化量化误差,逐层补偿 | AutoGPTQ、vLLM | ~98% (4-bit) |
| AWQ | 激活感知量化,识别对输出敏感的 1% 权重通道保留 FP16,其余量化 | AutoAWQ、vLLM | ~98% (4-bit) |
| GGUF | 统一文件格式 + k-quant 分段量化方案,不同层用不同 bit 数 | llama.cpp | ~95-98% (取决于量化级别 Q2~Q8) |
| BitsAndBytes | NF4 归一化浮点 4-bit,QLoRA 结合,支持训练时量化 | Hugging Face bnb | ~95% (4-bit) |
底层理论
| 方法 | 数学本质 |
|---|---|
| Absmax 量化 | 权重除以最大值映射到 [-127, 127] → INT8。损失来自均匀量化的舍入误差 |
| Zero-point 量化 | 非对称映射:min→0, max→255,适合 ReLU 后的数据分布 |
| Group-wise 量化 | 按组(如 128 个权重一组)分别算 scale/zero-point,细粒度减少误差 |
| GPTQ 底层 | 最优脑损伤(OBD)思想:用 Hessian 矩阵估计每个权重的"重要性",量化时优先保护重要权重 |
| AWQ 底层 | 观察到激活值大的通道对量化更敏感 → 只保护 1% 的 salient channels |
| GGUF k-quant | 重要性感知的混合精度:attention/head 用更多 bit,其他用更少 |
本质
数值精度与模型质量的 trade-off —— 不改变模型结构或权重数量,只是把每个数值用更少的 bit 表示。信息损失是信息论意义上的量化噪声。
三、Google "先压缩再训练" —— UC Berkeley / ICML 2020
原文
Train Large, Then Compress: Rethinking Model Size for Efficient Training and Inference of Transformers — Zhuohan Li, Eric Wallace 等, UC Berkeley BAIR, ICML 2020。
核心发现(反直觉)
- 大模型收敛更快 —— 虽然大模型每步更慢,但收敛需要的步数更少,整体训练更省算力
- 大模型抗压缩 —— 大模型对量化和剪枝的鲁棒性更强,压缩后精度损失更小
- 最优策略 —— 训练极大模型,但提前停止(不训练到收敛),然后大幅度压缩
底层理论
- 大模型的"超参数化"性质使其存在大量冗余容量(over-parameterization)
- 在训练早期,模型学到的是通用特征(对压缩鲁棒),而在训练后期学到的是细粒度特征(对压缩敏感)
- 因此提前停止 + 压缩 = 保留通用特征 + 抛弃后期过拟合的细粒度
- 数学上:大模型的 Hessian 谱更平坦 → 对权重量化/剪枝的扰动更不敏感
本质
训练策略的重新设计 —— 不是模型结构创新,也不是编码优化,而是:用更大的模型、更短的训练周期、更狠的压缩 来同时优化训练和推理效率。
四、三者的本质区别
| 维度 | Bonsai | 量化 | Google 先训后压 |
|---|---|---|---|
| 操作对象 | 已训练好的权重数值 | 已训练好的权重数值 | 训练策略 + 权重数值 |
| 压缩粒度 | 1-bit / 1.71-bit(极限低位) | 4-bit / 8-bit(主流) | 8-bit 或更低(利用大模型鲁棒性) |
| 是否需要重训练 | ❌ 不需要 | ❌ 不需要(PTQ) / ⚠️ 需要(QAT) | ✅ 需要重新设计训练过程 |
| 精度损失来源 | 极低位编码的信息论容量上限 | 均匀/非均匀量化的舍入误差 | 提前停止丢失的信息 + 压缩噪声 |
| 数学基础 | 编码理论 + 神经网络压缩 | 信号处理 + 信息论 + 最优脑损伤 | 超参数化理论 + 优化收敛分析 |
| 本质 | 权重编码重构 | 数值精度降级 | 训练策略重设计 |
| 类比 | 同样一张照片 → 从 BMP 转 WebP 极端压缩 | 同样一张照片 → 从 32-bit 降到 8-bit 色深 | 拍照时故意用更高像素但只拍半秒 → 后期压成小图 |
五、实际落地中的协同关系
这三者不互斥,在现代开源模型部署中常组合使用:
Google 策略:
train large model → stop early → compress
│
┌───────────────┴───────────────┐
│ │
量化 (GPTQ/AWQ) Bonsai 式极限压缩
(4-bit, 保留~98%) (1-bit, 保留~90%)
│ │
GGUF 文件格式封装 手机端/边缘部署
(llama.cpp 推理) (iPhone 3.9GB)
Bonsai 是量化的一种极端特例(1-bit / ternary),而 Google 的方法论指出了什么时候应该选择压缩 —— 训练阶段就要为压缩做准备,而不是训练完才想怎么压。