[博客翻译]OpenAI新o1思维链模型说明


原文地址:https://simonwillison.net/2024/Sep/12/openai-o1/


OpenAI 发布了两个主要的新预览模型o1-previewo1-mini(这个 mini 版本不是预览版)——此前传闻的代号为“strawberry”。这些模型有许多需要理解的地方——它们并不像 GPT-4o 的简单升级,而是在成本和性能方面做出了一些重大权衡以换取改进的“推理”能力。

训练用于思维链 #

OpenAI 的简介是一个很好的起点:

我们开发了一系列新的AI模型,设计用于在响应前花更多时间思考。

可以将这些新模型视为对思维链提示模式的一种专业扩展——我们社区过去几年一直在研究的那种“逐步思考”的技巧,首次在2022年5月发表的论文《Large Language Models are Zero-Shot Reasoners》中介绍。

OpenAI 的文章Learning to Reason with LLMs解释了如何训练新模型:

我们的大型强化学习算法教会模型如何高效地使用其思维链进行生产性的思考。我们发现,o1 模型的表现随着更多的强化学习(训练计算时间)以及更多的时间来思考(测试计算时间)而持续改善。扩大这种做法所需资源的方法与 LLM 预训练所需的资源方法大不相同,并且我们正在继续调查这些因素。

[...]

通过强化学习,o1 学会了细化并完善其思维链及所用策略。它学会了识别和纠正其错误。它学会了将复杂步骤分解成更简单的步骤。当目前的方法行不通时,它学会了尝试不同的方法。这一过程显著提升了模型的推理能力。

实际上,这意味着模型能更好地处理复杂的请求,在该请求的情况下,一个良好的结果需要回溯和超越单纯的下一个标记预测进行“思考”。

我不太喜欢术语“推理”,因为我认为在 LLM 的上下文中它没有一个坚固的定义,但 OpenAI 在这里决定使用这个词,并且我认为它恰当地传达了这些新模型试图解决的问题。

API 文档中的低级细节 #

有关新模型及其权衡的一些最有趣的细节可以在其API 文档中找到:

对于需要图像输入、函数调用或一致快速响应的应用程序,GPT-4o 和 GPT-4o mini 模型将继续是最佳选择。然而,如果你的目标是开发需要深度推理并且能够接受更长响应时间的应用程序,则 o1 模型可以是极好的选择。

我在文档中注意到的一些关键点包括:

  • 对新 o1-previewo1-mini 模型的 API 访问目前仅限于等级五账户——你需要花费至少$1,000购买 API 信用额
  • 不支持系统提示——模型使用现有的聊天完成API,但你只能发送 userassistant 消息。
  • 也不支持流式传输、工具使用、批量调用或图像输入。
  • “根据模型解决问题所需的推理量,这些请求可能从几秒钟到几分钟。”

最有趣的是引入了“推理标记”——这些标记不会出现在 API 响应中,但仍会被计费并计算为输出标记。这些标记产生了新的“魔法”。

由于推理标记的重要性——OpenAI 建议为受益于新模型的请求分配大约 25,000 个此类标记——输出标记容量已经被大幅增加——o1-preview 为 32,768 个,据传较小的 o1-mini 为 65,536 个!这些增加的数量分别来自于 gpt-4ogpt-4o-mini 模型,这两者目前都有 16,384 个输出标记限制。

最后一条有趣的建议来自该 API 文档:

限制检索增强生成(RAG)中的额外上下文:在提供额外上下文或文档时,请仅包含最相关信息,以免模型过于复杂化其响应。

这一点与通常实现 RAG 的方式形成了巨大的变化,通常会建议尽可能多地将潜在相关文档塞入提示中。

隐藏的推理标记 #

一个令人沮丧的细节是这些推理标记在 API 中仍然是看不见的——你会为它们付费,但不能看到它们是什么。OpenAI 在Hiding the Chains of Thought中解释了为什么:

假设这些隐藏思维链忠实且清晰可读,我们可以借此“读懂”模型的思维过程。例如,将来我们可能希望监控思维链以查看模型是否有操纵用户的行为。然而,要实现这一点,模型必须有自由表达自己未经修改的思想的权利,因此不能在思维链上加入任何政策合规性或用户偏好的训练。我们也不希望将未对齐的思维链直接暴露给用户。

因此,在综合考虑包括用户体验、竞争优势以及实施思维链监控选项等多个因素之后,我们决定不向用户展示原始思维链。

这里有两个主要原因:一是围绕安全性和政策合规性:他们希望模型能够不揭示中间步骤就能推理如何遵守这些政策规则,以防中间过程中出现违反政策的信息。另一个原因被称作竞争优势——我理解为希望避免其他模型能够针对其已投入推理工作的模型进行再训练。

我对这项政策决定一点都不满意。作为一个开发 LLM 解释性和透明度至关重要的开发者,无法看到一个复杂请求是如何被评估的关键细节感觉像是巨大的倒退。

示例 #

OpenAI 在其Chain of Thought部分提供了初始示例,涵盖了生成 Bash 脚本、解填字游戏以及计算化学溶液pH值等事情。

这些示例表明,ChatGPT UI 版本的模型确实暴露了思维链的细节……但它不显示原始推理标记,而是使用单独机制将步骤总结成更易读的形式。

OpenAI 还有两个包含更复杂示例的新手册,我发现有点难以理解:

我在 Twitter 上提问询问人们是否能找到一些 GPT-4o 失败但在 o1-preview 上成功的工作例子。其中一些我喜欢的例子:

  • How many words are in your response to this prompt? by Matthew Berman—the model thinks for ten seconds across five visible turns before answering “There are seven words in this sentence.”
  • Explain this joke: “Two cows are standing in a field, one cow asks the other: “what do you think about the mad cow disease that’s going around?”. The other one says: “who cares, I’m a helicopter!” by Fabian Stelzer—the explanation makes sense, apparently other models have failed here.

Great examples are still a bit thin on the ground though. Here’s a relevant note from OpenAI研究员Jason Wei,他在创建这些新模型方面有所贡献:

在AIME和GPQA上的结果确实很强劲,但这并不一定转化为用户能够感受到的东西。即使作为一名从事科学研究的人,也很难找到GPT-4o失败、而o1表现良好并且我能对其答案进行评分的提示片段。但当你找到这样的提示时,o1的感觉完全是神奇的。我们都需找到更难的提示。

Ethan Mollick已经在预览这些模型几个星期,并发表了他的初步印象。他的填字游戏示例尤其有趣,因为其中包含的可见推理步骤,其中包括类似这样的笔记:

我注意到1 Across 和 1 Down的第一个字母不匹配。考虑用“CONS”代替“LIES”以确保对齐。

这一切中有什么新的 #

社区将需要一段时间来确定何时何地应应用这些模型的最佳实践。我预计将继续主要使用GPT-4o(及Claude 3.5 Sonnet),但看到我们共同扩展对可以在这种新型模型下解决的任务种类的心理模型,将会非常有趣。

我预计其他AI实验室,包括开放模型权重社区,将开始复制这些成果,推出他们自己版本的经过专门训练以应用这种链条式思考推理方式的模型。