34个编程大模型综合比较

用于编码的大型语言模型 (LLM) 的竞争从未如此激烈。阿里巴巴、Anthropic、谷歌、Meta、Mistral、OpenAI 和 xAI 等主要参与者都提供了自己的模型,开发人员拥有比以往更多的选择。

但是,如何为你的编码用例选择最佳的 LLM?

在这篇文章中,我对通过公共 API 提供的顶级 LLM 进行了深入分析。我专注于它们在编码任务中的表现,以 HumanEval 等基准为衡量标准,以及它们在各自的 Elo 分数中反映的实际表现。

无论你是在从事个人项目还是将 AI 集成到你的开发工作流程中,了解这些模型的优缺点都将帮助你做出更明智的决定。

免责声明:比较 LLM 时的挑战

比较 LLM 很难。模型经常会收到对其性能有重大影响的更新 — 例如 OpenAI 从 GPT-4 到 GPT-4-turbo 到 GPT-4o 再到 o1 模型的更新。然而,即使是小更新也会产生影响—例如,GPT-4o 在 5 月 13 日发布后已经收到了 3 次更新!

此外,这些模型的随机性意味着它们的性能在不同的运行中可能会有所不同,从而导致研究结果不一致。最后,一些公司可能会定制基准和配置——例如特定的思想链技术——以最佳方式展示他们的模型,这会扭曲比较并误导结论。

结论:比较 LLM 性能很难。

这篇文章代表了基于可用信息对各种编码任务模型的尽力比较。我欢迎任何反馈以提高此分析的准确性!

1、评估 LLM:HumanEval 和 Elo 分数

正如上面的免责声明中提到的那样,为了正确理解 LLM 在编码任务中的表现,建议从多个角度对其进行评估。

1.1 通过 HumanEval 进行基准测试

最初,我尝试汇总来自多个基准测试的结果,看看哪个模型名列前茅。然而,这种方法有一个核心问题:不同的模型使用不同的基准和配置。只有一个基准似乎是评估编码性能的默认基准:HumanEval。这是一个由人工编写的编码问题组成的基准数据集,用于评估模型根据指定要求生成正确且功能性代码的能力。通过评估代码完成度和解决问题的能力,HumanEval 可作为 LLM 编码能力的标准衡量标准。

1.2 通过 Elo 分数反映人民的声音

虽然基准可以很好地反映模型的性能,但也应该谨慎对待。鉴于 LLM 需要大量数据进行训练,基准的一些内容(或高度相似的内容)可能是该训练的一部分。这就是为什么根据人类对模型的表现进行评估也是有益的。Elo 评级,例如 Chatbot Arena(仅限编码)的评级,就是这样的。这些分数是通过对 LLM 在编码任务中的头对头比较得出的,由人类评委评估。模型相互竞争,其 Elo 分数会根据这些成对比赛的胜负情况进行调整。Elo 分数显示模型相对于池中其他模型的相对性能,分数越高表示性能越好。例如,100 个 Elo 点的差异表明,评分较高的模型预计会在 64% 的时间内击败评分较低的模型。

1.3 模型性能的当前状态

现在,让我们检查一下当我们将 HumanEval 分数与 Elo 评分进行比较时这些模型的表现如何。下图说明了 LLM 的当前编码状况,其中模型按创建它们的公司进行聚类。每个公司表现最佳的模型都带有注释。

图 1:HumanEval 的 Elo 分数 — 按公司着色。X 轴和 y 轴刻度显示每个公司发布的所有模型,其中表现最佳的模型以粗体显示。

OpenAI 的模型在两个指标中都名列前茅,展示了它们在解决编码任务方面的卓越能力。顶级 OpenAI 模型比最佳非 OpenAI 模型(Anthropic 的 Claude Sonnet 3.5)高出 46 个 Elo 点,在面对面编码任务中的预期胜率为 56.6%,在 HumanEval 中的差异为 3.9%。虽然这种差异并不明显,但它表明 OpenAI 仍然具有优势。有趣的是,最好的模型是 o1-mini,它的得分比更大的 o1 高出 10 个 Elo 点,在 HumanEval 中的得分高出 2.5%。

结论:OpenAI 继续占据主导地位,在基准性能和实际使用方面处于领先地位。值得注意的是,o1-mini 是性能最佳的模型,优于其更大的对手 o1。

其他公司紧随其后,似乎存在于同一个“性能范围”内。为了更清楚地了解模型性能的差异,下图显示了每个公司最佳模型的获胜概率——由其 Elo 评级表示。

