跳到正文
Modal Blog· Charles Frye·· 2024-08-05精选AI 评分62

用 100 个 LLaMA 3.1 8B 在 HumanEval 上追平 GPT-4o

Beat GPT-4o at Python by searching with 100 dumb LLaMAs

AI 导读

Modal 团队用 LLaMA 3.1 8B Instruct 在 HumanEval 上做多次采样搜索,pass@100 达到 90.5%,略高于 GPT-4o 报告的 pass@1 90.2%,pass@1000 则升至 95.1%。

推荐理由

作者用不到 50 美元复现了搜索扩展的核心结论,读者可据此理解小模型靠多次采样逼近前沿模型的条件。

正文 · AI 翻译

从苦涩教训中应该学到的一件事是通用方法的巨大力量,即随着可用计算量变得非常大,这些方法仍能随着计算量的增加而持续扩展。似乎能以这种方式任意扩展的两种方法是搜索和学习。

Richard Sutton,苦涩的教训

Richard Sutton 那篇文章中同名且令人不快的结论常常被误解:他们说,既然规模就是一切,那么更小的模型注定无关紧要。模型规模迅速增长到超过一万亿参数,加上 GPU 内存的技术限制,似乎共同排除了在智能即服务提供商寡头垄断之外的任何地方实现经济的前沿智能的可能性。开放模型和自助推理正在退却。

但正如上面的引文所示,扩展的箭袋里其实有两支箭:学习和搜索。学习,正如我们现在用神经网络所做的那样,在推理时随内存扩展——在其他条件相同的情况下,更大的模型表现更好,因为它们能从训练集中提取更多数据,转化为更多电路和更多模板。搜索在推理时随计算平滑扩展——这些计算可以用于生成更高质量的候选,也可以用于生成更多候选。在理想情况下,扩展行为可以通过所谓的扩展定律来预测。

最近的论文表明,像 LLM 这样的生成模型可以通过搜索来扩展。Large Language Monkeys 论文由 Brown、Juravsky 及合著者上周发布在 arXiv 上,其中包含若干此类结果,并表明某些领域的前沿级智能可以从更小的模型中引出,这些模型可以在一块上一代 GPU 上运行。 此外,他们观察到性能随规模呈现平滑、可预测的提升。

更简单地说:以前,前沿能力似乎需要一只马那么大的鸭子,而现在很明显,我们也可以用一百只鸭子那么大的马(或者更确切地说,LLaMA)来获得它们。

这个周末,我们着手复现这一发现。

在 Modal 上扩展 LLaMA 3.1 8B HumanEval

运行我们所有的实验,包括配置和测试,花费远低于 50 美元。

你可以在这里找到我们的代码。你可以在不超过 Modal 免费层包含的每月 30 美元额度的情况下自行运行它。

指标与数据:HumanEval 和 pass@k

我们选择了一个 Large Language Monkeys 论文未涵盖的数据集:HumanEval,这是一个名字有些误导性的数据集,包含来自 OpenAI 的 Python 函数规范及其测试。

这些测试的存在对于启用搜索至关重要。任何候选解决方案都可以通过针对测试运行来评估——评估 HumanEval 不需要人类。这意味着可以客观地评估正确性,而不会出现困扰 LLM 作为评判者方法的那些问题。Large Language Monkeys 论文进一步表明,多数投票和其他技术很快就会偏离其扩展定律。

我们着手证明,通过多次运行 LLaMA 3.1 8B Instruct,我们可以在 HumanEval 上达到或超过 GPT-4o 的性能。性能通过“pass@k”指标衡量:即 LLM 生成的 k 个程序中,至少有一个通过测试的概率。我们还考虑“fail@k”,即没有程序通过测试的概率,它总是 1 - pass@k。结果聚合器 PapersWithCode 报告 GPT-4o 的 pass@1 性能为 90.2%(0-shot,取自 Claude 3.5 Sonnet 评估),因此这就是我们的目标。

基础设施:LLM 推理

我们使用 Modal 的无服务器 GPU 进行了实验。较小的模型通常更适合无服务器方法,因为它们可以更快地从远程存储或磁盘加载。GPU 的算术吞吐量比磁盘的读取吞吐量高出许多数量级(H100 FLOP 吞吐量以 PB/s 为单位),因此通常用更多的计算时间换取更少的加载时间是个好主意。当然,这意味着你要确保设置时间尽可能快,正如我们在 Modal 通过重写容器栈所做的那样。

我们的实验得益于开源的 vLLM 推理服务器软件。去年对使用 LLM 扩展搜索的初步研究的后续工作因需要实现高性能缓存机制而放缓。这些机制现在是推理服务器的标准部分,由 vLLM 首创。缓存确保重复处理的 token 序列(如正在搜索解决方案的提示)在搜索规模方面只产生恒定成本。执行批量推理就像将我们通用 OpenAI 兼容客户端的 ChatCompletion 请求中的 n 参数更改为在 Modal 上以 OpenAI 兼容模式运行的 vLLM 服务器一样简单。查看本指南了解有关在 Modal 上运行 OpenAI 兼容 LLM 的更多详细信息。

