开源llama.cpp Releases·原文 2026年10月7日

llama.cpp b11474加入GLM5-Next MTP支持并优化草稿开销

该版本为GLM5-Next构建多token预测(MTP)图,并让仅含NextN层或仅含主干的分体GGUF可分别加载为草稿模型。

AI解读:实现将NextN块描述为graph_mtp:通过eh_proj嵌入enorm(tok)+hnorm(h),运行一个普通DSA层和共享lm_head,并复用主干的builder。

优化方面,作者称无输出行的NextN前向不再执行查询路径、索引器选择、注意力主体、FFN和LM head;4 token追赶的kernel耗时从 6.9 ms降至 0.33 ms,后改用裁剪模式后为 2.9 ms。

提交记录称贪心输出哈希和草稿接受率未发生变化,该结果来自项目自身的改动说明。

还修复了NextN提取契约与共享尾部回滚问题:无掩码提取存在时不再裁剪、掩码提取按输出id收集隐藏行、拒绝会移动其他序列尾部单元的部分回滚。

现在可加载仅含MTP层或仅含主干的GGUF文件,使分体MTP GGUF能作为草稿模型使用。

llama.cpp发布版本b11474,新增GLM5-Next的多token预测(MTP)支持,并针对MTP前向做了性能优化与若干修复。相关改动见PR #29928,作者署名为Georgi Gerganov、Pascal等,提交信息注明Claude协助。

GLM5-Next MTP图的实现方式

提交说明称,GLM5-Next的多token预测头被构建为graph_mtp:NextN块通过eh_proj嵌入enorm(tok)+hnorm(h),运行一个普通DSA层和共享lm_head,并通过no_build标签构造函数复用主干的builder。

llama_memory_recurrent现在允许在上下文不含循环层时进行部分seq_rm,提交说明称这是MTP草稿上下文所需要的行为。

  • NextN块结构:enorm(tok)+hnorm(h) → eh_proj → 一个普通DSA层 → 共享lm_head
  • 复用主干builder的方式:no_build标签构造函数
  • llama_memory_recurrent放宽部分seq_rm的适用条件

无输出行前向的优化与实测数字

提交说明称,无输出行的NextN前向(MTP追赶和草稿上下文预填充)只需通过缓存写入持久化,因此无头图保留MLA latent、indexer key|gate和pooled-key写入,去掉查询路径、索引器选择、注意力主体、FFN和LM head。

作者给出的实测数字:4 token追赶的kernel耗时从 6.9 ms降至 0.33 ms;随后改用其他MTP图使用的裁剪模式后,该数字为 2.9 ms。提交称贪心输出哈希和草稿接受率未改变。这些数值来自提交说明,并非独立评测。

  • 初始无头裁剪:4 token追赶 6.9 ms → 0.33 ms
  • 改用裁剪模式后:4 token追赶 2.9 ms
  • 作者称贪心输出哈希与草稿接受率不变

提取契约与回滚修复

提交说明列出三项来自架构审查的修复。无头图裁剪现在额外要求没有活动的无掩码nextn提取,因为该模式无论logits标志如何都会读取n_tokens个隐藏行。

掩码提取会发布按输出id收集的隐藏行,使输出标志不是前缀的批次能导出正确的行。部分循环回滚若其尾部单元与其他序列共享,现在会被拒绝,而不是静默移动该序列的尾部。

  • 无掩码提取活动时不再裁剪无头图
  • 掩码提取按输出id发布隐藏行
  • 共享尾部单元的部分循环回滚被拒绝

分体GGUF的加载

提交说明称,当文件只包含NextN层时,主干张量现在可选;当文件只包含主干时,NextN张量可选。这样分体的MTP GGUF可以作为草稿模型加载。

  • 仅含NextN层的GGUF:主干张量可选
  • 仅含主干的GGUF:NextN张量可选
  • 分体MTP GGUF可作为草稿模型使用

信息来源

llama.cpp Releases原始来源

更多

新闻专题
外观