Show HN:一个专门衡量「AI 给代码库多加了多少废话」的开源 benchmark
现有的大模型代码 benchmark 大多在比两件事:solve rate,也就是能不能把题做出来;以及 token 输出和成本。这两项都挺误导人。能做出来不代表代码能留,token 少也不代表代码干净——模型完全可以靠把代码挤在一起、或者堆一堆冗余来凑数。长期项目里真正让人头疼的不是能不能跑,而是这个 diff 合进来之后,后面维护的人要多费多少劲。
Parsimony 这个开源 benchmark 就是冲着这个来的。作者 lasu 在 Show HN 里的思路很直接:把 DeepSWE、SWE-bench Verified、SWE-bench Live 这些 benchmark 已经公开的 patch 拿过来,再去数里面的“coding units”——也就是语句、调用、命名、字面量这类语法元素。刻意不用行数做单位,否则把代码刻意挤成几行的人反而得高分。删除的代码会被减掉,算的是净增加量,多余的东西越多,分越难看。
目前能排进榜的主要是那些有公开 patch 的模型。GPT-6 和 Claude 5.5 还没有公开的 patch,作者就用自己的订阅跑了 3 到 10 个任务,在榜上以淡化的圆圈标出来,不参与正式排名。这个设计挺诚实:私人账号跑的任务量小,样本不够,直接跟正式排名混在一起不公平。作者也明确说,欢迎提交新的模型 patch 导出,尤其欢迎新模型的公开数据。
这个项目发布之后,评论区有一个值得看的观点。fastball 说,一方面确实该测、该减少 LLM 往代码库里灌的废话;但另一方面,Astra 在这个榜上“赢”,对他来说是负面信号,因为在他眼里 Astra 生成的代码基本没法读,是在玩 code golf。他自己真实偏好宁可要 Claude 那种注释和测试过多、有点啰嗦的代码,也不要 Astra 那种让人看不懂的写法。
这个吐槽点出了这类指标的根本弱点:净 coding units 少,未必等于代码可维护。一个模型能把每个变量名缩成一个字母,行数压到极致,units 确实少了,但读的人会想杀人。反过来,Claude 那种带详细注释和测试的代码,units 多,长期维护反而舒服。所以 Parsimony 能告诉的只是“谁的代码更啰嗦”,回答不了“啰嗦和不可读,哪个更糟”这个偏好的问题。这也是作者把它定位成辅助指标、而不是想替代 solve rate 那种硬指标的原因。
工具本身在 GitHub 上开源,仓库地址是 github.com/La5u/Parsimony,网站是 parsimony.lasu.dev,作者声明与那几个被引用的 benchmark 没有隶属关系。对正在纠结该把哪个模型放进长期代码库团队工作流的人来说,这种“净增长多少代码量”的视角,至少比单纯看谁分高、谁 token 省多一个维度。不过用之前先想清楚自己更怕哪种痛:是怕代码啰嗦到要翻半天,还是怕代码精简到根本看不懂。
相关链接
- Parsimony 网站:https://parsimony.lasu.dev/
- GitHub 仓库:https://github.com/La5u/Parsimony
- Hacker News 讨论:https://news.ycombinator.com/item?id=50077619