未经审查的 Qwen3.8-27B 模型,以 GGUF 量化格式发布,保留并验证了多令牌预测(MTP)头。
拒绝行为已大幅减少,但并未完全消除。具体数据请参阅"实测行为"部分。其余能力、训练数据和架构均保持不变。
MTP 张量经过验证,而非凭空假设。 Abliteration 技术会丢弃
mtp.*张量:模型通过 transformers 重新保存,而该框架不携带 MTP 头,但config.json中仍声明了该组件。这些张量已从基础检查点重新嫁接回来,且每个文件在量化后均经过检查——详见"方法与验证"部分。
mtp.* 张量从基础检查点原样复制。Abliteration 从不触碰这些张量——它仅修改主栈中的 attn.o_proj 和 mlp.down_proj。| 类别 | 文件 | 适用场景 |
|---|---|---|
| 融合版 | Qwen3.8-27B-Uncensored-<QUANT>.gguf | 单文件。MTP 以内置草稿形式内联其中。 |
| 目标 + 草稿 | Qwen3.8-27B-Uncensored-noMTP-<QUANT>.gguf + Qwen3.8-27B-Uncensored-draft-Q8_0.gguf | 你的运行环境需要显式指定 --model-draft。 |
| 视觉版 | Qwen3.8-27B-Uncensored-vision-f16.gguf | 需要图像输入,且基础模型带有视觉塔时使用。 |
草稿头在所有配置中均保持 Q8_0 精度。相对于目标模型,它体积较小,进一步压缩量化只会降低草稿接受率,而几乎无法节省磁盘空间。
| 基础模型 | Qwen/Qwen3.8-27B |
| 架构 | Qwen3_5ForConditionalGeneration |
| 层数 | 64 |
| 词表大小 | 248320 |
| MTP 层数 | 1 |
| 视觉能力 | 支持 |
| 上下文长度 | 262144 |
| 量化格式 | IQ2_M, IQ4_XS, Q4_K_M, Q5_K_M, Q6_K, Q8_0 |
| 重要性矩阵 | wikitext-2 原始数据,200 个块,已发布 |
| 转换工具 | llama.cpp a94d563ed |
| 文件 | 大小 | MTP | PPL(wikitext-2) |
|---|---|---|---|
Qwen3.8-27B-Uncensored-IQ2_M.gguf | 10.6 GB | 是 | PPL = 7.8581 +/- 0.27481 |
Qwen3.8-27B-Uncensored-IQ4_XS.gguf | 15.3 GB | 是 | PPL = 7.1583 +/- 0.25019 |
Qwen3.8-27B-Uncensored-Q4_K_M.gguf | 16.8 GB | 是 | PPL = 7.1814 +/- 0.25227 |
Qwen3.8-27B-Uncensored-Q5_K_M.gguf | 19.5 GB | 是 | PPL = 7.1573 +/- 0.25055 |
Qwen3.8-27B-Uncensored-Q6_K.gguf | 22.4 GB | 是 | PPL = 7.1689 +/- 0.25149 |
Qwen3.8-27B-Uncensored-Q8_0.gguf | 29.0 GB | 是 | PPL = 7.1764 +/- 0.25195 |
Qwen3.8-27B-Uncensored-draft-Q8_0.gguf | 3.2 GB | - | - |
Qwen3.8-27B-Uncensored-noMTP-IQ2_M.gguf | 10.2 GB | 否 | PPL = 7.8581 +/- 0.27481 |
Qwen3.8-27B-Uncensored-noMTP-IQ4_XS.gguf | 15.1 GB | 否 | - |
Qwen3.8-27B-Uncensored-noMTP-Q4_K_M.gguf | 16.5 GB | 否 | - |
Qwen3.8-27B-Uncensored-noMTP-Q5_K_M.gguf | 19.2 GB | 否 | - |
Qwen3.8-27B-Uncensored-noMTP-Q6_K.gguf | 22.1 GB | 否 | - |
Qwen3.8-27B-Uncensored-noMTP-Q8_0.gguf | 28.6 GB | 否 | - |
Qwen3.8-27B-Uncensored-imatrix.dat | 13.6 MB | - | - |
以下数据均在同一构建版本上、同一会话中、以相同的 f16 基线为参照进行测量,因此各行数据之间具有可比性。
| 文件 | PPL(wikitext-2) | 相对 f16 的差异 |
|---|---|---|
Qwen3.8-27B-Uncensored-f16.gguf(基线,未发布) | 7.1557 +/- 0.25104 | |
Qwen3.8-27B-Uncensored-Q5_K_M.gguf | 7.1573 +/- 0.25055 | +0.0016 |
Qwen3.8-27B-Uncensored-IQ4_XS.gguf | 7.1583 +/- 0.25019 | +0.0026 |
Qwen3.8-27B-Uncensored-Q6_K.gguf | 7.1689 +/- 0.25149 | +0.0132 |
Qwen3.8-27B-Uncensored-Q8_0.gguf | 7.1764 +/- 0.25195 | +0.0207 |
Qwen3.8-27B-Uncensored-Q4_K_M.gguf | 7.1814 +/- 0.25227 | +0.0257 |
Qwen3.8-27B-Uncensored-IQ2_M.gguf | 7.8581 +/- 0.27481 | +0.7024 |
在解读排序之前,请务必先阅读误差范围。 除 IQ2_M 之外的所有行都落在约 0.026 的区间内,而标准误差约为 0.25,因此这些量化版本之间、以及它们与 f16 之间均无法有效区分,表中的排序只是噪声。不要据此认为 Q8_0 比 Q5_K_M 更差。本次测量唯一能够明确分辨的差异是 IQ2_M,它比基线高出约 2.8 个标准误差。
noMTP-* 系列未在表中列出,因为它们的测量结果与对应的融合版本完全一致。MTP 模块在正常前向传播过程中不参与计算,这一点已在本次测试中得到验证:融合版与 noMTP 版的 IQ2_M 均返回 7.8581,融合版与 noMTP 版的 f16 均返回 7.1557。
测试语料为 Salesforce/wikitext 数据集中的 wikitext-2-raw-v1 的 test-00000-of-00001.parquet 文件,取 text 列并以 \n 连接。该文件与用于生成重要性矩阵的语料相同,详细信息见下文。
llama-perplexity -m Qwen3.8-27B-Uncensored-IQ2_M.gguf \
-f calibration.txt -ngl 99 --chunks 20困惑度只能检测出严重的量化损伤,除此之外别无他用。它无法衡量推理能力、代码能力、多语言能力或拒答行为。请参阅下文“需要注意的注意事项”。
Qwen3.8-27B-Uncensored-imatrix.dat 是本仓库中所有量化版本所使用的重要性矩阵。全部十二个 IQ2_M、IQ4_XS、Q4_K_M、Q5_K_M、Q6_K 和 Q8_0 文件,无论是融合版还是 noMTP 版,都在各自的元数据中记录了该矩阵。独立的 draft-Q8_0 头与 vision-f16 投射器则未包含该矩阵,因为二者并非基于此矩阵构建。
发布此矩阵的目的是为了让本仓库中的文件可以被复现,同时让你能够构建本仓库未提供的量化版本。
| 语料库 | Salesforce/wikitext,wikitext-2-raw-v1,test-00000-of-00001.parquet |
| 组装方式 | text 列以 \n 连接,共 1,292,013 字节,md5 为 d998c24b049cf7c009dbf2672da70b5a |
| 分块 | 200 x 512 个 token |
| 计算来源 | 基于 f16 GGUF,而非中间量化版本 |
| 构建工具 | llama.cpp a94d563ed |
使用前需要了解两点:
.dat,它实际上是 GGUF 格式(general.type = imatrix)。不支持 GGUF 格式 imatrix 的旧版 llama.cpp 将无法加载该文件。blk.64(即 MTP 块)的任何条目。llama-imatrix 在正常前向传播过程中不会激活草稿头,因此不会为其收集激活值。这一点在下方会有所涉及。来源可验证而非仅凭声明:使用此文件将 f16 重新量化为 Q4_K_M,可以逐字节复现已发布的 Qwen3.8-27B-Uncensored-Q4_K_M.gguf,全部 866 个张量完全一致。
本仓库的下限是 IQ2_M,大小为 10.6 GB。如果你需要更小的模型,或想使用未发布的量化类型,可以使用上述 imatrix 自行构建。
你需要 f16 GGUF 文件,但该文件因体积达 54 GB 未在此发布。你可以从公开的 bf16 权重自行构建:
hf download JonathanColetti/Qwen3.8-27B-Uncensored --local-dir Qwen3.8-27B-Uncensored
python convert_hf_to_gguf.py Qwen3.8-27B-Uncensored \
--outfile Qwen3.8-27B-Uncensored-f16.gguf --outtype f16对于noMTP变体,请在该命令中添加--no-mtp参数。MTP分片已整合进bf16仓库中,因此无需先进行任何恢复操作。
MTP块必须固定不变。 由于imatrix不包含blk.64条目,且IQ3_XXS、IQ2_XXS、IQ2_S和IQ2_M需要基于张量的重要性数据,因此在不固定的情况下进行融合低位构建不仅会降低草稿头的性能,llama-quantize甚至会直接拒绝运行。将blk.64固定为q8_0可绕过此要求,同时保持草稿头完整无损:
llama-quantize \
--imatrix Qwen3.8-27B-Uncensored-imatrix.dat \
--tensor-type 'blk\.64\.=q8_0' \
--token-embedding-type q4_K \
Qwen3.8-27B-Uncensored-f16.gguf Qwen3.8-27B-Uncensored-IQ2_XXS.gguf IQ2_XXS--token-embedding-type q4_K 是该模型上最大的规模调节杆。llama.cpp 会在所有 IQ2/IQ1 格式类型上强制将
token_embd 提升为 Q5_K,而在 248320 词表大小下,这大约占参数的 8% 到 10%。
切勿低于 q4_K。对于 noMTP-* 构建,请省略 --tensor-type 固定参数,因为
没有可供固定的块。
之后请验证该块是否保留,而不是想当然地认为它已经保留:
python quantize.py inspect Qwen3.8-27B-Uncensored-IQ2_XXS.gguf # expect 65/65, has_mtp: true2-bit 警告。 IQ2_M 是本仓库中退化最严重的文件,任何基于它构建的内容只会更糟。这种损失预计会最重地落在该模型的主要用途上。旧拒绝边界附近的行为已经是其最不稳定的属性(见“重要注意事项”),而 2-bit 量化恰恰加剧了这一问题。困惑度会告诉你模型并未损坏,但它无法告诉你拒绝边界是否仍保持 Q6_K 时的表现,而本仓库中没有任何指标在 2-bit 下度量这一点。
第三方发布了一系列基于该模型的混合精度变体:
并非由本仓库制作或与其相关。 该版本并非由我构建,我未验证其文件或公布的数据,且其中引用的任何指标并非在本测试框架上测量,因此与本文档中的困惑度数据不具可比性。提供此链接是因为人们常询问我未发布的尺寸规格,而非作为推荐。
llama-server -m Qwen3.8-27B-Uncensored-Q4_K_M.gguf \
--spec-type draft-mtp --spec-draft-n-max 2 \
-ngl 99 -c 8192目标加显式草稿:
llama-server -m Qwen3.8-27B-Uncensored-noMTP-Q4_K_M.gguf \
--spec-type draft-mtp \
--model-draft Qwen3.8-27B-Uncensored-draft-Q8_0.gguf \
-ngl 99 -c 8192--spec-draft-n-max 默认值为 3。吞吐量取决于您的硬件配置,建议进行参数扫描——不同草稿长度的测量结果参见
qwen3.8-spec-decode-bench。
每个产物在量化后均经过 MTP 张量存活性检查,而非仅依据转换标志进行推断:
python quantize.py inspect Qwen3.8-27B-Uncensored-Q4_K_M.gguf此报告列出了元数据键、声明的 block_count 及实际存在的块。若融合文件的实际块数未超过声明块数,则说明其未保留 MTP 块。
| 文件 | MTP | 块数 |
|---|---|---|
Qwen3.8-27B-Uncensored-f16.gguf | 是 | 65/65 |
Qwen3.8-27B-Uncensored-noMTP-f16.gguf | 否 | 64/64 |
Qwen3.8-27B-Uncensored-IQ2_M.gguf | 是 | 65/65 |
Qwen3.8-27B-Uncensored-noMTP-IQ2_M.gguf | 否 | 64/64 |
Qwen3.8-27B-Uncensored-IQ4_XS.gguf | 是 | 65/65 |
Qwen3.8-27B-Uncensored-noMTP-IQ4_XS.gguf | 否 | 64/64 |
Qwen3.8-27B-Uncensored-Q4_K_M.gguf | 是 | 65/65 |
Qwen3.8-27B-Uncensored-noMTP-Q4_K_M.gguf | 否 | 64/64 |
Qwen3.8-27B-Uncensored-Q5_K_M.gguf | 是 | 65/65 |
Qwen3.8-27B-Uncensored-noMTP-Q5_K_M.gguf | 否 | 64/64 |
Qwen3.8-27B-Uncensored-Q6_K.gguf | 是 | 65/65 |
Qwen3.8-27B-Uncensored-noMTP-Q6_K.gguf | 否 | 64/64 |
Qwen3.8-27B-Uncensored-Q8_0.gguf | 是 | 65/65 |
Qwen3.8-27B-Uncensored-noMTP-Q8_0.gguf | 否 | 64/64 |
在与未修改的基础模型完全相同的设置下进行基准测试。关键在于差值(Δ):它单独反映了权重修改所带来的影响。
| 任务 | 基础模型 | Uncensored | Δ |
|---|---|---|---|
| MMLU | 83.4 | 83.3 | -0.2 |
| ARC-Challenge | 58.9 | 57.7 | -1.2 |
| HellaSwag | 82.8 | 82.9 | +0.1 |
| Winogrande | 76.1 | 75.3 | -0.8 |
| 平均 | -0.5 |
使用 lm-evaluation-harness 进行 0-shot 测试,bf16 精度,两个模型在同一会话中评分。每个差值都在报告的标准误差范围内或接近该范围(MMLU ± 0.30,ARC ± 1.44,HellaSwag ± 0.38,Winogrande ± 1.21),因此没有一项能明确区分于运行间的随机噪声。
这些是 0-shot 结果,与 Qwen 官方发布的分数不可比,后者使用了 few-shot 提示。但两者直接可比,这正是关键所在。另请注意,对于具有如此 MMLU 分数的模型而言,ARC-Challenge 分数偏低——基础模型在相同设置下也仅得 58.9 分,因此这属于推理调优模型的格式敏感性,而非消融(abliteration)造成的损伤。
基准测试未涵盖的内容:没有生成式评估(GSM8K、HumanEval),没有数学或代码测试,没有多语言测试,且测试工具仅加载了文本栈——此处没有任何指标衡量视觉塔或 MTP 投机解码。
| 测量项 | 基础模型 | 本模型 |
|---|---|---|
| 拒答率(100 个保留的有害提示) | 98/100 | 12/100 |
| 与基础模型的 KL 散度(首 token) | 0 | 0.1191 |
搜索过程:200 次 Heretic 试验,23 个非支配点。发布的模型为标记行。
| 拒答数 | KL 散度 | |
|---|---|---|
| 12/100 | 0.1191 | ← 已发布 |
| 13/100 | 0.1052 | |
| 19/100 | 0.0722 | |
| 23/100 | 0.0635 | |
| 26/100 | 0.0507 | |
| 27/100 | 0.0410 | |
| 35/100 | 0.0406 | |
| 36/100 | 0.0387 | |
| 41/100 | 0.0366 | |
| 44/100 | 0.0352 | |
| 46/100 | 0.0334 | |
| 48/100 | 0.0331 | |
| 51/100 | 0.0321 | |
| 52/100 | 0.0294 | |
| 60/100 | 0.0290 | |
| 76/100 | 0.0280 | |
| 77/100 | 0.0247 | |
| 83/100 | 0.0204 | |
| 86/100 | 0.0193 | |
| 91/100 | 0.0170 | |
| 96/100 | 0.0146 | |
| 97/100 | 0.0044 | |
| 98/100 | 0.0004 |
拒答率(Refusal rate) 是指在
mlabonne/harmful_behaviors
(测试集)中 100 条留存提示词(prompt)中,模型拒绝回答的次数——这些是明确有害的请求,而非良性请求。因此,这个数字并非过度拒答率:它并不反映模型拒绝合法任务的情况,而是衡量原始安全行为在应对有害请求时保留了多少。
KL 散度(KL divergence) 是基于未修改的基础模型,对首个生成 token 的分布进行测量得到的。它是优化器用来衡量“我们对模型造成了多大损伤”的代理指标。数值越低,说明越接近基础模型。但这是一个代理指标,而非能力评估——低 KL 散度并不能证明推理或编码能力得以保全,本页面中的任何内容也无法做出此类保证。
二者之间存在权衡取舍。Heretic 在这两者之间搜索帕累托前沿(Pareto front);所发布的结果只是该前沿上的一个选择,而非全局最优解。
<think> 代码块,因此评估过程会显式关闭该代码块,以对回答内容而非推理过程进行评分。若启用思考模式,拒答率可能会有所变化,可能更高也可能更低。MTP 推测解码(speculative decoding)自 llama.cpp PR #22673 起引入。早于该版本的构建产物可以加载这些文件,但会静默忽略 MTP 张量。
本地推理。不建议在未配置自身安全层的情况下向第三方部署。
Apache 2.0,继承自Qwen/Qwen3.8-27B。基础模型的许可证及可接受使用政策仍适用于您对本衍生模型的使用。
| 提示类型 | 推测类型 | n_max | 每秒Token数 | 相对基线 |
|---|---|---|---|---|
| 散文 | 无 | - | 74.8 | 1.00x |
| 散文 | draft-mtp | 1 | 89.0 | 1.19x |
| 散文 | draft-mtp | 2 | 85.7 | 1.15x |
| 散文 | draft-mtp | 3 | 72.0 | 0.96x |
| 散文 | draft-mtp | 4 | 71.1 | 0.95x |
| 散文 | draft-mtp | 5 | 62.9 | 0.84x |
| 散文 | draft-mtp | 6 | 53.8 | 0.72x |
| 散文 | draft-mtp | 7 | 49.9 | 0.67x |
| 散文 | draft-mtp | 8 | 59.9 | 0.80x |
| 代码 | 无 | - | 74.7 | 1.00x |
| 代码 | draft-mtp | 1 | 95.4 | 1.28x |
| 代码 | draft-mtp | 2 | 92.9 | 1.24x |
| 代码 | draft-mtp | 3 | 82.6 | 1.11x |
| 代码 | draft-mtp | 4 | 74.9 | 1.00x |
| 代码 | draft-mtp | 5 | 67.4 | 0.90x |
| 代码 | draft-mtp | 6 | 59.4 | 0.80x |
| 代码 | draft-mtp | 7 | 55.6 | 0.74x |
| 代码 | draft-mtp | 8 | 70.9 | 0.95x |
| 对话 | 无 | - | 74.7 | 1.00x |
| 对话 | draft-mtp | 1 | 90.6 | 1.21x |
| 对话 | draft-mtp | 2 | 84.2 | 1.13x |
| 对话 | draft-mtp | 3 | 76.1 | 1.02x |
| 对话 | draft-mtp | 4 | 70.4 | 0.94x |
| 对话 | draft-mtp | 5 | 64.3 | 0.86x |
| 对话 | draft-mtp | 6 | 55.2 | 0.74x |
| 对话 | draft-mtp | 7 | 50.2 | 0.67x |
| 对话 | draft-mtp | 8 | 54.1 | 0.72x |
在此构建版本上实测:NVIDIA H200 NVL,生成256个Token,取3次重复的中位数,n_max 在1到3之间扫描。上表数据可追溯至原始发布版本,其硬件信息未记录,因此请比较倍率而非绝对速率。
| 提示类型 | 推测类型 | n_max | 每秒Token数 | 相对基线 |
|---|---|---|---|---|
| 散文 | 无 | - | 75.4 | 1.00x |
| 散文 | draft-mtp | 1 | 85.2 | 1.13x |
| 散文 | draft-mtp | 2 | 83.2 | 1.10x |
| 散文 | draft-mtp | 3 | 77.4 | 1.03x |
| 代码 | 无 | - | 75.5 | 1.00x |
| 代码 | draft-mtp | 1 | 95.8 | 1.27x |
| 代码 | draft-mtp | 2 | 99.8 | 1.32x |
| 代码 | draft-mtp | 3 | 96.0 | 1.27x |
| 对话 | 无 | - | 75.3 | 1.00x |
| 对话 | draft-mtp | 1 | 87.4 | 1.16x |
| 对话 | draft-mtp | 2 | 81.3 | 1.08x |
| 对话 | draft-mtp | 3 | 78.4 | 1.04x |
MTP头在2-bit量化下仍能正常工作,因为它被固定为q8_0精度,而非与其余部分一同量化,因此推测解码在此场景下依然有效。
将noMTP-IQ2_M与已发布的draft-Q8_0搭配使用,在散文提示下、n_max为2时可达97.7 Token/秒,即1.30倍加速,在该提示上优于融合文件。原因在于融合版MTP头与主模型共享低位宽的token_embd(q4_K)和output(Q5_K)张量,而独立草稿模型则自带Q8_0副本。分离式方案需要13.3 GB权重,而融合文件仅需10.6 GB,因此仅在显存充裕时分离式才是更优选择。