INT8 激活量化:为什么你的 Mac AI 推理还能再快 1.8 倍
2026-05-22
当所有人都以为 MLX 已经是 Apple Silicon 的极限时,我们发现了 M 系列芯片隐藏的 INT8 硬件能力。
Apple Silicon 的神经网络引擎(ANE)和 GPU 被公认为端侧 AI 推理的顶级硬件,但过去两年,开发者们一直在用一个“残血”方案——权重量化(Weight Quantization)。
MLX、llama.cpp 等主流框架都只支持 W4A16 或 W8A16:模型权重压缩到 4bit 或 8bit,但计算时仍然要反量化回 FP16。这就像把货物压缩打包运输,到了目的地还得全部拆包才能使用。
真正的突破是 INT8 激活量化(Activation Quantization)——把模型推理过程中的激活值(Activation)也量化到 INT8,并在芯片层面直接用 INT8 指令计算。这意味着货物不仅打包运输,连使用过程都在“压缩态”完成,全程无需 FP16 的中间环节。
明略科技开源的 Cider 框架,解锁了 Apple M5 芯片的 INT8 TensorOps 硬件指令,实现了 W8A8 全量化推理。实测数据显示:在 M5 Pro 上,端到端 Prefill 速度提升 1.57×–1.92×,峰值内存降低约 40%,精度几乎无损。
本文将从技术原理、开发者实践、投资趋势三个维度,解析 INT8 激活量化如何成为端侧 AI 的“隐形加速器”。

