一项 2024 年研究发现,在特定 LeetCode 与 GeeksforGeeks 竞赛、最佳反馈策略和最多五次尝试的条件下,GPT-4 在 26 场竞赛中的 21 场超过 85% 的人类参赛者;Claude 2 等其他模型大致接近参赛者平均水平。这个结论只适用于算法题代码生成,不能证明当前 Claude 或 GPT 模型已全面超过软件工程师。
研究者评估了七个大语言模型,包括 GPT-4、GPT-3.5、Claude 2、Gemini Ultra、Gemini Pro、Llama 2 和 Code Llama。数据主要由 25 场 LeetCode 竞赛中的 100 道题组成,另有五场 GeeksforGeeks 竞赛的 15 道题用于人类排名比较。
GPT-4 使用的是 gpt-4-0613,Claude 使用 Claude-2-100k,模型访问时间集中在 2024 年初。因此论文反映的是当时模型的能力快照,不应直接套用到后续 Claude、GPT 或 Gemini 版本。
论文把模型解题结果代入竞赛评分规则。在 26 场竞赛中,GPT-4 有 21 场排名高于第 85 百分位,18 场高于第 90 百分位,三场参与人数超过 18000 的 LeetCode 竞赛进入前 100 名。
但模型不是以完全相同的人类参赛方式作答。研究者充当模型与网站之间的接口,每次完整尝试按一分钟计时,失败会按竞赛规则增加罚时,且每题最多允许五次尝试。GPT-4 使用了该研究中效果最好的反馈与代码解释器策略,人类排名则来自竞赛记录。
论文测试了重复提问、多方案生成、错误反馈、代码解释器验证和跨语言转换等六种策略。对 GPT-4 而言,把失败测试的错误信息反馈给模型,并用代码解释器检查样例,明显优于简单重复同一提示。
| 条件 | 五次内成功率 | 说明 |
|---|---|---|
| 普通重复提示 | 简单 86%、中等 58%、困难 15% | 重复问题但忽略错误反馈 |
| 反馈与代码解释器 | 简单 100%、中等 86% | 利用样例和失败信息迭代修复 |
这说明比较模型时不能忽略代理工作流。能否运行代码、收集失败测试并继续修复,可能比只更换模型更显著地改变结果。一次生成的通过率与具备反馈循环的五次通过率也不能放在同一榜单中比较。
在相同反馈策略下,GPT-4 明显领先当时的 Gemini Ultra、Claude 2 和其他模型。除 GPT-4 外,多数模型在竞赛中的人类百分位约为 60%,中等题最多解决一半,困难题在五次内最多解决约 15%。
研究还提醒,部分模型可能接触互联网,训练数据也可能包含公开题目。GPT-4 和 GPT-3.5 对其知识截止日期之前的题目表现明显更高,因此后续分析主要关注截止日期之后的竞赛,但其他模型的数据污染仍不能完全排除。
竞赛题具有清晰描述、固定输入输出、完整约束和自动判题,这正是模型较容易利用反馈改进的环境。真实软件开发还包含需求澄清、架构设计、依赖管理、用户界面、数据迁移、安全审查、部署和长期维护,论文没有评估这些能力。
“超过多数参赛者”也不等于替代多数程序员。模型依赖人类准备提示、转交错误信息并建立测试基础设施;它在多数情况下仍未超过最优秀的竞赛参与者。实际项目中,缺失测试和模糊需求会进一步削弱自动反馈的价值。
这项研究最可靠的启示不是建立永久的 Claude 与 GPT 排名,而是证明工具反馈、测试执行和重试策略会显著影响代码生成结果。大语言模型在结构明确、可自动验收的任务上可以成为高效助手,但软件工程能力仍需在真实仓库和完整交付流程中单独验证。