桃子桃子快讯
返回首页
工具

Llama.cpp 出现 DSpark PC Tree 推测解码分叉

社区开发者基于论文为 llama.cpp 实现 DSpark PC Tree 推测解码,Qwen3 上实测最高约 1.6…

2026.08.22 · 周六4 分钟阅读

一位 Reddit 用户 u/RapidRaid 近日发布了 llama.cpp 的一个非官方分叉,将论文中提出的 DSpark PC Tree(Parent-Conditioned Drafting Tree,父节点条件草稿树)推测解码思路落地到本地推理引擎中,并贴出了在 Qwen3 系列模型上的初步基准数据。仓库与相关 issue 已公开,但尚未合并到官方 ggml-org/llama.cpp 主线,作者也表示这是首版实现,没有收到第三方反馈。

方案简介

DSpark PC Tree 在传统线性 DSpark 草稿树的基础上引入「父节点条件」机制,使草稿模型在生成后续 token 时可以参考更早的上下文分支。仓库提供 --spec-type draft-dspark --spec-dspark-pctree --spec-dspark-pctree-k K --spec-dspark-pctree-n N 等启动参数,方便用户复现。完整运行示例已贴在原帖中,可直接配合 Qwen3 BF16 权重在 RTX 5090 等 SM120 GPU 上调用。

GPU 基准结果

作者使用 llama-bench 在 RTX 5090(SM120)上对 Qwen3 进行 combined 跑分,512 输出 token、8K 上下文、温度 0、BF16 目标与草稿模型,关键数据如下:

  • Plain(基线):94.27 tok/s,接受率不适用;
  • DSpark n2:138.83 tok/s,约 1.47 倍,接受率 55.66%;
  • DSpark n3:155.64 tok/s,约 1.65 倍,接受率 47.19%;
  • PC Tree k2/n8:152.29 tok/s,约 1.62 倍,接受率 58.83%;
  • PC Tree k3/n16:159.00 tok/s,约 1.69 倍,接受率 67.87%;
  • PC Tree k4/n22:157.99 tok/s,约 1.68 倍,接受率 72.16%。

在 SPEED-Bench 全部 11 个类别、每类 4 个样本、共 44 次跑测中,k3/n16 配置在 9 个类别上击败线性 DSpark,其中摘要任务增益最大(+6.56%),仅 RAG(-0.57%)和多语言(-1.35%)略弱。k4/n22 接受率更高但草稿量过大,未能换来更高的吞吐。

CPU 结果与局限

CPU 场景下使用 12 线程、3 次重复的 llama-bench:BF16 模型 pp512 为 76.59 ± 0.33 tok/s、tg128 为 3.82 ± 0.02 tok/s;Q8_0 模型 pp512 为 76.07 ± 0.79 tok/s、tg128 为 7.12 ± 0.01 tok/s。作者也尝试了 Qwen3.8 27B Q4 量化版本,在 k2–k4 配置下反而更慢,提示该方案对模型规模与量化等级较为敏感。

现状与注意事项

信源