OpenAI “1106” 模型代码编辑能力基准测试

基准测试结果

基准测试结果

OpenAI 刚刚发布了 GPT-3.5 和 GPT-4 的新版本, 大家都很关注这些新模型在代码能力方面相比之前版本的提升。 为此,我对这些新模型进行了基准测试。

Aider 是一个开源命令行聊天工具,让你能够与 GPT 协作编辑本地 git 仓库中的代码。 为了实现这一功能,aider 需要可靠地识别 GPT 何时想要编辑源代码, 确定它想要修改哪些文件, 并准确地应用它试图做出的更改。 要出色完成这项”代码编辑”任务,需要优秀的 LLM 模型、良好的提示词设计以及驱动 LLM 交互的优质工具。

每当这些要素发生变化时,aider 都会通过 代码编辑基准测试 来定量评估性能表现。 例如, 每当我修改 aider 的提示词或驱动 LLM 对话的后端时, 都会运行基准测试来确保这些变更带来了改进(而非退步)。

该基准测试使用 aider 尝试完成 133 个 Exercism Python 编程练习。 对于每个练习,Exercism 都提供了一个包含所需函数存根(stub)的起始 Python 文件、 描述待解决问题的自然语言说明, 以及用于评估解决方案正确性的测试套件。

基准测试给予 aider 两次尝试完成任务的机会:

  1. 第一次尝试时,aider 向 GPT 提供存根代码文件和描述问题的自然语言说明。这反映了你如何使用 aider 进行编程:你将源代码文件加入聊天会话并请求修改,这些修改会被自动应用。
  2. 如果第一次尝试后测试套件失败,aider 会将测试错误输出提供给 GPT 并要求其修复代码。Aider 通过类似 /run pytest 的命令支持这种交互方式,该命令会在与 GPT 的聊天会话中运行并共享 pytest 结果。你可以根据实际需要 /run 任何适合你所用语言/框架/场景的测试/linter 等工具。

基准测试结果

gpt-4-1106-preview

目前,我只使用 diff 编辑方法对 GPT-4 模型进行了基准测试。这是 aider 默认与 gpt-4 一起使用的编辑格式。

  • 新的 gpt-4-1106-preview 模型似乎比 6 月份的 GPT-4 模型快 2-2.5 倍
  • 它似乎更擅长在第一次尝试时就生成正确的代码。在不需要查看测试套件错误的情况下,它能正确完成 53% 的编码练习。之前的模型在第一次尝试时只能正确完成 46-47% 的练习。
  • 新模型在通过查看测试套件错误输出获得第二次修正错误的机会后,表现(约 65%)与旧模型(63-64%)相似。

gpt-3.5-turbo-1106

我使用 wholediff 两种编辑格式对 GPT-3.5 模型进行了基准测试。包括最新的 11 月(1106)模型在内,似乎没有哪个 gpt-3.5 模型能有效使用 diff 编辑格式。

以下评论仅关注比较 whole 编辑格式的结果:

  • 新的 gpt-3.5-turbo-1106 模型完成基准测试的速度比早期的 GPT-3.5 模型快 3-4 倍
  • 第一次尝试的成功率为 42%,与之前的 6 月(0613)模型相当。新的 11 月模型和之前的 6 月模型在第一次尝试时的表现都不如原始 3 月(0301)模型的 50% 结果。
  • 新模型在第二次尝试后的 56% 成功率似乎与原始 3 月模型相当,并且比 6 月模型的 50% 分数略好。

相关报告

本报告是系列报告之一,使用 aider 基准测试套件来评估和比较 OpenAI GPT 模型的代码编辑能力。您可以通过以下其他报告获取更多信息:

更新记录

最后更新于 2023 年 11 月 14 日。 OpenAI 已放宽速率限制,因此这些结果不再被视为初步数据。


目录