我们扩展到十个 A100-40GB GPU,在没有特别关注调优的情况下达到了约 40,000 个输出 token/秒——这是 vLLM 相对于其他(名义上性能更高)推理服务器的明显优势。这个规模与 Modal 的免费层兼容,但在 Modal 上运行的企业可以轻松扩展到至少两个数量级,即 4,000,000 输出 token/秒。随着我们新的降价,每百万输出 token 的成本约为 0.25 美元,与专用推理即服务提供商相比具有竞争力——并且对您的部署有更大的控制权。

基础设施:评估

评估模型的输出需要执行任意 Python 代码,这意味着我们需要一种安全隔离的技术。对于仅提供推理即服务或无服务器 GPU 的平台来说,这将是一个棘手的问题。幸好我们有 Modal Sandboxes!Sandboxes 使用与 Modal 其他部分相同的快速启动、安全容器化技术,但提供了在程序执行过程中动态创建和拆除的简单接口。

再次限制在 Modal 免费层的并发限制内,我们能够并行运行约 3,000 个测试(100 个节点上每个节点 32 个工作进程)。这足以满足我们的需求,因此我们没有进一步推进评估的扩展。

匹配并超越 GPT-4o 的性能

我们能够用新模型(他们使用的是 LLaMA 3 系列,我们使用的是 LLaMA 3.1)和新数据集(他们展示了 GSM8K 等数学数据集以及软件工程数据集 SWE-bench 的结果,我们使用的是 HumanEval)复现 Large Language Monkeys 论文的核心结果。

具体而言,我们发现(在最小限度的提示调优且不调整其他超参数的情况下)我们可以将 LLaMA 3.1 8B 的性能从仅生成一次时的 66.4% 提升到生成 100 次时与 GPT-4o 相当的水平(90.5% 对 90.2%),并在生成 1000 次时取得明显更优的性能(95.1%)。

Results for LLaMA 3.1 8B on HumanEval pass@k demonstrating better performance than GPT-4o pass@1 for 100 or more samples LLaMA 3.1 8B 在 HumanEval 上的 pass@k,k 从 1 到 1000,与 GPT-4o 报告的 pass@1 性能对比。

我们还发现,我们在 HumanEval 上的结果在三个数量级范围内都可以平滑预测(“遵循缩放定律”)。我们更喜欢以下呈现方式,它将“pass@k”反转为“fail@k”,并对两个坐标轴都做对数变换。

Results for LLaMA 3.1 8B on HumanEval fail@k demonstrating smooth log-linear scaling across three orders of magnitude LLaMA 3.1 8B 在 HumanEval 上的 fail@k,k 从 1 到 1000,与 GPT-4o 报告的 fail@1 性能对比。
两个坐标轴都经过对数变换。

请注意,这些结果与严格意义上对原论文结果的“复现”不同。相反,这些是对核心主张的复现,即当辅以搜索时,较小的模型能够以可预测的方式超越较大的模型。我们认为,对于底层工作的工业相关性而言,这比严格意义上的复现是更强的信号。

接下来是什么?

搜索是一种强大的技术,可用于改进智能系统,但在过去十年聚焦于(深度)学习的背景下,它相对未得到充分重视。

搜索之所以强大,正是因为它可以被透明地扩展。用 Richard Sutton 的话说,搜索“随着计算量的增加而继续扩展,即使可用计算量变得非常巨大”。Modal 的设计正是为了让可用计算量变得真正巨大。搜索还将资源消耗的平衡从内存转向计算,而由于半导体趋势,这在历史上一直是一种制胜之举。并非巧合的是,这有利于 Modal 的无服务器执行模型。

搜索依赖于对结果的高质量评估。近期数学领域令人瞩目的成果,例如 DeepMind 的 AlphaProof 和 AlphaGeometry 2 在 2024 年国际数学奥林匹克竞赛中获得银牌,得益于将非正式的自然语言数学问题翻译为 Lean 中的形式化陈述,从而能够由证明验证器/编译器进行详细监督。形式化所带来的数学工作并行化程度的提高,也在最近验证第五个忙碌海狸数为 47,176,870 的过程中发挥了作用。

根据 Curry-Howard-Lambek 对应,数学证明可以被等同于计算机程序。我们可以预期,在编程中使用生成模型时,通过将它们与编译器和测试套件配对,也能获得类似的收益,正如我们的小型实验以及原论文在 SWE-bench 上的实验那样。

将这一技术扩展到数学和编程之外的领域并不明显——你如何有效地搜索对“写一封电子邮件给我的保险公司,对这一索赔拒赔提出异议”或“总结这封电子邮件”这类开放式自然语言回复?但我们可以大致预期,生成模型在那些能够精确指定并加速其结果测量、进而进行搜索的领域中,性能将获得相应提升。可重复的数字环境中的智能体似乎是一个值得瞄准的良好前沿。

从这个角度来看,搜索是评估的下游。因此,许多AI工程师正在提出这一主张:评估是生成模型应用产品化和持续改进中缺失的一环。

来源:Modal Blog · modal.com