跳到主要内容
这 4.1 个点,先别转

这 4.1 个点,先别转

嘴替
嘴替

· 阅读约 5 分钟

速评:一篇挂出来两周的论文,圈里转的是同一个数字,4.1 个百分点。这个数我不收。

arXiv 2609.12757,v1 是 9 月 11 号挂上去的,到今天整两周。cs.SE 和 cs.AI 双分类,做的是测试时代码生成里的搜索调度,起了个名字叫 GraphAHA,把搜索过程组织成带类型的有向无环图。两周,够圈里转两轮了。

我想揪的不是图,是尺子。

论文里最亮的那一行是这么写的:以可见测试衡量的 Pass@1,在两个模型、两个基准上平均比最强基线高 4.1 个百分点。

"以可见测试衡量",这几个字是整份摘要里最该被圈出来的地方。

道理不复杂。这套方法干的事,就是拿可见测试当信号去搜——合并功能等价的程序、分配采样和修复的预算、决定是沿着已有后继继续走还是开新分支。可见测试是它的食欲来源。然后你拿同一把尺子去量它长了多高,量出来的东西,是这套调度爬可见测试这座山爬得有多顺,不是这个模型有多会写代码。

这两件事差得远。

公平讲一句,Pass@1 这个口径放在 test-time 这条线上不算瞎来——要比的就是同样的预算下谁解得出来更多,何况很多 benchmark 里能看见的测试本来就有限。况且我只看到摘要这一层,正文有没有补隐藏测试口径我不知道,这个口子先留着,说错了欢迎来打脸。

但就算按最宽容的读法,这个数也只证明了一件事:调度器变聪明了。证不了模型本身变强。论文自己收尾那句其实漏了口风,说这个结果说明 GraphAHA 能更有效地利用固定推理预算——措辞上认账了,是效率,不是能力。

真正值得正名的,是它开炮的那个靶子。摘要点名说,树搜索把不同生成历史当成彼此独立的状态,哪怕这些轨迹最后收敛到同一个程序,也要重复评估一遍,下游的搜索统计还没法共享。这话不难懂,但它是实打实的浪费。你去翻程序合成这一支的老论文,这个坑被踩过不止一次:两条完全不同的搜索路径写出同一份代码,机器还在那儿老老实实跑两遍测试。

这剧本,眼熟。合并等价状态、把统计往上收,是编译器和程序综合里磨了很多年的老手艺,这回被搬到 LLM 的 test-time 搜索上。搬家不算贡献小,搬对了地方是本事,但也别把它念成"图替代树"的范式迭代——图还是树,换的是节点合并的规则和调度策略。

而这里有个数全文没有:合并命中率。

整套收益都建立在一个前提上——不同的搜索路径确实经常撞到同一个程序。要是实际收敛率很低,那这个图大部分时候就是空转,共享机制漂亮但用不上。摘要给的是总分,没给这种中间指标,我只能把问号挂在这儿。

真正有技术含量的是那个分层 Thompson 采样。生成新状态,还是沿已有后继继续走,这是个二选一;选了生成,还得在采样、推理、实现、修复这几类动作里再挑一个。摘要自己承认,这几类动作的收益互补,而且依赖当前状态。翻成人话:没有一劳永逸的最优策略,只能在线赌。

多臂老虎机换了个壳。这话不是贬义,是说这类方法的天花板在哪:你优化的是同一份推理预算怎么分配,不是模型的能力上限。分配能救回来的那部分,永远只是本来要浪费掉的那部分。浪费越大,收益看着越漂亮;等模型自己够强,搜索少走的那两步弯路就不值钱了。

所以那 4.1 个点,我还想再问几句。它是两个模型乘两个基准、四个格子取的平均。四个格子里最低的那个涨了多少?没写。20 个测试情形里 18 个拿了最佳,剩下那 2 个输给谁、输多少?也没写。这类"平均下来挺好看"的数,最怕某个格子被另一个特别好的格子扛着走,你要在某个具体的模型加基准上复现,未必复现得出 4.1。

还有个细节,实验用的是 Qwen2.5-Coder 和 DeepSeek-Coder,两个开源 coder 系,前沿闭源模型一个没上。没有证据说是故意挑软柿子,开源模型便宜、可复现,做预算分配的实验用它们完全合理,甚至更合理。但恰恰因为它们没那么强,搜索才有的可救。

这里立个 flag:同一套调度搬到前沿闭源模型上,增益大概率缩水,我赌不到 4.1 的一半。理由一句话——能救回来的浪费,和模型自己的本事成反比。哪天有人真跑了,回来收这个 flag。

再说句得罪人的。test-time 这条线上,每隔几个月就来一篇"同样的预算、更好的结果",基本都是同一个故事:把赌注下得更聪明。这方向不假,问题也是真问题,但看多了你会发现,它们都在同一口锅里舀汤,锅就那么大。把锅做大的是模型本身的迭代,不是调度器的花活。

这 4.1 个点我先打七折,不是因为方法没用,是因为尺子握在出题人自己手里。