图 2:每个公司最佳(编码)模型的获胜概率——由 Elo 评级的正面对决获胜概率表示

2、基准测试结果与实际性能不匹配

从图 1 中可以看出,HumanEval(基准测试)与 Elo 分数(实际性能)之间的不一致。某些模型(如 Mistral 的 Mistral Large)的 HumanEval 分数明显优于其 Elo 评级。其他模型(如 Google 的 Gemini 1.5 Pro)的 Elo 评级明显优于其获得的 HumanEval 分数。

很难知道何时信任基准测试,因为基准测试数据也可能包含在模型的训练数据集中。这可能导致(过度拟合)模型记住并重复编码问题的答案,而不是理解并真正解决问题。

同样,将 Elo 评分作为基本事实也是有问题的,因为这些分数是通过众包努力获得的。通过这样做,你会在评分中添加人为偏见,偏爱以特定风格输出、采用特定方法的模型……而不是其他模型,这并不总是与事实上更好的模型相符。

结论:更好的基准测试结果并不总是反映更好的实际性能。建议分别查看两者。

下图显示了 HumanEval 和 Elo 分数之间的差异。所有模型均根据各自的分数排序,为简单起见,忽略一个模型与另一个模型相比“好多少”。它直观地显示了哪些模型在基准测试中的表现优于现实生活,反之亦然。

图 3:HumanEval 和 Elo 分数的不一致 - 按公司着色。为简单起见,分数被转换为排名,分别在每个指标上从最差(左)到最好(右)

图 4 通过进一步简化比较,进一步突出了基准测试和实际性能之间的差异。此处,该图显示了排名的相对差异,表明模型何时可能过度拟合基准或表现优于报告。这里可以得出一些有趣的结论:

  • 基准过度拟合:阿里巴巴和 Mistral 都因系统地创建在基准上比在现实生活中表现更好的模型而脱颖而出。他们最近的模型,阿里巴巴的 Qwen 2.5 Coder(-20.0%)和 Mistral 的 Mistral Large(-11.5%)也遵循这种模式。
  • 优于报告:谷歌因生产表现明显优于报告的模型而脱颖而出,其最新的 Gemini 1.5 Pro 模型以 +31.5% 的差异位居榜首。他们对“诚实的训练和评估”的关注体现在他们的模型报告中,以及决定开发自己的 Natural2Code 基准而不是使用 HumanEval。“Natural2Code 是 Python、Java、C++、JS、Go 的代码生成基准。保留了类似 HumanEval 的数据集,未在网络上泄露”〜谷歌在 Gimini 1.5 版本中说道。
  • 均衡:Meta 能够出色且持续地在基准测试和实际表现之间取得平衡,这一点非常有趣且特别。当然,鉴于该图显示的是排名而不是分数,这种稳定性还取决于其他模型的性能。
图 4:从 HumanEval 到 Elo 分数的性能差异 - 按公司着色。负分数表示 HumanEval 优于 Elo(在基准测试中过度拟合),而正分数表示 Elo 优于 HumanEval(表现优于报告)
结论:阿里巴巴和 Mistral 倾向于创建在基准测试数据上过度拟合的模型。
结论:由于谷歌的模型注重公平的训练和评估,因此在基准测试结果中被低估。

3、平衡性能和价格:提供最佳性价比的模型

在选择 LLM 作为你的编码伴侣时,性能并不是唯一要考虑的因素。另一个需要考虑的重要维度是价格。本节重新评估了不同的 LLM,并比较了它们在性能评估(由其 Elo 评级表示)和价格方面的表现。

在开始比较之前,值得注意的是一个例外:Meta。Meta 的 Llama 模型是开源的,并非由 Meta 自己托管。但是,鉴于它们的受欢迎程度,我将它们包括在内。这些模型的价格是三大云供应商(谷歌、微软、亚马逊)提供的最佳即用即付价格——通常归结为 AWS 的价格。

图 5 比较了不同的模型并显示了帕累托前沿。Elo 评级用于表示模型性能,这似乎是最佳选择,因为它是由人工评估的,并且不包括过度拟合偏差。接下来,使用即用即付 API 价格,显示的价格是总共一百万个生成的令牌的输入和输出令牌成本的平均值。

图 5:按 API 价格划分的模型编码性能(Elo 评级)

Pareto 前沿仅由来自两家公司的模型组成:OpenAI 和 Google。如前几节所述,OpenAI 的模型在性能上占主导地位,而且它们的价格似乎也相当合理。与此同时,谷歌似乎专注于更轻量级(因此更便宜)且性能仍然良好的模型。这是有道理的,因为他们专注于设备上的 LLM 用例,这对他们的移动操作系统(Android)具有重大的战略价值。

