代码智能:大模型最早兑现的能力
代码是大模型最早产生商业价值的能力,也是评测演进最严谨的领域:因为有编译器和单元测试,「代码对不对」可以机械判定,这让它成为整个 AI 能力评测的方法论试验场。五年之间,这个领域经历了三级跳:2021 年 Codex 在 HumanEval 上做到 28.8% 的单次通过率,证明了「写代码」可以规模化;2022 年 AlphaCode 用百万级采样打进编程竞赛前 54%,证明了「推理与搜索」可以换能力;2024 到 2025 年,SWE-Bench 上的 agent 从不到 4% 爬到 70% 以上,证明了「修真实仓库的 bug」从纸面目标变成产品现实。本文把这三级跳的技术脉络与产业影响梳理清楚。
Codex 与 HumanEval:把代码生成变成科学
2021 年,OpenAI 的 Chen 等人发表《Evaluating Large Language Models Trained on Code》。训练侧,他们从 GitHub 五千四百万仓库中筛选清洗出 159GB 的 Python 代码,在 GPT-3 基座上继续预训练出 12B 的 Codex;评测侧,他们设计了 HumanEval:164 道人工手写的编程题,每题带函数签名、文档字符串与隐藏单元测试,以「通过测试」为唯一判分标准。为了让「采样多次」的评测公平可比,论文提出了无偏的 pass@k 估计量:从 n 个采样中任取 k 个、至少一个通过测试的概率。结果:Codex-12B 单次通过率 28.8%,采样一百次后 77.5%;而 GPT-3 基座单次通过率接近零——代码预训练带来的跃升立竿见影。
这份工作的产业兑现是 GitHub Copilot:2021 年技术预览、2022 年正式商用,成为第一个亿级用户规模的 AI 编程工具。生产力证据来自 Peng 等人 2023 年的受控实验:95 名开发者实现同一个 HTTP 服务器任务,用 Copilot 的小组完成速度快约 55.8%。同一时期,评测的严谨化也在推进:Liu 等人 2023 年的 EvalPlus 指出 HumanEval 的测试用例太弱——大量错误代码能骗过隐藏测试蒙混过关,他们扩充测试集后(HumanEval+),不少模型的「通过率」应声掉掉十几个点;Jain 等人 2024 年的 LiveCodeBench 则用持续滚动收录的新题对抗基准污染。这组「出题与查毒」的军备竞赛,后来成为所有能力评测的模板。
AlphaCode:海量采样与竞赛级推理
DeepMind 的 Li 等人 2022 年发表在 Science 的《Competition-Level Code Generation with AlphaCode》把难度推到编程竞赛。模型是 41B 的 decoder,在自建的 CodeContests 数据集(13328 道竞赛题)上训练;关键创新在推理侧:每道题生成至多一百万个候选程序,先用示例测试过滤,再按程序运行行为聚类、每组挑代表,最终只提交十个答案。在 Codeforces 的虚拟竞赛评测中,AlphaCode 平均成绩进入参赛者的前 54%——第一次有系统达到竞赛级水平。论文的两条结论影响深远:其一,性能随采样数近似对数线性提升,「采样换能力」成立;其二,行为聚类是必要环节,直接挑最高置信度的答案效果差得多。2023 年底,基于 Gemini 的 AlphaCode 2 借助更强的模型与更重的采样把成绩推进到前 15%,进一步验证了这条「模型质量乘采样规模」的路线。
flowchart TD
A["2021 Codex:代码预训练 + HumanEval"] --> B["pass@1 28.8%,采样百次 77.5%"]
B --> C["GitHub Copilot:AI 编程工具商用"]
A --> D["2022 AlphaCode:百万采样 + 行为聚类"]
D --> E["Codeforces 前 54%,采样换能力"]
E --> F["2023 SWE-Bench:真实仓库修 bug"]
F --> G["初期最好成绩约 4%"]
G --> H["2024 Agent 化:SWE-agent / Devin"]
H --> I["2024-10 Claude 3.5 Sonnet:Verified 49%"]
I --> J["2025:70% 以上,逼近工程可用线"]
SWE-Bench 与 Agent 时代:修真实仓库的 bug
真正的分水岭是 Princeton 的 Jimenez 等人 2023 年的 SWE-Bench:从十二个主流 Python 开源仓库(Django、scikit-learn、sympy 等)挖掘出 2294 个「issue 加修复提交」对,任务要求模型拿到仓库代码与 issue 描述后,产出能通过该 issue 关联回归测试的补丁。这是第一个全真实、仓库级、带验证的软件工程基准。初代结果非常冷静:当时最好的模型成绩不到 4%——「会写函数」与「会修系统」之间隔着一整个工程能力维度。随后开源出的 SWE-bench Lite(300 题)与 OpenAI 2024 年 8 月人工校验的 SWE-bench Verified(500 题)解决了原始集里题目有误的问题,成为后续所有对比的标准赛道。
此后两年是 agent 的竞赛。Princeton 的 SWE-agent(2024)提出「agent 计算机接口」设计——把 shell、文件查看器封装成模型友好的工具接口,接口设计本身贡献了大部分提升,全榜成绩 12% 上下;Cognition 的 Devin(2024 年 3 月)以 13.86% 的非辅助成绩演示了端到端工程 agent 的可能。真正的拐点在 2024 年 10 月:Anthropic 发布 Claude 3.5 Sonnet 升级版,在 SWE-bench Verified 上拿下 49%,宣布「过半的真实 bug 可以交给模型」;2025 年 2 月的 Claude 3.7 Sonnet 达到 62.3%(自定义脚手架下 70.3%);2025 年 5 月的 Claude Opus 4 达到 72.5%(并行计算下 79.4%);2025 年 8 月 OpenAI 的 GPT-5 报告 74.9%。从 4% 到 74%,SWE-bench Verified 三年走完了从「玩具」到「同事」的路。支撑这轮跃迁的技术组合也清晰:仓库级上下文构建(检索加仓库地图)、执行反馈循环(跑测试看报错再改)、可验证奖励的强化学习、以及长程任务规划——每一条都先在代码域验证,再外溢到通用 agent。
产业兑现与未解问题
产业侧的渗透速度超出多数预测。Google 在 2024 年三季度财报电话会上披露,超过四分之一的新增代码由 AI 生成后经工程师审核合入。开源侧,Qwen2.5-Coder-32B(2024)等模型把 32B 级开源模型的代码能力推进到接近 GPT-4o,DeepSeek-Coder-V2 以 236B 稀疏 MoE(激活约 21B)覆盖三百多种编程语言。遗留问题同样明确。安全:Pearce 等人的「Asleep at the Keyboard」研究(IEEE S&P 2022)在最坏情境下测得约四成的 AI 生成程序带可利用漏洞;「slopsquatting」攻击则利用模型幻觉出的不存在的包名做供应链投毒。评测饱和:SWE-bench Verified 的余量正在收窄,更难的 SWE-bench Pro、OpenAI 测自由职业任务的 SWE-Lancer(2025,百万美元级任务池,最好模型只完成其中约四成价值)正在接力。长程一致性:动辄上百文件的跨仓库重构、需求变更后的连锁修改,仍是当前系统的明显短板。规格完备性:自然语言需求天然欠约束,「写对了题面」不等于「写对了需求」。
训练配方与评测谱系的完整版图
训练侧的第一块拼图是填空目标。Bavarian 等人 2022 年(OpenAI)提出 fill-in-the-middle:随机把代码中间片段挖出、让模型按前后文补全(训练时约一半样本启用),这让 Copilot 式的「光标处补全」从裁剪技巧变成一等能力。Code Llama(Rozière 等人 2023)在 500B token 上系统验证了 FIM 与长上下文的组合,DeepSeek-Coder 系列进一步把训练窗口抬到仓库级(16K 起步、跨文件依赖),代码模型的「上下文」从此以仓库为单位度量。
配方演进的几个关键数字值得记录:DeepSeek-Coder 在 2 万亿 token、87 种编程语言上训练;DeepSeek-Coder-V2 升级为 236B 的稀疏 MoE(激活约 21B),覆盖 338 种语言;Qwen2.5-Coder 用数万亿 token 级的多语言代码语料把 32B 开源模型推进到与 GPT-4o 在多数代码基准上互有胜负。强化学习侧,CodeRL(Le 等人 2022)最早用单元测试信号做 actor-critic 训练;2025 年的 R1 类可验证奖励强化学习把「跑测试作为奖励」做成标配。推理侧的结构化自我修正同样有效:AlphaCodium(Ridnik 等人 2024)的测试驱动迭代流程——先让模型反思题目与测试,再生成、跑测试、按报错迭代——把 GPT-4 在 CodeContests 上的成绩从约 19% 推到约 64%。
评测谱系也比大多数人以为的丰富:MBPP(Austin 等人 2021,974 道众包题)与 DS-1000(1000 道源自 StackOverflow 的数据科学题)补齐了入门与数据科学维度;BigCodeBench(2024)要求调用真实库完成实用任务;Aider 的多语言实测榜与 LiveCodeBench 的滚动新题对抗污染;OpenAI 2025 年的 SWE-Lancer 把评测推到自由职业市场——百万美元级的真实任务池里,最好的模型只挣回约四成价值,「按结果付费」的门槛有了明确的量化标尺。
安全与治理是这一跃迁的阴影面。Pearce 等人的研究(IEEE S&P 2022)在最坏情境下测得约四成 AI 生成程序带可利用漏洞;2025 年的研究进一步发现约两成幻觉出的包名可以稳定复现,直接催生了「slopsquatting」——攻击者注册模型常幻觉的包名做供应链投毒。知识产权侧,2022 年起的 Copilot 相关诉讼推动训练数据治理落地:BigCode 的 The Stack 提供了按许可证筛选加开发者 opt-out 的范式,如今已成为开源代码预训练的事实标准。代码智能的下一阶段竞争,正在从「写得多准」转向「写得可信」。
agent 脚手架层的上下文工程也值得单独记录。RepoCoder 的迭代式检索——先检索生成、再根据生成结果补检索、循环精化——把检索误差纳入了修正循环;Aider 的仓库地图用 tree-sitter 抽取全仓定义骨架,以极小 token 预算给模型一张「目录」;SWE-agent 的论文证明工具接口设计本身贡献了显著增益,比如用可控滚动的文件查看器替代裸 cat,模型读大文件时的成功率明显提升;Claude Code 类终端 agent 则把「先探索、再修改、再验证」固化为默认工作流。配合推理时的 best-of-n 加验证器选择,这些非模型权重的工程手段,在 SWE-Bench 成绩爬坡里的贡献不亚于基座模型的升级——这也是代码域给通用 agent 领域最重要的方法论输出。
小结
代码智能五年跃迁的三级台阶各有方法论遗产:Codex 确立了「生成加测试」的机械化评测,EvalPlus 与 LiveCodeBench 教会整个行业对抗测试弱点与基准污染;AlphaCode 确立了「采样换能力」与聚类筛选,为后来的 best-of-n 推理范式打了样;SWE-Bench 把评测从函数级推进到仓库级,逼出了 agent 接口设计、执行反馈与可验证强化学习的完整技术栈。对工程团队,当前的实用结论是:单文件与单 issue 级别的修复已经可以进入日常工具链,跨文件重构与长程任务仍需人机协作;而对研究者,下一个待解的问题从「能不能修 bug」变成了「能不能对整个系统负责」。
读者留言
COMMENTS 暂无还没有留言,来说第一句?