(一)大家对QAT的评价
根据我自己的感觉……我意思是测试中出现的怪异情况。
以及社区用户的反馈,大家似乎都发现QAT有些奇怪的问题,比如:
有些用户觉得QAT模型工作得更好,但有些用户发现QAT在某些情况下大幅退化。
其实某些方面变强,某些方面稍微退化,是能够接受的。就像埼玉老师的头发。
但是大幅退化怎么看都觉得是bug啊。
(二)谷歌怎么说
元芳说:大人!
这些无头尸体绝不是自杀。
谷歌说:Trust me bro!
QAT版本的目标是“在大幅降低内存占用的同时,让质量尽可能接近 bfloat16”。
但是数据呢?每个厂商发布模型时,不都有一份详细的对比评测么。
谷歌你的QAT对比数据在哪儿啊?
| 模型 | BF16 | QAT BF16 | 普通Q4 | QAT Q4 |
|---|---|---|---|---|
| MMLU | ? | ? | ? | ? |
| GPQA | ? | ? | ? | ? |
| HumanEval | ? | ? | ? | ? |
| …… | ? | ? | ? | ? |
(三)理论分析
(3.1)BF16模型
都把BF16当作基准,但是QAT BF16,距离普通BF16有多大的差距?
我们以为的是(下表为虚构数据,请注意):
| 模型 | BF16能力 | Q4能力 |
|---|---|---|
| 普通模型 | 100 | 85 |
| QAT模型 | 98 | 95 |
但实际会不会QAT模型的BF16只有90%或更低?
先前就有论文指出,QAT是在高精度性能和低精度皮实性(robust)之间做权衡。
原谅我实在无法接受鲁棒这个翻译……就那么多容量,不可能全部兼得。
(3.2)测试偏差
测试样本太少,这是我觉得最有可能的原因之一。我自己在测试中,以为发现了llama.cpp版本/模型之间的差异,但是当重复20次,30次的时候,会发现原来都是只是偶然波动。连续2次失败的模型,后面18次都成功……有用户正在测试相关模型,期待结论。
(3.3)其它问题和干扰
llama.cpp本身迭代非常快,新功能,新支持,会不会引入/修复bug。导致不同版本对模型表现支持不同。
Gemma 4本来就有一些其它已知问题:thinking parser,reasoning parser,tool calling,system prompt遵循。有用户比较早就在吐槽这些问题了,会不会干扰QAT的性能?
Google发布的QAT存在实际问题,按照Unsloth发布时的说明,谷歌放的版本直接量化会把QAT的精度又损失回去了(所以Unsloth才单独发布了一系列版本)。但如果并不只有精度问题呢?前面用户的测试中,Google 和 Unsloth 的 QAT 版本都存在某方面严重退化的问题。
(四)总结
我自己已经把QAT模型换回普通的Gemma量化模型了。
这项技术可能还需要等待和观望。
普通用户太难进行全面的测试了,希望官方能给个数据作为支撑。
同时也希望早日发现并解决问题。


被折叠的 条评论
为什么被折叠?



