OpenAI 于今日发布了两款重要的新预览模型:o1-preview
和 o1-mini
(尽管名为“mini”,这同样是一个预览版)——此前有传言称它们的代号为“草莓”。要理解这些模型,我们需要知道它们并不像从 GPT-4o 简单升级那样简单,而是在成本和性能方面做出了一些重大的权衡,以换取提升的“推理”能力。
为思维链路训练
OpenAI 的简短介绍是一个很好的起点:
我们开发了一系列新的 AI 模型,它们在做出回应之前会花费更多时间进行思考。
将这些新模型视为思维链路提示模式的专业化扩展是一种思考方式——即“逐步思考”的技巧,这是我们社区在过去几年中一直在探索的,最初在 2022 年 5 月的论文《大型语言模型是零次推理者》中提出。
OpenAI 的文章《与 LLM 一起学习推理》解释了新模型是如何训练的:
我们的大规模强化学习算法教会了模型如何高效地使用思维链路进行有益的思考。我们发现,随着更多的强化学习(训练时计算)和更多的思考时间(测试时计算),o1 的性能持续改善。这种方法的扩展限制与 LLM 预训练有显著不同,我们仍在继续研究它们。
通过强化学习,o1 学会了磨练自己的思维链路并完善所使用的策略。它学会了识别和纠正错误。它学会了将棘手的步骤分解为更简单的步骤。当当前方法不起作用时,它学会了尝试不同的方法。这个过程极大地提高了模型的推理能力。
实际上,这意味着模型能够更好地处理需要回溯和“思考”的更复杂的提示,而不仅仅是下一个标记预测。
我不太喜欢“推理”这个术语,因为我认为在 LLM 的背景下它没有明确的定义,但 OpenAI 在这里已经决定使用它,我认为它在传达这些新模型试图解决的问题上做得足够好。
API 文档中的底层细节
关于新模型及其权衡的一些最有趣的细节可以在它们的 API 文档 中找到:
对于需要图像输入、函数调用或始终快速响应的应用,GPT-4o 和 GPT-4o mini 模型将继续是正确的选择。然而,如果你的目标是开发需要深度推理并能适应更长响应时间的应用,o1 模型可能是一个很好的选择。
我从文档中了解到的一些关键点:
目前,新的
o1-preview
和o1-mini
模型的 API 访问仅限于 5 级账户——你需要至少在 API 积分上花费 1000 美元。没有系统提示支持——模型使用现有的聊天完成 API,但你只能发送
user
和assistant
消息。也没有流式支持、工具使用、批量调用或图像输入。
“根据模型解决问题所需的推理量,这些请求可能需要几秒钟到几分钟不等。”
最有趣的是引入了“推理标记”——这些标记在 API 响应中不可见,但仍计入账单并计为输出标记。这些标记就是新魔法发生的地方。
由于推理标记的重要性——OpenAI 建议为从新模型中受益的提示分配大约 25000 个这些标记——输出标记限额已大幅增加——o1-preview
为 32768,而据说更小的 o1-mini
为 65536!这比 gpt-4o
和 gpt-4o-mini
模型当前的 16384 输出标记限制有所增加。
API 文档中的最后一个有趣提示:
在检索增强生成(RAG)中限制额外上下文:在提供额外上下文或文档时,只包含最相关的信息,以防止模型使响应过于复杂。
这与通常实施 RAG 的方式大不相同,通常的建议是尽可能多地将可能相关的文档塞进提示中。
隐藏的推理标记
一个令人沮丧的细节是,这些推理标记在 API 中仍然不可见——你得为它们付费,但你看不到它们是什么。OpenAI 在 隐藏思维链路 中解释了为什么:
假设它是忠实且清晰的,隐藏的思维链路允许我们“读懂”模型的思维并理解其思考过程。例如,将来我们可能希望监控思维链路,以寻找操纵用户的迹象。然而,为此工作,模型必须有自由以未修改的形式表达其思想,所以我们不能在思维链路上训练任何政策合规性或用户偏好。我们也不想让用户直接看到不一致的思维链路。
因此,在权衡了包括用户体验、竞争优势和追求思维链路监控在内的多个因素后,我们决定不向用户展示原始的思维链路。
这里有两个主要原因:一是围绕安全和政策合规性:他们希望模型能够在不暴露可能违反这些政策的中间步骤的情况下,推理它如何遵守这些政策规则。第二个是他们所说的竞争优势——我将其解释为想要避免其他模型能够针对他们已经投入的推理工作进行训练。
我对这项政策决定感到非常不满。作为一个开发 LLM 的人,可解释性和透明度对我来说至关重要——我可以运行一个复杂的提示,而评估该提示的关键细节却对我隐藏,这感觉像是一个大倒退。
示例
OpenAI 在他们的公告的 思维链路 部分提供了一些初始示例,涵盖了生成 Bash 脚本、解决填字游戏和计算中等复杂化学溶液的 pH 值等内容。
这些示例表明,这些模型的 ChatGPT UI 版本确实暴露了思维链路的细节……但它没有显示原始的推理标记,而是使用一个单独的机制将步骤总结成更易于人类阅读的形式。
OpenAI 还有两个新食谱,包含了更复杂的示例,我发现它们有点难以跟进:
使用推理进行数据验证 展示了一个多步骤的过程,用于在 11 列 CSV 中生成示例数据,然后以各种不同的方式进行验证。
使用推理进行例程生成 展示了
o1-preview
代码,将知识库文章转化为 LLM 能够理解和遵循的一组例程。
我在 Twitter 上询问了人们发现的在 GPT-4o 上失败但在 o1-preview
上成功的提示示例。我最喜欢的几个:
这个提示的回应中有多少个单词?
Matthew Berman 提出——模型在五个可见的回合中思考了十秒钟,然后回答“这个句子中有七个单词。”解释这个笑话:“两头牛站在田里,一头牛问另一头:‘你觉得那种疯牛病怎么样?’ 另一头说:‘谁在乎,我是直升机!’”
Fabian Stelzer 提出——这个解释是有意义的,显然其他模型在这里失败了。
尽管如此,伟大的示例仍然有些稀缺。这是来自参与创建这些新模型的 OpenAI 研究员 Jason Wei 的 一个相关说明:
AIME 和 GPQA 的结果非常强劲,但这并不一定能转化为用户能感受到的东西。即使是从事科学工作的人,也很难找到 GPT-4o 失败、o1 表现良好,并且我可以评分的提示片段。但当你确实找到这样的提示时,o1 感觉完全神奇。我们都需要找到更难的提示。
Ethan Mollick 已经预览了这些模型几周,并发表了 他的初步印象。他的填字游戏示例特别有趣,因为可见的推理步骤包括这样的注释:
我注意到 1 Across 和 1 Down 的首字母不匹配。考虑将 1 Across 的 “LIES” 更改为 “CONS” 以确保一致性。
这一切中的新东西
社区需要一段时间来确定这些模型的最佳实践应用时机和地点。我预计将继续主要使用 GPT-4o