基准测试:用于 llama.cpp 的 MindControl

Reddit r/LocalLLaMA 工具

摘要

针对 MindControl(一种用于 llama.cpp 的采样器级引导推理预算)的基准测试结果显示出,多阶段信号传递可以在不损失准确率的情况下减少 token 消耗,并且在较简单任务上有时还能提升准确率。

我最近分享了最初的 MindControl 概念验证(以及 github 上的代码)——用于 llama.cpp 的采样器级引导推理预算,通过让模型产生关于其自身思考预算的自我感知陈述来引导模型,而不是硬性截断。我们收到了一些很好的反馈,最常见的请求(合情合理)大致是:“想法不错,但实现可能会导致性能下降,而且需要基准测试。”我很高兴现在分享基准测试结果——HumanEval+ 和 LiveCodeBench,涵盖一系列 token 预算,每种预算四种配置:朴素型(llama.cpp 现有的立即截断——完全没有信号传递,这正是我们试图改进的机制)、仅宽限期硬停止、软警告 + 硬停止,以及完整的引入 + 软 + 硬机制。全部基于 Qwen3.6-27B,Q4_K_XL (MTP),并且结果在没有投机解码的情况下也保持一致(考虑到实现方式,这不足为奇)。结果:token 消耗持续下降,并且在更复杂的任务上效果更加明显。在 LiveCodeBench 上,排序(朴素型 > 仅硬限制 > 软+硬 > 引入+软+硬)在每个测试预算下都成立,没有例外。在最高端,引入+软+硬所用 token 不到朴素型的一半,而得分基本相同。在 HumanEval+ 上,大多数配置都达到或直接超越了无约束基线——整个测试中的最高分(95.7%)来自引导最强、预算约束最严格的设置,所用 token 约为基线的一半。我的猜测是,这一特定结果是因为推理预算阻止了模型在简单问题上过度思考,或陷入退化推理循环。有几个人提出了具体的担忧,我想直接回应一下,因为这些问题提得很好,而且我一开始就预计至少在某些方面会被证明是错的:“这些 token 序列是模型从未训练过的,实现方式使其偏离分布,尤其是在使用自定义系统提示或非标准空白符时。”这是一个我们未能完全预料到的合理担忧,确实需要进行一些基准测试。我们发现:在完整测试集上没有总体准确率损失。但在最难的问题子集上确实存在真实且一致的代价——无论使用哪种截断风格(包括朴素型),准确率都明显低于无约束基线。因此,我不认为这完全证明了偏离分布担忧的合理性,但也不认为它是主导效应。看起来更像是复杂且推理密集型的问题确实需要更多思考,而任何预算方案(无论是我的还是朴素型的)都无法绕过这一点。“干脆检测循环并从零开始重新推理,这样能让模型保持分布内。”这是个好主意,但目标不同。这个实现的目的既是为了保持输出准确率,也是减少 token 消耗。直觉告诉我这两者并不互斥,可以在一般情况下使用预算感知引导,并将循环检测 + 重启作为真正退化情况的备选方案。这可能是下一步要尝试的方向。“无法让软/硬引导胜过简单的截断预算。”我们的数据与该体验不符。在这两个基准测试上,每增加一个引导阶段都会减少 token,而没有相应的总体准确率损失,而且在几种情况下,引导最多的配置直接超越了朴素型。我无法评论导致相反结论的确切设置,但如果有用的话,很乐意对比笔记。包含所有表格和图表的完整报告现在在仓库 README 中:github.com/laurencehardman/llama-mindcontrol 这是对单个模型进行的一轮基准测试——所以该技术还没有被完全证明和盖棺定论——但结果无疑很有前景。
查看原文

相似文章

@polynoamial: https://x.com/polynoamial/status/2064210146558136827

X AI KOLs Following

本文认为,LLM基准测试性能越来越依赖于测试时的计算量,而当前的评估方法在控制推理预算时无法捕捉到能力的提升。它主张绘制性能与token数、成本或时间的关系图,并讨论了对安全评估的影响。