2026-06-25 · 📊 评测← 本期
DeepSWE: contamination-free benchmark for frontier coding models
如果你关注编程模型的真实能力,最头疼的一件事是:公开基准越用越不可信。像 SWE-bench 这类基准的任务大多取自 GitHub 上真实的 commit 和 PR,时间一长,这些代码和它们的修复方案大概率已经被各家模型在预训练时见过——模型不是"解出来"的,是"背出来"的。这就是数据污染(contamination),它让排行榜数字越来越虚高,也越来越没法反映模型在没见过的新问题上到底有多少本事。
DeepSWE 想正面解决这个问题。它是一个开源基准,定位是衡量前沿 coding agent 在"原创、长链路"软件工程任务上的表现。它列出的核心改进有四点。
第一是无污染。所有任务都是从零手写的,不是从已有的 commit 或 PR 改编而来,因此没有任何模型在预训练阶段见过对应的解法。这是它和 SWE-bench 系列最根本的区别——后者的题目来自真实历史代码,前者的题目是专门为评测新造的。
第二是多样性。任务取材自 91 个代码仓库,覆盖 5 种语言;从仓库官方页面看,这 5 种语言是 TypeScript、Go、Python、JavaScript 和 Rust,当前题目总数为 113 道。覆盖面铺得这么开,是为了避免模型靠在某一两种语言或某一类项目上过拟合就拿高分。
第三是贴近真实复杂度。一个反直觉但很关键的设计是:DeepSWE 的提示词长度只有 SWE-bench Pro 的约一半,可解题需要写的代码却是后者的 5.5 倍,产出的 token 量约为 2 倍。换句话说,它故意把"题面短、活儿重"的真实工程场景放大——现实里工程师拿到的需求往往一句话,但要动的代码很多。这种结构更能压出模型在长链路、多步骤改动上的真实工程能力,而不是看它能否读懂一段冗长的题面。
第四是可靠的验证。验证器(verifier)由人工编写,只检验软件的可观察行为是否符合需求,而不去抠具体的实现方式。按仓库说明,验证逻辑接受任何"外部行为正确"的解,不在意内部符号命名或代码结构;执行上采用 Harbor 任务格式,agent 在隔离环境里完成并提交,再把改动作为补丁应用到一个干净容器里打分。这种"看行为不看写法"的判分方式,比对着标准答案做字符串匹配更接近人类 reviewer 的判断,也更难被钻空子。
对谁有用?主要是两类人:一类是想客观评估自家或第三方 coding 模型真实水平、又被现有基准污染问题困扰的评测方与研究者;另一类是做 coding agent 产品、需要一个不容易被"背答案"污染的标尺来横向比较的团队。它是开源的,可以自己取来跑。
诚实的保留:本条来自 Reddit 的二手帖与项目仓库,目前可见的素材里没有给出任何模型在 DeepSWE 上的具体得分或排行榜结果——也就是说,"哪个模型更强"这一最关心的问题,原文未给出数字,需要等实际跑分公开。此外,"5.5 倍代码量""约 2 倍 token""提示词约一半长度"以及"91 个仓库"这几个量化点出自发布方的自述,属于自报口径;其中 5 种语言的构成和 113 道题的规模已可在仓库页面核对,但与 SWE-bench Pro 的对比数字尚待第三方独立验证。基准本身的价值,最终也要看社区是否真的采用、以及题目是否经得起长期使用而不被反向"刷"掉。