Hacker News· lasu·· 4 天前AI 评分38
Parsimony:衡量 AI 模型多写多少代码的开源基准
Show HN: Parsimony – an open-source benchmark for how much code AI models add
AI 导读
Parsimony 是一个开源基准,用净代码单元数(新增减删除)衡量 AI 模型在解题时多写了多少代码,而非只看解题率与成本。它基于 SWE-bench Verified 已发布的补丁统计语句、调用、比较等语法元素,不数行数、不重跑测试,仅测 Python,模型按平均净新增单元从低到高排名。
正文 · AI 翻译
现有基准测试衡量的是解决率和成本,但不会惩罚多余的代码,而这会让代码库在长期内更难维护。简约性衡量的是 AI 模型添加了多少代码。
它采用基准测试已经发布的补丁,并统计编码单元:语句、调用、比较、名称和字面量等语法元素。不统计行数,因此堆砌代码不会得到奖励,删除的代码会被减去:净单元 = 新增 − 删除。
比较模型
如何阅读
模型按其在已解决任务上平均净新增单元数排名,从低到高。“净新增单元(均值)”也包括失败的尝试。Solved 来自 SWE-bench Verified;测试不会重新运行。Measured 是可测量的已解决尝试数量。
排行榜
| 排名 | 模型 |
|---|
方法
- 每个补丁都会应用到任务的代码上,每个被修改文件的两个版本都会被解析。不运行任何内容。
- 测试、文档和生成的文件被排除在外。只测量 Python。
- 通过/失败来自 SWE-bench 发布的结果;测试不会重新运行。
局限
- 更小并不总是更好:单元衡量的是大小,而不是可读性或设计。
- 写更多代码的模型也往往解决更多任务(在拥有 26 个以上模型的榜单上,Spearman 相关系数为 0.33–0.60)。
- 每个模型都使用相同的智能体(mini-SWE-agent),但智能体仍然会影响写出多少代码。
添加你自己的基准测试
有来自其他基准测试的代码规模数据?下载示例文件,填入你的结果并打开它,即可获得相同的图表和表格。文件会保留在你的浏览器中。格式及如何分享。
示例:检查负数
两者返回相同的结果。
def has_negative(values):
found = False
for value in values:
if value < 0:
found = True
return founddef has_negative(values):
return any(value < 0 for value in values)来源:Hacker News · parsimony.lasu.dev