一个编程智能体说自己解决了六成任务。六成是什么?
简单说,就是把一堆难度不同的题扔进同一个筐,算出一个平均分。
这个平均分被拿去排名、做对比、写进发布稿。我越看越觉得它像一笔糊涂账。
11 月 4 日 arXiv 上挂了一篇论文,专门来拆这笔账。编号 2611.05797,题目叫 DARE,三位作者,主分类是软件工程。本期只收这一条。
为什么求解率会变成默认指标
因为好算。跑一遍,除一下,一张柱状图就能发出去。
代价是它什么都不解释。它不告诉你这批题本身有多难,也不告诉你两个榜单之间差的那二十分,是模型变强了,还是题目变简单了。
A 榜六成和 B 榜六成,可能是两回事。这个道理同行都懂。
懂归懂,真要把“任务难度”做成一个能算的数,之前没什么人认真干。
DARE 的定义很笨,笨得挺对
它把任务难度定义成:多个智能体在同一任务上观测到的失败率。
连续取值,不是难、易两档。
说白了,就是让一群 agent 都去做同一道题,看有几个没做出来。
这个笨办法的好处,是不依赖谁的主观判断。坏处论文自己也认了:反复跑多个智能体来实测难度,代价太高。
所以才要往下走一步,预测。
预测那部分,数字不好看
它从基准工件里提了 151 个静态特征,拿这些去预测难度。
在四个基准划分、2594 个任务上评估,预测和实测的相关落在 ρ 0.476 到 0.621 之间。
我第一遍看到这个数字有点失望。0.5 左右的相关,拿去排序还行,拿去当分数看会出事。
151 个特征具体是哪 151 个,我没去翻。这种东西读摘要看不出门道,得看附录。先放在这里。
不过它本来也不靠预测精度立身。重点是下一半。
真正有意思的是解释
DARE 把特征分成七组,分析每个任务哪一组最突出。
结论是:最显著的那组,随任务变,也随基准变。
这句话短期看没什么,长期看挺扎人。
它在说,不存在一个笼统的“任务难度”。难是分种类的。有的难在缺上下文,有的难在改动面铺得太开,有的难在测试本身写不清楚。
同一条六成,可能是三种完全不同的六成。该给的支持当然也不该一样。
我一开始以为这是又一篇刷榜的论文。看到这里才发现,它是在拆榜单的台。
最后才是能用的东西
按最显著的那组特征,给任务配对应的支持方式。论文说,支持对上了,修复成功率有提升。
这条我信一半。提升多少、在哪个基准上提升,摘要里没细说。我没读完全文,不替它吹。但思路是对的,不是加大模型,是给对的那一类帮助。
这个思路能照着做。哪怕你不做自动程序修复,自己写东西卡住的时候也可以用:先判断是缺信息、缺拆解,还是缺验证,别一律归成“模型不够强”。
回到榜单
这期我真正想说的,就一句白话:一个百分比,回答不了“它到底行不行”。
它只回答“在这批题上,它做对了这么多”。这批题有多难,它没说。
论文还提了一个方向,按难度分层做评估、做跨基准比较。这个我倒是很期待。以后榜单如果肯分层报,而不是甩一个总分,很多争论根本不会发生。
DARE 不是终点。ρ 0.5 的预测拿去排个序能用,拿去当结论会出事。但它至少把“任务难度”从一个形容词,变成了一个能算的数。
这个动作,比它自己的实验成绩重要。
本周就这些。
上面有任何一条你试过、或者觉得我讲错了,欢迎告诉我。讲错的我补,没讲清的我改。
下周见。