原文:
towardsdatascience.com/llms-for-coding-in-2024-performance-pricing-and-the-battle-for-the-best-fba9a38597b6?source=collection_archive---------5-----------------------#2024-12-04
基于基准测试和实际世界的洞察,评估当前 LLM 的格局,帮助你做出明智的选择。
https://medium.com/@broekxruben?source=post_page---byline--fba9a38597b6--------------------------------https://towardsdatascience.com/?source=post_page---byline--fba9a38597b6-------------------------------- Ruben Broekx
·发布于 Towards Data Science ·11 分钟阅读·2024 年 12 月 4 日
–
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f7ff9f49d899a8ab06a59413877a8c5d.png
图片由 Flux.1 - Schnell 生成
用于编程的大型语言模型(LLM)的竞争格局从未如此激烈。像阿里巴巴、Anthropic、谷歌、Meta、Mistral、OpenAI 和 xAI 等主要厂商都在提供自己的模型,开发者比以往任何时候都有更多的选择。
但你如何选择最适合你编程用例的 LLM 呢?
在这篇文章中,我将深入分析通过公共 API 提供的顶级 LLM。我将重点关注它们在编码任务中的表现,评估基准如 HumanEval,以及它们在实际应用中的表现,反映在各自的 Elo 分数上。
无论你是在做个人项目,还是将人工智能集成到你的开发工作流程中,了解这些模型的优缺点将帮助你做出更明智的决策。
免责声明:比较 LLM 时的挑战
比较大型语言模型(LLMs)是很困难的。模型经常接收到更新,这些更新对它们的表现有着显著影响——例如,OpenAI 从 GPT-4 到 GPT-4-turbo 再到 GPT-4o,再到 o1 模型的更新。然而,即使是小的更新也会产生影响——例如,GPT-4o 自 5 月 13 日发布以来,已经收到了 3 次更新!
此外,这些模型的随机性意味着它们的表现可能会在不同的运行中有所不同,从而导致研究中的结果不一致。最后,一些公司可能会定制基准和配置——例如特定的 Chain-of-Thought 技术——以展示其模型的最佳表现,这会扭曲比较结果并误导结论。
结论:比较 LLM 的表现是困难的。
本文代表了基于现有信息对各种编码任务模型的最佳努力比较。我欢迎任何反馈,以提高此分析的准确性!
评估 LLM:HumanEval 和 Elo 分数
如上文免责声明所示,为了正确理解 LLM 在编码任务中的表现,建议从多个角度进行评估。
通过 HumanEval 进行基准测试
最初,我尝试从多个基准中汇总结果,看看哪个模型表现最好。然而,这种方法的核心问题是:不同的模型使用不同的基准和配置。似乎只有一个基准是评估编码表现的默认标准:HumanEval。这是一个由人类编写的编码问题数据集,评估模型根据特定要求生成正确和功能性代码的能力。通过评估代码补全和解决问题的能力,HumanEval 成为评估 LLM 编码能力的标准。
通过 Elo 分数展现人们的声音
虽然基准测试能很好地反映模型的表现,但也应谨慎对待。考虑到 LLM 是在大量数据上训练的,某些基准内容(或非常相似的内容)可能已经包含在这些训练数据中。这就是为什么基于人类评判的模型表现也值得评估。像Chatbot Arena(仅限编码)这样的 Elo 排名正是这样做的。这些分数来自 LLM 在编码任务中的对抗性比较,由人类评审员进行评估。模型彼此对抗,根据胜负调整 Elo 分数。Elo 分数显示了模型相对于池中其他模型的表现,较高的分数意味着更好的表现。例如,100 Elo 分数的差距意味着排名较高的模型在与排名较低的模型对抗时,预计会有约 64% 的获胜概率。
当前模型表现状态
现在,让我们检查一下当我们将这些模型的 HumanEval 分数与它们的 Elo 排名进行比较时,它们的表现如何。以下图像展示了当前 LLM 的编码领域,其中模型按创建它们的公司进行了聚类。每个公司的最佳表现模型都有注释。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f9f2105027c2e5e83d5b176afc8474ee.png
图 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 分和 2.5% 的 HumanEval 得分。
结论:OpenAI 继续占据主导地位,在基准测试表现和现实世界应用中位居榜首。值得注意的是,o1-mini 是表现最好的模型,超越了更大的对手 o1。
其他公司紧随其后,似乎都处于相同的“表现区间”内。为了更清晰地了解模型表现的差异,以下图表显示了每家公司最佳模型的胜率——由它们的 Elo 评分指示。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b2c8383cd3b78fc056360c79317e9527.png
图 2:每家公司最佳(编码)模型的获胜概率 — 如 Elo 评分的对决胜率所示。
基准测试结果与现实世界表现的不匹配
从图 1 可以看出,一个显著的特点是 HumanEval(基准测试)与 Elo 评分(现实世界表现)之间的错配。一些模型——如 Mistral 的 Mistral Large——在 HumanEval 得分上显著优于它们的 Elo 评分。其他模型——如 Google 的 Gemini 1.5 Pro——在 Elo 评分上显著优于它们获得的 HumanEval 得分。
很难知道何时信任基准测试,因为基准数据可能已经包含在模型的训练数据集中。这可能导致(过拟合的)模型记住并重复回答编程问题,而不是理解并真正解决问题。
同样,考虑到 Elo 评分是通过众包努力获得的,因此将其作为事实依据也是有问题的。这样做会在评分中引入人为偏见,偏向那些以特定风格输出、采用特定方法的模型……而忽视其他模型,这并不总是与一个客观更好的模型相符。
结论:更好的基准测试结果并不总能反映更好的现实世界表现。建议分别查看两者。
以下图像显示了 HumanEval 和 Elo 评分之间的不一致。所有模型都根据各自的得分进行排序,为了简化,忽略了“一个模型相较另一个模型有多好”的因素。它直观地展示了哪些模型在基准测试中表现更好,但在现实中表现较差,反之亦然。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/41d86c99ec635acbd5ffc82012ac298a.png
图 3:HumanEval 和 Elo 评分的错配 — 按公司颜色区分。为了简化,得分被转换为排名,从最差(左)到最好(右),分别显示在每个指标上。
图 4 通过进一步简化比较,进一步突出了基准测试和现实世界表现之间的差异。这里,图中显示了排名的相对差异,表明模型何时可能出现过拟合基准,或表现优于报告的结果。可以得出一些有趣的结论:
基准过拟合:阿里巴巴和 Mistral 两家公司都在不断推出那些在基准测试中表现更好,但在现实中表现较差的模型。它们最近的模型,包括阿里巴巴的Qwen 2.5 Coder(–20.0%)和 Mistral 的Mistral Large(–11.5%),也遵循了这一模式。
优于报告结果:Google 凭借其生产的模型,在实际表现上显著优于报告结果,尤其是其最新的Gemini 1.5 Pro模型,表现出*+31.5%的差异。Google 对“诚实训练与评估”的关注在其模型报告中得到了体现,并且他们选择开发自己的 Natural2Code 基准,而非使用 HumanEval。“Natural2Code 是一个涵盖 Python、Java、C++、JS、Go 等语言的代码生成基准。保留的数据集类似于 HumanEval,但未泄露在网络上。”* ~ Google 在 Gimmini 1.5 发布中。
平衡良好:Meta 在平衡基准与现实世界表现方面做得非常有趣且特别好。由于图中显示的是排名而非得分,这种稳定性也取决于其他模型的表现。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/aa4c2767d606e3c66e364f5de745a537.png
图 4:从 HumanEval 到 Elo 分数的表现差异——按公司着色。负分表示 HumanEval 优于 Elo(基准过拟合),而正分表示 Elo 优于 HumanEval(表现优于报告)。
结论:阿里巴巴和 Mistral 倾向于创建在基准数据上过拟合的模型。
结论:Google 的模型在基准测试结果中被低估,原因在于其专注于公平的训练和评估。
平衡性能和价格:提供最佳性价比的模型
在选择 LLM 作为编程伴侣时,性能并不是唯一需要考虑的因素。另一个重要的维度是价格。本节重新评估了不同的 LLM,并比较了它们在性能(由其 Elo 评分表示)和价格方面的表现。
在开始比较之前,值得注意的是一个例外:Meta。Meta 的 Llama 模型是开源的,并非由 Meta 自己托管。然而,鉴于它们的受欢迎程度,我仍然将其纳入其中。这些模型的定价是大三云服务商(Google、Microsoft、Amazon)提供的最优按需定价——通常是 AWS 的价格。
图 5 对不同的模型进行了比较,并展示了帕累托前沿。使用 Elo 评分来代表模型表现,这被认为是最好的选择,因为 Elo 评分是由人类评估的,并且不包括过拟合偏差。接下来,使用按需付费的 API 价格,所显示的价格为生成一百万个 token 的输入和输出 token 费用的平均值。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/06681166d54cbbbcce4e1bfaa2c6590c.png
图 5:按 API 价格分类的模型编码表现(Elo 评分)——按公司着色。组成帕累托前沿的模型已标注。
帕累托前沿仅由两家公司提供的模型构成:OpenAI 和谷歌。正如前面所提到的,OpenAI 的模型在性能上占据主导地位,并且它们的定价也相对合理。与此同时,谷歌似乎专注于较轻量——因此更便宜——但仍然表现良好的模型。这是有道理的,因为他们专注于适用于移动操作系统(Android)的设备端 LLM 应用场景,这对其战略具有重要价值。
结论:帕累托前沿由来自 OpenAI(高性能)或谷歌(高性价比)的模型组成。
下一个图表展示了在使用 HumanEval 而不是 Elo 评分来表示编码表现时的相似趋势。一些观察结果:
Anthropic 的Claude 3.5 Haiku是唯一的显著新增项,因为该模型目前还没有 Elo 评分。它有可能成为中端高性能模型的竞争者吗?
谷歌的Gemini 1.5 Pro和 Mistral 的Mistral Large之间的差异在前一节中已经解释过,该节将 HumanEval 评分与 Elo 评分进行了对比。
由于谷歌的Gemini 1.5 Flash 8B没有 HumanEval 评分,因此它被排除在这个图表之外。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/19e5baf158fc9df2476b763f433d0cde.png
图 6:按 API 价格分类的模型编码表现(HumanEval 评分)——按公司着色。组成帕累托前沿的模型已标注。
数据分析:额外的见解和趋势
总结一下,我将讨论一些在当前 LLM(编码)领域值得注意的额外见解。本节探讨了三个关键观察结果:模型随时间的稳定改进、专有模型的持续主导地位以及即便是微小的模型更新也能产生显著影响。所有这些观察结果都来源于图 5 所示的基于价格对比的 Elo 评分。
模型越来越好且越来越便宜
以下图表展示了新模型如何不断提高准确度,同时降低成本。值得注意的是,三个时间段——2023 年及之前、2024 年上半年和 2024 年下半年——每个都定义了自己独特的帕累托前沿,并几乎占据了完全不同的区段。期待看到这一趋势在 2025 年如何继续发展!
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e402dd3128c2ae5ddb402b2368a3d29b.png
图 7:由三个不同时间段所指示的时间演变——2023 年及之前、2024 年上半年和 2024 年下半年。
结论:模型变得越来越好且越来越便宜,这是几乎所有新模型发布时都能观察到的趋势。
专有模型依然占据主导地位
以下图片显示了哪些分析过的模型是专有的,哪些是开源的。我们看到,专有模型仍然主导着 LLM 编程领域。帕累托前沿仍然由这些“闭源”模型主导,无论是在高性能端还是低成本端。
然而,开源模型正在缩小差距。有趣的是,对于每个开源模型,都有一个具有相同预测性能且显著更便宜的专有模型。这表明专有模型要么更加轻量化,要么经过了更好的优化,因此需要更少的计算能力——尽管这仅仅是个人的推测。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/88a3f9134ef566b783e8c444111953d2.png
图 8:专有模型与开源模型的对比。
结论:专有模型继续保持性能-成本帕累托前沿。
即使是小的模型更新也会产生影响
以下这张图片展示了即使是相同模型的小更新也可能带来影响。通常,这些更新会带来性能提升,逐步改进模型,而无需进行重大发布。然而,偶尔某个模型在小更新后可能会在编程任务上表现下降,但这通常伴随着价格的降低。这可能是因为模型以某种方式进行了优化,比如通过量化或剪枝其网络的一部分。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/48c128f76b057bdb0e24e317d58d839b.png
图 9:小模型更新的性能和价格演变。
结论:小的模型更新几乎总是能提高性能或降低成本。
结论:LLMs 在编程中的关键要点
LLM 在编程领域的格局正在迅速发展,新模型不断推动帕累托前沿向更高性能和/或更便宜的选项迈进。开发者必须保持对最新模型的关注,以识别那些在预算内提供最佳功能的模型。认识到现实结果与基准测试之间的不一致性对于做出明智的决策至关重要。通过仔细衡量性能与成本,开发者可以选择最符合自己需求的工具,并在这个动态变化的领域中保持领先。
以下是本文所做的所有结论的快速概览:
比较 LLM 性能是很困难的。
OpenAI 继续主导市场,在基准性能和实际应用中位居前列。值得注意的是,o1-mini 是表现最好的模型,超越了更大的 o1 模型。
更好的基准结果并不总是意味着更好的现实世界表现。建议分别独立查看两者。
阿里巴巴和 Mistral 倾向于创建在基准数据上过拟合的模型。
谷歌的模型在基准测试结果中被低估,因为它们更注重公平训练和评估。
帕累托前沿由来自 OpenAI(高性能)或 Google(物有所值)的模型组成。
模型在不断系统性地提高性能并降低成本,这一趋势几乎出现在每一次新模型发布中。
专有模型仍然占据着性能-成本的帕累托前沿。
小幅的模型更新几乎总是能提高性能或降低成本。
觉得有用吗?欢迎在LinkedIn上关注我,查看我接下来的探索!
本文中展示的图像由我本人创作,除非另有说明。