@0xkeenz: 今天验证了一个纠结很久的事情 Qwen3.6 27B 官方原模型是 BF16 权重,但一些量化版本,比如 cyankiwi / Unsloth,会把部分关键权重转换成 FP16 而不是保持 BF16。BF16 和 FP16 在存储占用上是…
摘要
作者验证了Qwen3.6 27B模型权重从BF16转换为FP16不会导致数值溢出,并指出FP16尾数精度更高,解释了量化版本为何使用FP16而非保持BF16。
查看缓存全文
缓存时间: 2026/07/09 09:40
今天验证了一个纠结很久的事情
Qwen3.6 27B 官方原模型是 BF16 权重,但一些量化版本,比如 cyankiwi / Unsloth,会把部分关键权重转换成 FP16 而不是保持 BF16。BF16 和 FP16 在存储占用上是相同的,那为什么不直接保持原始 BF16 权重呢···?
我一直很疑惑,我看 Huggingface 和 Reddit 偶尔也有人提到这个问题,有一个说法是 FP16 对部分推理后端和老设备更友好,但我没找到这两种格式数值范围相关对比的讨论内容。于是我自己研究了一下
BF16 和 FP16 的对比:
BF16:8位指数 + 7位尾数,范围约 ±3.4×10³⁸ FP16:5位指数 + 10位尾数,范围约 ±65504
从精度上来看,FP16 尾数精度比 BF16 高 8 倍左右。 从数值范围来看,BF16 的最大有限值约是 FP16 的 2¹¹² 倍,其数值范围远远大于 FP16。
所以我在想,BF16 原权重会不会有部分数值在 ±65504 之外的情况?如果确实存在,那 BF16 转换成 FP16 就会发生数值溢出,导致不可逆的信息丢失。
光纠结没有用,我决定自己验证下,我下了 Qwen3.6 27B 原模型,用脚本检查了所有权重,最后发现所有权重都在 FP16 的数值范围内,最大绝对值也就 25.5····离 FP16 的 65504 范围上限差的老远了,所以我之前老纠结 BF16 转换成 FP16 会导致数值溢出的担心完全没必要!!
由于实际权重根本没碰到 FP16 数值范围上限,FP16 反而因为尾数精度更高,更适合用来保存关键权重,这可能也是 cyankiwi / Unsloth 这类量化版本会把部分关键权重转换成 FP16 的原因之一吧。
哈哈,又是被自己蠢哭的一天
相似文章
@sudoingX: 这个实验室将 Qwen 3.6 27B(这个我整个月都称之为 24GB 层级霸主的模型)压缩到了 3.9GB。……
PrismML 宣布推出 Bonsai 27B,这是 Qwen3.6 27B 的二值量化版本,可在手机上运行,每个权重仅使用 1.125 比特,声称保留了 89.5% 的智能。该模型正由 @sudoingX 独立测试以验证性能。
@0xkeenz: 有意思,昨天刚好还在研究 Unsloth 和 NVIDIA 的 Qwen3.6 27B NVFP4 有什么区别,结果今天 Unsloth 就更新了! 新版 Unsloth 的量化思路和 NVIDIA 官方方案很类似:不再从 BF16 和 …
Unsloth 发布新版 Qwen3.6 27B NVFP4 量化方案,引入 FP8_E4M3 中间精度层并细化权重保护,在 24GB VRAM 上实现 2.5 倍速度提升,同时改进准确性和工具调用能力。
# Qwen 3.6 27B - VLLM 性能基准测试结果(BF16、FP8、NVFP4)
使用 VLLM 对 Qwen 3.6 27B 在 BF16、FP8 和 NVFP4 三种量化方式下的详细基准测试显示:NVFP4 在 token 生成方面最快,但 FP8 在提示处理方面表现最佳。本文还提供了针对编码任务选择合适量化的实用建议。
Qwen/Qwen3.6-35B-A3B-FP8
阿里巴巴发布了Qwen3.6-35B-A3B-FP8,这是Qwen3.6的开源权重量化变体,拥有35B参数,通过MoE激活3B,具有改进的智能编码能力和保持思维链的迭代开发特性。
Qwen 3.6 27B 30GB 相同 top p: 98.358 ± 0.033 % vs UD Q8 K XL 33GB 相同 top p: 97.426 ± 0.041 %
一位社区研究员分享了为Qwen3.6-27B定制的量化方案,通过将高异常值子层保留为BF16格式,生成体积更小的30GB Q8 GGUF模型,在KLD和top-p指标上优于Unsloth的33GB Q8_K_XL变体。