当前主流的量化方案(如 MLX 原生 W4A16、W8A16)属于权重量化:
类比:把一本厚书扫描成 PDF 压缩包存进 U 盘(省空间),但阅读时还得解压成原图才能看(没省时间)。
激活量化(Activation Quantization) 更进一步:
类比:不仅书是压缩的,连阅读器都支持直接读压缩格式,全程不解压。
| 标识 | 权重精度 | 激活精度 | 适用场景 | 速度 |
| FP16 | 16bit | 16bit | 精度优先 | 基准 |
| W4A16 | 4bit | 16bit | 存储极度受限 | 与 FP16 相当 |
| W8A16 | 8bit | 16bit | 平衡方案 | 略快于 FP16 |
| W8A8 | 8bit | 8bit | 速度优先 | 1.5–1.9× 提升 |
| W4A8 | 4bit | 8bit | 极致压缩 | 接近 W8A8 |
关键认知:W4A16 虽然权重更压缩(4bit < 8bit),但计算时激活值仍是 FP16,所以速度提升有限;而 W8A8 虽然权重只压缩到 8bit,但激活也量化到 8bit,整体计算更快。
这是所有量化技术的核心顾虑:速度换精度,值不值?
困惑度衡量模型预测下一个词的“不确定程度”——数值越低越好。
| 模型 | 配置 | 困惑度(PPL) | 与 FP16 差异 |
| Qwen3-8B | FP16 | 9.726 | 基准 |
| Qwen3-8B | Cider W8A8 per-channel | 9.756 | +0.03(几乎无损) |
| Llama3-8B | FP16 → W8A8 PC | 6.138 → 6.271 | +0.133(可接受) |
Cider 的 W8A8 per-channel 方案仅比 FP16 高出 0.03 的困惑度,在实际使用中几乎无法感知差异。
Cider 支持多种量化粒度,精度与速度的平衡点:
| 粒度模式 | 描述 | 精度 | Prefill 提速 |
| per-channel | 按输出通道一个 scale | 略低 | ~1.8×(最快) |
| per-group gs=128 | 128 元素一组 | 中等 | ~1.5× |
| per-group gs=64 | 64 元素一组 | 较高 | ~1.3× |
按 Cider实测:per-channel 速度最快但精度略低,per-group gs=64 精度最高但速度增益最小。开发者可根据场景在精度和速度间取舍。
Apple 的 MLX 框架目前只支持权重量化(W4A16、W8A16),没有原生的 INT8 激活计算路径。
MLX 的设计哲学是“延迟求值 + 统一内存”,但在量化推理上,官方实现停留在“权重量化存储,FP16 计算”的层面。
Cider 基于 MLX 的 custom primitives 构建,实现了:
1. 在线激活量化:在前向传播中对激活值做 per-token INT8 量化
2. INT8 矩阵乘法:通过 Metal 4 的 cooperative_tensor API 调用 M5 芯片的 INT8 TensorOps 硬件指令
3. 非侵入式兼容:与 mlx_vlm 等现有工具链集成(已在 mlx_vlm 0.4.3 上验证)
测试环境:Apple M5 Pro
| 模型 | W8A8 PC Prefill (tok/s) | Decode (tok/s) | 对比 W8A16 提速 |
| Qwen3-VL-2B (1334 tokens) | 3242 | 104 | 1.57× (vs 2065) |
| Qwen3-VL-4B (1334 tokens) | 2186 | 54 | 1.22× (vs 1786) |
| Qwen3-8B (Wikitext2) | 123.5s total | 接近原生 | 1.79× (vs 221.3s) |
| Llama3-8B (Wikitext2) | 123.3s total | 接近原生 | 1.92× (vs 236.9s) |
Cider 的条件编译机制:
| 芯片型号 | pip install -e . 行为 | import cider 行为 |
| M5+ | 完整编译(CMake + Metal kernels) | 全部功能可用 |
| M4 及以下 | 跳过 C++ 编译,仅安装 Python 包 | is_available() → False,convert_model() 为 warning no-op |
开发者无需关心硬件差异,安装后自动检测并启用最优路径。
from cider import convert_model, is_available
model, proc = load(“path/to/model”) # 用 mlx_vlm 或 mlx_lm 加载
if is_available():
convert_model(model) # 自动替换所有 Linear 层为 CiderLinear
# seq_len > 1 → W8A8 INT8 TensorOps(加速 prefill)
# seq_len == 1 → INT8 MV kernel(decode 接近原生速度)
注意:对于视觉语言模型(VLM),建议只对语言模型部分做量化——即 convert_model(model.language_model),避免视觉编码器被量化导致精度下降。
前提条件:Cider 假设模型权重是“量化友好”的,即已经过 GPTQ、SmoothQuant 等后训练校准。如果模型存在权重离群值(outlier),直接使用可能出现输出乱码。
| 特性 | Cider (W8A8) | llama.cpp (Q8_0) |
| 框架生态 | MLX 原生 | GGUF 生态 |
| Apple Silicon 优化 | ✅ M5+ INT8 TensorOps 硬件加速 | ✅ Metal 支持 |
| Prefill 提速 | 1.57×–1.92×(vs W8A16) | 取决于模型和配置 |
| VLM 多模态 | ✅ mlx_vlm 兼容 | ⚠️ 需额外适配 |
| 安装方式 | pip install -e . | 编译/预编译二进制 |
| 芯片要求 | M5+ 获完整加速,M4 降级 | 所有芯片 |
核心差异:llama.cpp 的 Q8_0 是通用 INT8 量化,未针对 Apple Silicon 的 INT8 TensorOps 做专门优化;Cider 通过 Metal kernel 直接调用硬件指令,在 M5 上优势更明显。
A: 不仅压缩模型权重到 8bit,连推理过程中的激活值也保持 8bit,并在硬件层面用 INT8 指令直接计算,Prefill 提速 1.57×–1.92×。
A: W4A16 权重更压缩(4bit)但计算时激活回 FP16;W8A8 权重 8bit 但激活也 8bit,整体计算更快。在 M5 芯片上,W8A8 速度优于 W4A16。
A: Cider 的 W8A8 per-channel 方案在 Qwen3-8B 上困惑度仅比 FP16 高 0.03(9.726 → 9.756),实际使用中几乎无损。
A: M5+ 获得完整 INT8 TensorOps 硬件加速;M4 及以下安装不报错,is_available() 返回 False,自动降级为标准 MLX 推理。
A: 安装 Cider 后,调用 convert_model(model) 即可自动替换所有 Linear 层。注意模型需要是“量化友好”的(已做过 GPTQ/SmoothQuant 等校准)。
A: llama.cpp 是通用方案,Cider 专门针对 Apple M5+ 的 INT8 TensorOps 做硬件级优化,Prefill 提速更显著。
A: pip install -e . 即可。M5+ 自动编译 C++ 扩展启用硬件加速,M4 及以下仅安装 Python 包,不报错。
GitHub:github.com/Mininglamp-AI/cider
安装:pip install -e
联系我们:model@mininglamp.com
信息填写