结论:Pareto 前沿由来自 OpenAI(高性能)或 Google(物有所值)的模型组成。

下图显示了使用 HumanEval 而不是 Elo 分数来表示编码性能时的类似趋势。一些观察:

  • Anthropic 的 Claude 3.5 Haiku 是唯一值得注意的补充,因为这个模型还没有 Elo 评级。它能成为中等价位、高性能模型的潜在竞争者吗?
  • 上一节将 HumanEval 得分与 Elo 评分进行了比较,其中解释了 Google 的 Gemini 1.5 Pro 和 Mistral 的 Mistral Large 之间的差异。
  • 鉴于 Google 的 Gemini 1.5 Flash 8B 没有 HumanEval 得分,因此它被排除在本图之外。
图 6:按 API 价格划分的模型编码性能(HumanEval 得分)

4、浏览数据:其他见解和趋势

最后,我将讨论当前 LLM(编码)领域中值得注意的一些额外见解。本节探讨了三个关键观察结果:模型随着时间的推移稳步改进、专有模型的持续主导地位以及即使是微小的模型更新也可能产生的重大影响。所有观察结果都来自图 5 中显示的按价格比较的 Elo 评分。

4.1 模型越来越好,越来越便宜

下图说明了新模型如何继续实现更高的准确性,同时降低成本。值得注意的是,三个时间段——2023 年及之前、2024 年上半年和 2024 年下半年——各自定义了自己的帕累托前沿,并占据了几乎完全不同的部分。很想知道这将如何在 2025 年继续发展!

图 7:时间演变,由三个不同的时间段——2023 年及之前、2024 年上半年和 2024 年下半年表示
结论:模型系统地变得更好、更便宜,几乎每个新模型发布都会观察到这一趋势。

4.2 专有模型仍然占主导地位

下图显示了所分析的模型中哪些是专有的,哪些是开源的。我们看到专有模型继续主导 LLM 编码领域。帕累托前沿仍然由这些“闭源”模型驱动,无论是高性能还是低成本。

然而,开源模型正在缩小差距。不过,有趣的是,对于每个开源模型,都有一个具有相同预测性能且价格明显更低的专有模型。这表明专有模型要么更轻量,要么经过了更好的优化,因此需要的计算能力更少——尽管这只是个人猜测。

图 8:专有模型与开源模型
结论:专有模型继续占据性能成本帕累托前沿。

4.3 即使是小规模的模型更新也会产生影响

以下和最后一张图片说明了即使是对同一模型进行小规模更新也会产生影响。大多数情况下,这些更新会带来性能提升,随着时间的推移逐渐改进模型,而无需进行重大发布。不过,偶尔,在小规模更新后,模型在编码任务中的性能可能会下降,但这几乎总是伴随着价格的降低。这可能是因为模型以某种方式进行了优化,例如通过量化或修剪其网络的部分。

图 9:小规模模型更新后模型性能和价格的演变
结论:小规模模型更新几乎总是会提高性能或降低成本。

5、结论:LLM 编码的关键要点

LLM 编码领域正在迅速发展,较新的模型经常将帕累托前沿推向性能更好和/或更便宜的选项。开发人员必须随时了解最新模型,以确定哪些模型在预算范围内提供最佳功能。认识到实际结果与基准之间的不一致对于做出明智的决策至关重要。通过仔细权衡性能与成本,开发人员可以选择最能满足其需求的工具,并在这个充满活力的领域保持领先地位。

以下是本文中所有结论的简要概述:

  • 比较 LLM 性能很难。
  • OpenAI 继续占据主导地位,在基准性能和实际使用方面处于领先地位。值得注意的是,o1-mini 是性能最佳的模型,优于其更大的对手 o1。
  • 更好的基准测试结果并不总是反映更好的实际性能。建议同时查看两个方面。
  • 阿里巴巴和 Mistral 倾向于创建在基准数据上过度拟合的模型。
  • 谷歌的模型在基准测试结果中被低估,因为它们注重公平的训练和评估。
  • 帕累托前沿由来自 OpenAI(高性能)或谷歌(物有所值)的模型组成。
  • 模型系统地变得更好,更便宜,几乎每个新模型发布都会出现这种趋势。
  • 专有模型继续保持性能成本帕累托前沿。
  • 小模型更新几乎总是能提高性能或降低成本。

原文链接:LLMs for Coding in 2024: Price, Performance, and the Battle for the Best

汇智网翻译整理,转载请标明出处