需要第二双眼睛,这个Qwen3.6 27B量化方案总是用更少的思考且正确

Reddit r/LocalLLaMA 模型

摘要

作者分享了一个Qwen3.6 27B的量化方案,该方案使模型使用显著更少的思考令牌,同时仍然产生正确的答案,从而在数学基准测试中实现更快的推理。

好的,听我说。这一切始于我试图理解为什么这个Qwen3.6 27B INT8 AutoRound (https://huggingface.co/Minachist/Qwen3.6-27B-INT8-AutoRound/tree/main) 方案比我尝试过的任何其他Qwen3.6 27B量化方案都要好得多。在一些个人Rust + Bevy基准测试中,它始终能生成更好的代码和游戏。然后我注意到该模型的思考量要少得多。INT8模型很棒,但vLLM的VRAM使用更高。由于llama-cpp(在PR中)有MTP,我想我也可以量化这个并添加MTP。有趣的是,INT8 AutoRound和我的GGUF量化似乎在更快得到答案方面都优于UD Q8 K XL。我选择像Minachist一样保留相同的BF16层。对于我的正式测试,我使用AIME数学问题以及Opus 4.7为我创建的自定义数学问题。新的量化大小差不多,只比UD Q8 K XL稍大,但差异却惊人地明显。我想在BF16上运行相同的测试将揭示这种行为是否真的更优。也可能只是更多思考实际上更好,但我的经验告诉我相反。尽管如此,以下是一些结果。我的测试针对这些量化(注意它们包含MTP层,所以稍大): * Q8_0 28595762432 * 磁盘大小 29047084160 (28.3 GiB) * Q8 K XL * 磁盘大小 35776484480 (34.9 GiB) * 这个量化我试图逐层复制INT8 AutoRound方案。 * 磁盘大小 37144875200 字节 (36.2 GiB) 那么,更大的模型表现更好真的令人惊讶吗?不。然而非常有趣的是,思考量大幅减少。因此,运行更大量化所损失的KV缓存空间通过思考时少用20%的令牌得以弥补。以下是我进行的一些运行:注意所有运行使用相同的种子和采样参数。多次运行(3次)产生相同的输出。KV缓存为bf16/bf16。--temp 0.6 --top-p 0.95 --top-k 20 --min-p 0.0 --presence-penalty 0.0 --repeat-penalty 1.0 --seed 1337 问题1(数学,AIME风格)方程 \\(x\^3-7x\^2+14x-8=0\\) 的根为 a,b,c。如果 \\(\\frac1{a\^2+1}+\\frac1{b\^2+1}+\\frac1{c\^2+1}=\\frac mn\\) 化为最简分数,求 m+n。 Llama CPP * Q8 * 16,234个令牌,3分48秒,70.90 t/s(记住这是MTP,2个令牌) * UD Q8 K XL * 16,001个令牌,4分00秒,66.24 t/s * 自定义Q8 * 9,671个令牌,2分39秒,60.60 t/s,约40%更少思考 vLLM * Minachist INT8 AutoRound * 10,200个令牌,2分38秒,34.2 t/s(此处未使用MTP) 问题2(数学,AIME风格)有多少有序正整数对 (x,y) 满足 \\(x\^2-y\^2=2026\\)? Llama CPP * Q8 * 7,598个令牌,1分44秒,72.76 t/s * 奇怪的是Q8甚至表现更好 * 自定义Q8 * 5,666个令牌,1分33秒,60.49 t/s * 约59%更少思考 * UD Q8 K XL * 13,596个令牌,3分29秒,65.02 t/s vLLM * Minachist INT8 AutoRound * 8,931个令牌,34.4 t/s(此处未使用MTP) 我还运行了其他一些数学测试,但你明白了。这个量化思考少得多。对于任何想复现的人:我下载了HF安全张量并转换为单个GGUF,然后使用llama CPP量化。这是尝试所需的最低量化: !将safetensor转换为GGUF /home/user/llm/llama.cpp/convert_hf_to_gguf.py /home/user/llm/models/Qwen3.6-27B/BF16 --outfile /home/user/llm/models/Qwen3.6-27B/BF16/Qwen3.6-27B-BF16.gguf !量化同时保留BF16层 /home/user/llm/llama.cpp/build/bin/llama-quantize \ --tensor-type token_embd=bf16 \ --tensor-type output=bf16 \ --tensor-type output_norm=bf16 \ --tensor-type post_attention_norm=bf16 \ --tensor-type attn_q_norm=bf16 \ --tensor-type attn_k_norm=bf16 \ --tensor-type attn_qkv=bf16 \ --tensor-type attn_gate=bf16 \ --tensor-type ssm_a=bf16 \ --tensor-type ssm_alpha=bf16 \ --tensor-type ssm_beta=bf16 \ --tensor-type ssm_conv1d=bf16 \ --tensor-type ssm_dt.bias=bf16 \ --tensor-type ssm_norm=bf16 \ --tensor-type ssm_out=bf16 \ /home/user/llm/models/Qwen3.6-27B/BF16/Qwen3.6-27B-BF16.gguf \ /home/user/llm/models/Qwen3.6-27B/BF16/Qwen3.6-27B-Q8-BIGBOY.gguf \ q8_0 将以下层添加到之前的量化中对我来说没有任何改进(我认为节省了约1GB): --tensor-type attn_norm=bf16 \ --tensor-type attn_output=bf16 \ --tensor-type attn_q=bf16 \ --tensor-type attn_k=bf16 \ --tensor-type attn_v=bf16 \ 它可能好的原因: * 我们使用的是BF16而不是F16 * 它实际上更大,因此更多层保留为原生格式 * 我们保留为BF16的层很重要 一些局限性: * 每个模型每个问题我只运行了3次测试 * 我应该用另一个种子重新运行测试 * 我没有运行基准测试套件。那会很有帮助,但我们也需要注意Qwen在CoDeC基准测试中显示已被过度优化。 下一步: * 我将用另一个种子重新运行测试 * 租用RunPod运行相同种子和采样的BF16
查看原文

相似文章

Qwen/Qwen3.6-35B-A3B-FP8

Hugging Face Models Trending

阿里巴巴发布了Qwen3.6-35B-A3B-FP8,这是Qwen3.6的开源权重量化变体,拥有35B参数,通过MoE激活3B,具有改进的智能编码能力和保持思维链的迭代开发特性。

Qwen/Qwen3.6-27B-FP8

Hugging Face Models Trending

阿里巴巴发布 Qwen3.6-27B-FP8,一款 27B 参数的 FP8 量化模型,在代理式编码与推理基准上表现强劲,现已上架 Hugging Face。

Qwen/Qwen3.6-35B-A3B

Hugging Face Models Trending

Qwen 发布 Qwen3.6-35B-A3B,一款开源权重的混合专家(MoE)模型,总参数量 35B,激活参数量 3B,在智能体编码和推理能力保持方面实现显著提升。