--- language: - en - zh base_model: - Qwen/Qwen3.5-9B - agentscope-ai/QwenPaw-Flash-9B tags: - heretic - abliteration - uncensored - mtp - speculative-decoding - qwen3.5 - gguf - benchlocal - benchmark - agent - tool-call license: apache-2.0 ---
📖 English | 中文 style="color: #007aff; text-decoration: none;">📖 中文文档
QwenPaw-Flash-9B-heretic 非 MTP 版本: QwenPaw-Flash-9B-heretic-GGUF
🏆 BenchLocal 总分: 4035/5000 (80.7%) — MTP 投机解码已注入
无审查 · 已消融 · Agent 优化 · 1.7-4.1× 加速
QwenPaw-Flash-9B 的无审查版本,使用 Heretic v1.3.0 消融处理,并从原始 Qwen3.5-9B 基座模型注入了 MTP(Multi-Token Prediction)头权重。
通过重建在 QwenPaw 微调过程中被剥离的 MTP 投机解码头,本模型在真实 Agent 基准测试中实现了最高 4.1× 推理加速,同时保持或提升了准确率。
测试环境: NVIDIA RTX 5070 Ti (16GB) · llama.cpp (turboquant build, --spec-type draft-mtp) · Q6_K quant
测试框架: BenchLocal — 本地模型 Agent 评估套件
测试方法:每个场景运行一次,无重试,无二次尝试
| 基准测试 | 得分 | 准确率 | 结果 | 耗时 | 对比无 MTP |
|---|---|---|---|---|---|
| ToolCall-15 🛠️ | 1500/1500 | 100% | 15✅ 0⚠️ 0❌ | 0.65min | 1.4× faster |
| HermesAgent-20 🤖 | 1505/2000 | 75.3% | 12✅ 1⚠️ 7❌ | 5.3min | 1.17× faster |
| BugFind-15 🐛 | 1030/1500 | 68.7% | 9✅ 2⚠️ 4❌ | 1.8min | 4.1× faster |
| Total | 4035/5000 | 80.7% | 36✅ 3⚠️ 11❌ | 7.8min | 1.9× faster |
| 基准测试 | 无 MTP | 有 MTP | Δ Score | Δ Speed |
|---|---|---|---|---|
| ToolCall-15 🛠️ | 1400/1500 (93.3%) | 1500/1500 (100%) | +100 pts | 1.4× |
| HermesAgent-20 🤖 | 1545/2000 (77.2%) | 1505/2000 (75.3%) | −40 pts | 1.17× |
| BugFind-15 🐛 | 928/1500 (61.9%) | 1030/1500 (68.7%) | +102 pts | 4.1× |
| Total | 3873/5000 (77.5%) | 4035/5000 (80.7%) | +162 pts | 1.9× |
| 总耗时 | 14.7 min | 7.8 min | — | 1.9× |
MTP 投机解码消除了唯一的失败项(TC-05:相对日期/时间解析,之前得分为 0)。全部 15 个场景现在完美通过。
| 编号 | 结果 | 场景 |
|---|---|---|
| TC-01–TC-04 | ✅ | 简单 / 多参数 / 嵌套 / 类型转换 |
| TC-05 | ✅ | 相对日期/时间解析 ← 已被 MTP 修复 |
| TC-06–TC-15 | ✅ | 所有剩余场景 |
MTP 解码在长链推理场景中引入了轻微噪声(约 40 分下降),可能是因为 draft token 偶尔在多步规划任务中偏离生成路径。不过,速度提升(1.17×)以及下降幅度在噪声范围内(Qwopus MTP 单次运行方差为 255 分)使得这是一个可接受的权衡。
显著提升 — MTP 更快的解码有效防止了超时失败(BF-12 之前触发 300 秒超时,现在按时完成),draft 上下文有助于保持调试焦点。
| 编号 | 无 MTP | 有 MTP | Δ |
|---|---|---|---|
| BF-01 | ✅ 100 | ✅ 100 | — |
| BF-02 | ✅ 88 | ✅ 100 | +12 |
| BF-03 | ❌ 0 | ❌ 0 | — |
| BF-04 | ✅ 100 | ✅ 100 | — |
| BF-05 | ❌ 40 | ⚠️ 70 | +30 |
| BF-06 | ❌ 0 | ❌ 0 | — |
| BF-07 | ✅ 100 | ✅ 100 | — |
| BF-08 | ✅ 100 | ✅ 100 | — |
| BF-09 | ✅ 100 | ✅ 100 | — |
| BF-10 | ❌ 0 | ❌ 0 | — |
| BF-11 | ⚠️ 60 | ✅ 100 | +40 |
| BF-12 | ❌ 0 (timeout) | ✅ 100 | +100 |
| BF-13 | ✅ 100 | ✅ 100 | — |
| BF-14 | ⚠️ 70 | ⚠️ 60 | −10 |
| BF-15 | ⚠️ 70 | ⚠️ 60 | −10 |
Multi-Token Prediction(MTP)是一种投机解码技术,通过一个小型「draft 头」并行预测多个未来 token。主模型随后在单次前向传播中验证这些预测,接受正确的预测以实现 2-4× 的实际加速。
原始 Qwen3.5-9B 基座模型在架构配置中附带了一个 4 层 MTP 头(约 243M 参数)。在 QwenPaw 微调过程中,MTP 头权重被剥离(仅保留了配置占位符 mtp_num_hidden_layers: 1 ,但 safetensors 中没有实际张量)。
恢复过程:
注入参数总量:243.3M(主模型的 2.7%)
MTP 接受率 (draft-n-max=2):约 50%(所有基准测试中 1083 次接受 / 2166 次生成)
MTP 头是一个轻量级 4 层 MLP 解码器,将主模型的最后隐藏状态映射到未来 token 的 logits。它完全位于投机解码空间中 — 主模型权重不变,因此无需微调或重新训练。MTP 头只需以兼容的维度存在,llama.cpp 的 --spec-type draft-mtp 即可激活。
| 模型 | Total | ToolCall-15 | HermesAgent-20 | BugFind-15 | 总耗时 |
|---|---|---|---|---|---|
| 🐾 QwenPaw MTP 9B | 4035 🥇 | 100% 🥇 | 75.3% | 68.7% | 7.8min 🥇 |
| 🐾 QwenPaw 9B(无 MTP) | 3873 | 93.3% | 77.2% 🥇 | 61.9% | 14.7min |
| 🧠 Qwopus 9B MTP | 3935 | 93.3% | 67.3% ⚠️ | 79.0% 🥇 | 21.3min ⚠️ |
| 🧠 Qwen 35B 思考模式开 | 1445 (HA only) | — | 72.3% | — | 7.0min |
| ⚡ Qwen 35B 思考模式关 | 1370 (HA only) | — | 68.5% | — | 5.1min |
| 🔮 Gemma 4 26B | 1405 (HA only) | — | 70.3% | — | 18.6min |
QwenPaw MTP 胜出2/3 基准测试 + 总分 + 总耗时。唯一输掉的基准是 BugFind-15(输给 Qwopus MTP),但 Qwopus 存在严重不稳定性(HermesAgent-20 方差 255 分,最差情况 6.2 分钟超时)。
direction_index = 21.13 attn.o_proj.max_weight = 1.42 attn.o_proj.max_weight_position = 21.72 attn.o_proj.min_weight = 1.11 attn.o_proj.min_weight_distance = 18.14 mlp.down_proj.max_weight = 1.48 mlp.down_proj.max_weight_position = 21.23 mlp.down_proj.min_weight = 1.47 mlp.down_proj.min_weight_distance = 17.47
--spec-type draft-mtp 配合 --spec-draft-n-max 2| File | Size | Notes |
|---|---|---|
QwenPaw-Flash-9B-heretic-MTP-Q8_0.gguf |
~9.2GB | 高质量,近乎无损 |
QwenPaw-Flash-9B-heretic-MTP-Q6_K.gguf |
~7.1GB | ✅ 推荐,最佳性价比 |
QwenPaw-Flash-9B-heretic-MTP-Q4_K_M.gguf |
~5.4GB | 紧凑 |
mmproj-BF16 |
~880MB | 视觉编码器(多模态)— 与非 MTP 版本相同 |
--spec-type draft-mtp
--spec-draft-n-max 2
# Start server 配合 MTP enabled llama-server -m QwenPaw-Flash-9B-heretic-MTP-Q6_K.gguf \ -ngl 99 -fa on -c 8192 \ --spec-type draft-mtp --spec-draft-n-max 2 \ --host 0.0.0.0 --port 8088 # Or 配合 CLI llama-cli -m QwenPaw-Flash-9B-heretic-MTP-Q6_K.gguf \ -ngl 99 -fa on -c 8192 \ --spec-type draft-mtp --spec-draft-n-max 2 \ -p "Write a Python script to..."
# 模型也可作为普通 GGUF 使用 — 只需省略投机解码参数 llama-server -m QwenPaw-Flash-9B-heretic-MTP-Q6_K.gguf \ -ngl 99 -fa on -c 8192 \ --host 0.0.0.0 --port 8088
直接加载 GGUF 文件。如需 MTP 投机解码,LM Studio 需要支持 --spec-type — 如果不支持,模型将作为标准 9B 模型运行。