@norpadon: 我们发布了首个为 Qwen3.5 系列模型设计的量化检查点,这些模型与我们的推理引擎共同设计,以在 Apple 硬件上实现最佳性能。
摘要
Mirai Labs 发布了使用其新 Mirai 量化方法的 Qwen3.5 模型量化检查点,在 Apple 硬件上推理速度提升 40-60%,同时保持与全精度模型相当的性能。
查看缓存全文
缓存时间: 2026/06/08 21:28
我们正在发布 Qwen3.5 系列模型的首个量化检查点,这些检查点与我们的推理引擎联合设计,旨在 Apple 硬件上实现最大性能。
从 0.8B、2B 和 4B 模型开始
https://t.co/2R8BdhAfzv
介绍 Mirai 量化:在 Apple Silicon 上重新定义本地 LLM 的速度-质量边界。
来源:https://trymirai.com/blog/quantization 作者:Artur Chakhvadze、Ryan Mathieu、Roman Knyazhitskiy、Nikolai Voinilenko、Chen-Chen Yeh、Artur Mullakhmetov、Eugene Bokhan,与 Mirai Labs 其他成员合作。
2026年6月4日
我们很高兴发布 Qwen3.5 系列模型的第一个量化检查点。我们联合设计的量化与推理引擎栈在精度与生成速度的权衡上显著优于 Unsloth/llama.cpp 和 MLX,在相同质量水平下每秒生成 token 数提升 40-60%,覆盖从智能手机到高端台式机的 Apple 设备。
这是我们的模型优化项目众多即将发布的第一个,也是更大工程努力的一部分,旨在将能力完备的完全本地化智能体以每秒超过 1,000 个 token 的速率带到消费级硬件上。我们在此做出的许多选择都是战略性的:量化格式经过精心挑选,以便与未来的推测解码流水线配合使用时最大化硬件利用率。
我们首先发布的是4 位(Mirai-M)和8 位(Mirai-L)版本的 Qwen3.5-0.8B、Qwen3.5-2B 和 Qwen3.5-4B。更大的 Qwen3.5/Qwen3.6 模型以及 Gemma 4 系列即将推出。值得注意的是,在顶级芯片上,我们的 8 位模型运行速度比量化到 4 位的 llama.cpp 模型更快,同时与原始未量化的 bf16 版本几乎完全相同。
结果
9914118422626931
10.0010.0030.010.030.10
KL (log scale)
Tokens / Second
Mirai
Unsloth / Llama.cpp
MLX
Good
IQ4_NL
IQ4_XS
Q3_K_M
Q3_K_S
Q4_1
Q4_K_M
Q4_K_S
Q5_K_M
Q5_K_S
Q6_K
UD_IQ3_XXS
UD_Q3_K_XL
UD_Q4_K_XL
UD_Q5_K_XL
UD_Q6_K_XL
UD_Q8_K_XL
MLX 4bit
MLX 8bit
Mirai • M
Mirai • L
我们的 M 检查点在大小和精度上与“Q4_K_S” Unsloth/Llama.cpp 版本相当,同时在所有设备上的解码速度上超越所有 llama.cpp 检查点 30-50%。
我们的 L 检查点在统计上与全精度版本无法区分,却能实现与 4 位或 5 位 llama.cpp 版本相当的解码速度,甚至在高端芯片上超越 4 位 llama.cpp 检查点。
格式
我们设计的量化格式以最大化解码性能为目标,并有意在速率/失真曲线与硬件友好性之间做出权衡。尽管存在这些权衡,我们的量化在给定压缩率下仍具有很强的竞争力。
我们为 4 位检查点选择了一种保守的4 位非对称整数量化格式,包含 4 位零点和 bf16 缩放因子;为 8 位版本选择8 位对称量化。我们使用块大小为 32 的块对角随机哈达玛变换作为预处理和后处理步骤,以抑制异常值。
RHT 块大小选择为匹配 GPU 线程束宽度。这使得预处理和后处理可以通过线程束级 shuffle 操作实现,并融合到 RMSNorm 和 GEMM/GEMV 内核的前言和结尾部分,从而不增加任何额外内存流量,仅有极小的性能开销。
整数量化格式虽然从速率失真的角度看并非最优,但可以在 GPU 上极其高效地实现。当与动态 8 位激活量化结合时,还可以利用硬件加速的 int8 GEMM 路径,在 Apple M5+ 芯片上实现高性能推测解码。
我们尝试了先进的向量量化器设计,发现虽然它们可以轻松实现更好的速率失真特性,但其 GPU 实现由于从查找表读取时存在共享内存拥塞和存储体冲突问题。这一点,加上希望在神经加速器上使用 int8 GEMM 路径,促使我们坚持使用整数量化。
出于类似原因,我们避免使用“中间”的 3、5 和 6 位格式,尽管可以通过细粒度的逐层精度分配获得相当大的质量提升。
算法
我们采用两阶段方法:训练后量化,随后是轻量级的量化感知蒸馏步骤以恢复精度。
对于训练后量化,我们使用 YAQA 二阶量化算法的自定义 JAX 实现,并进行了微小修改以提高数值稳定性。我们使用内部校准数据集来估计 Fisher 信息矩阵。
我们在 PTQ 步骤之后,在由未量化教师模型生成的展开数据集上进行一次小规模的量化感知蒸馏运行。我们使用 Muon 结合确定性直通估计器来优化量化后的权重,使用 AdamW 来优化分组缩放因子和零点。
我们发现蒸馏步骤的质量对数据集的质量和领域覆盖高度敏感,我们正在努力改进和扩展它。我们预计随着继续迭代我们的 QAD 配方,质量将会有显著进一步提升。
Lalamo (https://github.com/trymirai/lalamo),我们的自定义模型优化框架,提供了高度高效的抽象,使我们能够轻松试验新颖的量化格式和优化算法,并直接应用于任何 LLM 架构。
评估
我们关注的两个指标是:启用思考且推理预算为 81,920 个 token 时的 MMLU-Pro 得分,以及未量化模型与量化模型 logits 之间的平均 Kullback-Leibler 散度。
我们在一组从 Lmsys-Chat-1M 数据集中随机抽取的 100 个问题上计算了 KL 分数。这些问题的答案由未量化模型生成。我们计算了生成的答案上教师和学生 logits 之间的平均 KL 散度。Lmsys-Chat-1M 数据集在 PTQ 或 QAD 阶段均未使用。
值得注意的是,来自任何提供商的绝大多数 8 位量化得分通常低于这些评估的噪声基线,表明这些评估无法区分不同 8 位量化的质量。我们将噪声基线估计为 llama.cpp 全精度模型与我们全精度检查点之间的平均 KL 散度。在这种情况下,唯一的差异在于数值精度和归约顺序,产生大约 8 × 10⁻⁴ 的平均 KL。
KL 评估的问题在于,虽然它极其精确,但一个良好的量化完全有可能具有较大的 KL 值。它也无法检测长期性能退化。因此,我们还将由 EleutherAI (https://www.eleuther.ai/) 的 lm-evaluation-harness 运行的 MMLU-Pro 评估作为额外的锚点。
我们使用逐行二项式参数化自举法来估计单个 MMLU-Pro 得分的标准差下限。该下限约为 0.3 个百分点,使得任何低于 1 个百分点的差异在统计上都不显著。这也解释了 Unsloth 的 6 位量化如何在 MMLU-Pro 上表现优于其 8 位量化。
我们的 4 位 Qwen3.5-0.8B 和 Qwen3.5-2B 检查点在质量上与 Q4_K_M 检查点相当,同时体积小约 20%。 Qwen3.5-4B 检查点在大小和质量上都介于 Q3_K_M 和 Q4_0 之间。我们的 8 位检查点在质量上与 MLX 8 位和 Unsloth UD-Q8_K_XL 无法区分。
尝试我们的量化模型
| 模型 | 大小 | 量化 | M4 Pro 运行 | 常驻内存 |
|---|---|---|---|---|
| Qwen3.5-4B-L (https://huggingface.co/trymirai/Qwen3.5-4B-L) | 4B | Mirai Large | ~ 48 tok/s | 低于 4.75 GB |
| Qwen3.5-4B-M (https://huggingface.co/trymirai/Qwen3.5-4B-M) | 4B | Mirai Medium | ~ 84 tok/s | 低于 2.71 GB |
| Qwen3.5-2B-L (https://huggingface.co/trymirai/Qwen3.5-2B-L) | 2B | Mirai Large | ~ 108 tok/s | 低于 2.22 GB |
| Qwen3.5-2B-M (https://huggingface.co/trymirai/Qwen3.5-2B-M) | 2B | Mirai Medium | ~ 171 tok/s | 低于 1.32 GB |
| Qwen3.5-0.8B-L (https://huggingface.co/trymirai/Qwen3.5-0.8B-L) | 0.8B | Mirai Large | ~ 222 tok/s | 低于 1.01 GB |
| Qwen3.5-0.8B-M (https://huggingface.co/trymirai/Qwen3.5-0.8B-M) | 0.8B | Mirai Medium | ~ 314 tok/s | 低于 0.65 GB |
未来工作
- 在未来几周内,我们将为更大的 Qwen3.5/Qwen3.6 模型(包括 27B 和 35B-A3B 变体)以及 Gemma 4 系列模型发布量化检查点。
- 接下来,我们将发布我们自己基于扩散的推测解码方案,这将释放我们推理架构的全部潜力。此外,我们正在尝试 2 位和 3 位量化的新颖方法,这将使我们能够在高端消费级硬件上高效运行 300B 参数的 MoE 模型。
作者:Artur Chakhvadze、Ryan Mathieu、Roman Knyazhitskiy、Nikolai Voinilenko、Chen-Chen Yeh、Artur Mullakhmetov、Eugene Bokhan,与 Mirai Labs 其他成员合作。
2026年6月4日
我们很高兴发布 Qwen3.5 系列模型的第一个量化检查点。我们联合设计的量化与推理引擎栈在精度与生成速度的权衡上显著优于 Unsloth/llama.cpp 和 MLX,在相同质量水平下每秒生成 token 数提升 40-60%,覆盖从智能手机到高端台式机的 Apple 设备。
这是我们的模型优化项目众多即将发布的第一个,也是更大工程努力的一部分,旨在将能力完备的完全本地化智能体以每秒超过 1,000 个 token 的速率带到消费级硬件上。我们在此做出的许多选择都是战略性的:量化格式经过精心挑选,以便与未来的推测解码流水线配合使用时最大化硬件利用率。
我们首先发布的是4 位(Mirai-M)和8 位(Mirai-L)版本的 Qwen3.5-0.8B、Qwen3.5-2B 和 Qwen3.5-4B。更大的 Qwen3.5/Qwen3.6 模型以及 Gemma 4 系列即将推出。值得注意的是,在顶级芯片上,我们的 8 位模型运行速度比量化到 4 位的 llama.cpp 模型更快,同时与原始未量化的 bf16 版本几乎完全相同。
结果
9914118422626931
10.0010.0030.010.030.10
KL (log scale)
Tokens / Second
Mirai
Unsloth / Llama.cpp
MLX
Good
IQ4_NL
IQ4_XS
Q3_K_M
Q3_K_S
Q4_1
Q4_K_M
Q4_K_S
Q5_K_M
Q5_K_S
Q6_K
UD_IQ3_XXS
UD_Q3_K_XL
UD_Q4_K_XL
UD_Q5_K_XL
UD_Q6_K_XL
UD_Q8_K_XL
MLX 4bit
MLX 8bit
Mirai • M
Mirai • L
我们的 M 检查点在大小和精度上与“Q4_K_S” Unsloth/Llama.cpp 版本相当,同时在所有设备上的解码速度上超越所有 llama.cpp 检查点 30-50%。
我们的 L 检查点在统计上与全精度版本无法区分,却能实现与 4 位或 5 位 llama.cpp 版本相当的解码速度,甚至在高端芯片上超越 4 位 llama.cpp 检查点。
格式
我们设计的量化格式以最大化解码性能为目标,并有意在速率/失真曲线与硬件友好性之间做出权衡。尽管存在这些权衡,我们的量化在给定压缩率下仍具有很强的竞争力。
我们为 4 位检查点选择了一种保守的4 位非对称整数量化格式,包含 4 位零点和 bf16 缩放因子;为 8 位版本选择8 位对称量化。我们使用块大小为 32 的块对角随机哈达玛变换作为预处理和后处理步骤,以抑制异常值。
RHT 块大小选择为匹配 GPU 线程束宽度。这使得预处理和后处理可以通过线程束级 shuffle 操作实现,并融合到 RMSNorm 和 GEMM/GEMV 内核的前言和结尾部分,从而不增加任何额外内存流量,仅有极小的性能开销。
整数量化格式虽然从速率失真的角度看并非最优,但可以在 GPU 上极其高效地实现。当与动态 8 位激活量化结合时,还可以利用硬件加速的 int8 GEMM 路径,在 Apple M5+ 芯片上实现高性能推测解码。
我们尝试了先进的向量量化器设计,发现虽然它们可以轻松实现更好的速率失真特性,但其 GPU 实现由于从查找表读取时存在共享内存拥塞和存储体冲突问题。这一点,加上希望在神经加速器上使用 int8 GEMM 路径,促使我们坚持使用整数量化。
出于类似原因,我们避免使用“中间”的 3、5 和 6 位格式,尽管可以通过细粒度的逐层精度分配获得相当大的质量提升。
算法
我们采用两阶段方法:训练后量化,随后是轻量级的量化感知蒸馏步骤以恢复精度。
对于训练后量化,我们使用 YAQA 二阶量化算法的自定义 JAX 实现,并进行了微小修改以提高数值稳定性。我们使用内部校准数据集来估计 Fisher 信息矩阵。
我们在 PTQ 步骤之后,在由未量化教师模型生成的展开数据集上进行一次小规模的量化感知蒸馏运行。我们使用 Muon 结合确定性直通估计器来优化量化后的权重,使用 AdamW 来优化分组缩放因子和零点。
我们发现蒸馏步骤的质量对数据集的质量和领域覆盖高度敏感,我们正在努力改进和扩展它。我们预计随着继续迭代我们的 QAD 配方,质量将会有显著进一步提升。
Lalamo (https://github.com/trymirai/lalamo),我们的自定义模型优化框架,提供了高度高效的抽象,使我们能够轻松试验新颖的量化格式和优化算法,并直接应用于任何 LLM 架构。
评估
我们关注的两个指标是:启用思考且推理预算为 81,920 个 token 时的 MMLU-Pro 得分,以及未量化模型与量化模型 logits 之间的平均 Kullback-Leibler 散度。
我们在一组从 Lmsys-Chat-1M 数据集中随机抽取的 100 个问题上计算了 KL 分数。这些问题的答案由未量化模型生成。我们计算了生成的答案上教师和学生 logits 之间的平均 KL 散度。Lmsys-Chat-1M 数据集在 PTQ 或 QAD 阶段均未使用。
值得注意的是,来自任何提供商的绝大多数 8 位量化得分通常低于这些评估的噪声基线,表明这些评估无法区分不同 8 位量化的质量。我们将噪声基线估计为 llama.cpp 全精度模型与我们全精度检查点之间的平均 KL 散度。在这种情况下,唯一的差异在于数值精度和归约顺序,产生大约 8 × 10⁻⁴ 的平均 KL。
KL 评估的问题在于,虽然它极其精确,但一个良好的量化完全有可能具有较大的 KL 值。它也无法检测长期性能退化。因此,我们还将由 EleutherAI (https://www.eleuther.ai/) 的 lm-evaluation-harness 运行的 MMLU-Pro 评估作为额外的锚点。
我们使用逐行二项式参数化自举法来估计单个 MMLU-Pro 得分的标准差下限。该下限约为 0.3 个百分点,使得任何低于 1 个百分点的差异在统计上都不显著。这也解释了 Unsloth 的 6 位量化如何在 MMLU-Pro 上表现优于其 8 位量化。
我们的 4 位 Qwen3.5-0.8B 和 Qwen3.5-2B 检查点在质量上与 Q4_K_M 检查点相当,同时体积小约 20%。 Qwen3.5-4B 检查点在大小和质量上都介于 Q3_K_M 和 Q4_0 之间。我们的 8 位检查点在质量上与 MLX 8 位和 Unsloth UD-Q8_K_XL 无法区分。
尝试我们的量化模型
| 模型 | 大小 | 量化 | M4 Pro 运行 | 常驻内存 |
|---|---|---|---|---|
| Qwen3.5-4B-L (https://huggingface.co/trymirai/Qwen3.5-4B-L) | 4B | Mirai Large | ~ 48 tok/s | 低于 4.75 GB |
| Qwen3.5-4B-M (https://huggingface.co/trymirai/Qwen3.5-4B-M) | 4B | Mirai Medium | ~ 84 tok/s | 低于 2.71 GB |
| Qwen3.5-2B-L (https://huggingface.co/trymirai/Qwen3.5-2B-L) | 2B | Mirai Large | ~ 108 tok/s | 低于 2.22 GB |
| Qwen3.5-2B-M (https://huggingface.co/trymirai/Qwen3.5-2B-M) |
相似文章
2.5倍更快的Qwen3.6 NVFP4 Unsloth量化版本
Unsloth推出使用NVFP4格式的量化Qwen3.6模型,推理速度提升2.5倍。
@Ex0byt:激活、切片、拼接、微调数日,外加15小时屏息凝神的NVFP4校准/传播轮次……
社区成员发布了Qwen3.6-35B-A3B-PRISM-NVFP4——一款经过多轮、数据集校准、零损耗的NVFP4量化版Qwen模型。
Qwen3.7预览版登陆Arena(1分钟阅读)
阿里巴巴Qwen宣布两大重要模型发布:Qwen3-Omni,首个原生端到端全模态AI,统一处理文本、图像、音频和视频;以及Qwen3-Next-80B-A3B,一款超高效MoE模型,每个token激活30亿参数,实现了SOTA性能,推理速度比Qwen3-32B快10倍。
Qwen 3.7 Max
Qwen 3.7 是一款来自中国实验室的新AI模型,令人印象深刻,讨论焦点在于其权重是否可供下载。
Wow!Qwen 3.6:35b-a3b 在 3090 上……太惊人了。
一位用户分享了在二手 RTX 3090 上运行量化版 Qwen 3.6:35b-a3b 模型的惊人结果:将模型放入显存后,输出速度达到每秒 160 个 token,并以 75 秒的视频处理时间展示了视觉能力。