本文主要是对OpenAI o1 的逆向工程分析。OpenAI 推出了新的推理系统 o1,这是一个基于强化学习(RL)训练的语言模型,旨在处理复杂的推理任务。o1 与传统的自回归语言模型不同,它在推理时进行在线搜索,并且推理过程中的计算成本显著增加,展示了新的推理扩展规律。尽管 o1 目前只是一个原型,尚未达到产品市场契合度,但它代表了 AI 未来发展的方向。OpenAI 对 o1 的发布采取了透明的态度,承认自己也不完全知道如何最有效地使用该模型,并希望通过用户反馈来完善其功能。

  1. o1 系统的特性

    • o1 是通过强化学习(RL)训练的,特别注重长推理链条的生成。
    • 与传统语言模型不同,o1 在推理过程中进行在线搜索,并且花费更多的推理计算资源,这表明推理扩展规律的存在。
    • o1 的推理过程更接近于闭环控制系统,而不是简单的自回归生成。
  2. 强化学习的作用

    • o1 的训练依赖于强化学习中的“链式思维”方法,系统在推理过程中不断改进自己的表现。
    • 强化学习的成功使得 o1 能够在训练时有效探索新的推理路径,并通过更多的推理时间提高模型性能。
    • 推理过程中的每一步都可能获得奖励,帮助模型识别并纠正推理中的错误。
  3. 发布背景与未来展望

    • o1 的发布被视为一种“预览”,类似于早期的 GPT-3 发布,而非像 ChatGPT 那样的成品。
    • OpenAI 还没有完全确定 o1 的最佳应用场景,并希望通过用户反馈来定义其用途。
    • 尽管 o1 目前的表现尚未达到顶级,但它展示了未来 AI 系统中可能采用的推理和决策方法。
  4. 推理过程与计算成本

    • o1 的推理过程非常昂贵,尤其是在推理时生成多个候选答案并进行评分的情况下。
    • OpenAI 提供的推理时间计算表明,o1 的推理成本并不随着生成的令牌数量呈线性增长,而是受到推理深度和广度的影响。
    • 目前 o1 的推理价格为每百万输入令牌 $15,每百万输出令牌 $60。
  5. 未来的挑战

    • 要在开源社区中复制 o1 的训练过程将非常困难,因为需要大量复杂的前向推理路径和对比示例。
    • o1 的成功依赖于大量计算资源以及精细的强化学习过程,这对其他公司和研究机构来说是一个巨大的挑战。
    • 随着 o1 系统的发展,它可能会被整合到 ChatGPT 等产品中,用于处理更复杂的任务。

总结来说,o1 是 OpenAI 推理系统的一次重要尝试,展示了未来 AI 推理模型的发展方向,尽管目前仍处于原型阶段,但它的技术潜力巨大。

对 OpenAI o1 的逆向工程分析

OpenAI 发布了他们全新的推理系统 o1。该系统在早期 Q* 研究的基础上进一步发展,并结合了最近有关 Strawberry 的传闻,旨在推出一种应对复杂任务的新型 AI 交互方式。o1 通过训练模型掌握长推理链,并广泛应用强化学习 (Reinforcement Learning) 来不断优化推理效果,并以大规模方式部署。与传统的自回归语言模型不同,o1 能够为用户进行在线搜索,并在推理过程中投入更多的计算资源。这证实了新的“推理扩展规律 (Inference Scaling Laws)”的存在。

目前,o1 仍处于原型阶段,还未发展为一个完整的产品。这个名字“o1”也较为模糊(“o”代表 OpenAI),其产品定位不像 ChatGPT 那样明确。尽管如此,o1 依然表现出极大的潜力与独特性,可以被看作是 AI 未来发展趋势的预览版。AI 技术的进步持续快速推进,尽管其能力增长已经超出预期,但这种增长反而在一定程度上减少了市场风险。

OpenAI 公布了大量关于 o1 系统的信息[^1],包括介绍训练方法的 博客文章、关于 o1 预览版模型的 文章、以及关于 o1 mini 模型的 详细说明、一份关于安全测试的系统卡片、以及未来推理模型的使用文档。他们还邀请了 AI 社区的知名人士进行预览测试,因此目前已有很多 关于该系统的看法 被公开讨论。

在这些发布信息中,OpenAI 强调了他们目前对如何使用该模型尚无明确结论。o1 是一个具有探索性质的系统,名称模糊,旨在通过用户反馈来帮助其完善。OpenAI 的应用研究负责人 Boris Power 如此形容:

这次发布更接近最初 GPT-3 的发布,而非 ChatGPT 的发布。这是一种全新的范式,一些人会发现它在某些我们 OpenAI 尚无法预见的领域中极具价值。

然而,这还不是一个可以轻松为所有人带来新价值的产品。

我相信我们很快会迎来另一个 ChatGPT 的高光时刻!

我们早就预见到这次发布的到来。去年十一月,OpenAI 内部在经历领导层动荡时发生了 首次泄密,提到“在庞大计算资源的支持下,新模型能够解决一些数学问题”。从那时起,OpenAI 一直在努力使这些成果稳定化,并将其包装成可用的产品。在我看来,Q* 是一种通过推理树搜索来获得高价值路径的方法。这些泄密的原因是研究人员首次看到该系统的训练效果时非常兴奋,认为这种方法是可行的。

这也是训练 Strawberry 模型的步骤之一。Strawberry 是一个通过 Q* 训练的模型,能够在生成文本的过程中进行推理。这样的模型是完整 o1 系统运作的关键。当提到 o1 时,最好将其视为一个完整的系统。尽管它可能会依赖于一个高级语言模型,但将各种计算操作汇集并重新利用的过程非常复杂,能够为用户提供连贯的输出。这种模式比我们在语言模型领域以往所见的任何东西都更接近闭环控制。

扩展 o1 系统必然是一项艰巨的任务。尽管目前它仍处于预览阶段,但如果参考之前 AlphaGo 等强化学习突破的实际应用,OpenAI 现在有很多方向可以进一步发展 o1。作为一个核心推理引擎,o1 可以被细化、探索,并被用于开发未来的一系列产品。

强化学习在这里的成功具有重要意义。乍一看这些描述似乎平淡无奇,但深入了解其工作原理将会让人更加印象深刻。

我们的大规模强化学习算法教会模型如何在一个数据利用效率非常高的训练过程中,通过推理链 (Chain of Thought) 进行更有效地思考。我们发现 o1 的性能会随着训练时更多的强化学习计算资源以及测试时更多的思考时间而不断提升。与大语言模型预训练不同,这种方法在扩展性上的限制截然不同,我们还在继续研究这些限制。

这项突破将会成为 AI 历史上的一个里程碑。推理上的投入现在是值得的(就在几周前,我还公开表示我们应该在推理方面投入更多资源)。

xx

发布的模型在基准测试的得分和图表中并非最顶尖的,而是处于中游。先看一下展示 o1 预览版本与完整 o1 模型相对位置的图表。

xx

这表明,在这些基准测试中,我们所使用的模型介于 GPT-4o 和 o1 改进版之间。o1 在其他测试中表现参差不齐,例如在 ARC-AGI 测试中与 Claude 3.5 sonnet 表现相似,以及在 aider 编码挑战中表现平平。有些方面它表现非常出色,但在其他领域表现较差。OpenAI 还分享了完整 o1 系统(非预览版)的更多测试结果。

xx

从这些 AIME 得分来看,我们可以将其与早期的训练和推理性能图相对应,表明 o1 预览版只是完整 o1 系统的一个大幅缩减版本。

这是 OpenAI 在模型发布时常见的一些考量因素,或者说是多方面的原因。

  • 他们无法负担将“最强”配置提供给用户。
  • 他们没有足够的基础设施来部署最终配置。
  • 最终配置可能不符合他们的安全标准。

除此之外,还有其他类似的原因。无论这次发布是否因为战略需要而仓促推出,这个模型都标志着 AI 领域的范式转变。Jim Fan 概述了下一代 AI 系统计算消耗的变化趋势,这也预示着将逐渐过渡到真正的语言模型智能体。

这种方法并不适用于所有查询。未来,ChatGPT 将整合 o1,并根据你的查询自动选择合适的模型。对于简单的查询,这个系统会消耗大量额外的 Token,比如下图中的 225 个 Token。一般的模型可能只需要 10 到 12 个 Token,就能解决同样的问题,相当于减少了十倍的计算量。

OpenAI 的 o1 是第一个在大规模部署中实现文本搜索的产品,这是一个重大的突破,将改变 AI 产品的部署方式和市场预期。o1 是一个桥梁示例,帮助从现有的语言模型过渡到未来的智能体产品。

o1 的训练采用了一种基于强化学习(Reinforcement Learning, RL)的“搜索”算法,但目前尚不清楚它是如何服务于用户的——也就是说,在测试时是否使用了多个模型。在开发者 AMA 中,一位 OpenAI 的代表表示 o1 是一个“模型”,而不是一个“系统”,但这可能并未透露所有的信息。

语言模型能够处理极其复杂的上下文,而现代的推理基础设施非常适合进行只向前生成(不回溯),因为它可以缓存生成过程中的上下文步骤。通过观察 OpenAI 提供的一些推理轨迹,我们可以看到模型在回答过程中会东拉西扯。相比之下,通过回溯来编辑上下文在大规模服务中会更加困难。

大多数强化学习专家在不能撤销回合的领域(如竞技游戏)中积累了经验,因此仅向前生成的领域更符合智能体-环境框架。在这种情况下,状态和行为是混合在一起的,行为是新的 Token,一旦生成就会立即添加到长上下文状态中。处理这些复杂的轨迹正是 o1 的核心挑战之一。

让我们来定义这个 RL 问题的奖励机制。传统的从人类偏好中进行强化学习的问题是,整个推理过程只能获得一个二元偏好奖励,因此很难让模型理解每一步推理中的错误。最近的研究通过设计奖励模型来为推理的每一步评分,从而绕过了这个问题。

OpenAI 的论文《Let’s Verify Step By Step》是逐步奖励模型(也叫过程奖励模型)的一个经典示例。下图展示了绿色的步骤代表高奖励,而红色的步骤则表示低奖励。

如果将这种奖励机制与基于结果的奖励模型或启发式结合(例如告诉系统它得出了正确答案,可能还包括一个长度惩罚,以防止它生成过多无意义的内容来避免负回报),系统就能为每一步推理步骤分配奖励,朝着最终答案推进。在上面的例子中,推理过程可以从第 9 步(第一个错误标签)重新开始,然后 RL 智能体可以在多个相似的轨迹中根据奖励差异进行选择。

在强化学习训练中,轨迹只需在生成后获得奖励标签。模型的行为可能最初与 GPT-4o 非常相似,但随着奖励的驱动,模型会探索新的状态空间,以解决更具挑战性的问题。相比传统的 RLHF,全状态的 RL 将更加依赖于探索和发现新的推理步骤。如果没有足够的探索,o1 无法通过更多的训练时间和计算资源来持续提高性能。更多的 RL 可能会停滞,甚至因为没有足够的状态多样性探索而过拟合。

目前还没有类似的模型出现在更加开放的模型中。Reflection 70b 类型的模型看起来更像是通过特殊提示词展示了 GPT-4o 的特性,而不是探索。大多数 RL 专家都认为探索是在线学习智能体中最重要的部分。

带有不同奖励特征的多样化轨迹是强化学习训练的经典数据。多年来,人们已经意识到,实际的优化器实现并不如初始数据和环境设置重要。对于 o1 衍生的 RLHF 过程而言,关键是奖励模型是环境的一部分。RLHF 和传统的 RL 不同,因为它涉及许多不同的控制要素,因此迟早会有人在语言模型的环境中做出特别的限制。在 o1 之后,还会有更多的突破。

这种状态空间的复杂性在之前的任何 RL 成功案例中都是前所未有的。最近的成功案例大多类似于 AlphaGo 或者一些游戏,这些场景中行为由高保真度的模拟器或规则集控制。在这里,模型需要处理长达 10 万到 20 万个 Token 的序列(这可能包含一些尚未广泛应用的高级分层 RL)。

在语言模型上的 RL 最成功的部署是通过近端策略优化(Proximal Policy Optimization)等策略梯度算法。这些模型会学习一个表示过去状态标量值的价值模型。我想知道这些价值模型是否在最终行为中有任何实际意义。它们是系统每次与世界交互时学习的基础。这是让这种系统真正发挥作用的众多关键点之一。多家公司和学术界现在将开始复制这种训练设置的漫长过程。

在每次调用 o1 模型时,多少强化学习过程被触发?要回答这个问题,需要了解 OpenAI 的大量背景信息、定价策略和最新文献。这种模型的推理成本非常高,但并不是因为模型规模更大。首先使用强化学习来训练更大的模型是个疯狂的想法。最多,o1 模型的规模与 GPT-4o 类似。我怀疑它可能更小,因为它需要生成大量 Token,并且每个 Token 要进行更多的操作(比如对自身进行评分)。

如果模型并没有大得多,那么我们需要思考模型的推理成本为何如此之高。o1-preview 的费用是每百万输入 Token 15 美元,每百万输出 Token 60 美元。这与 Claude 3 Opus 的费用相同(至少在 Opus 发布时),可能现在已经降价了。这一费用还适用于那些没有展示给用户的中间推理 Token。如果模型并没有显著变大,且生成的 Token 不多,那么计算资源花费在何处?我猜可能是一种形式的并行解码,我们可以称之为强化学习语言模型解码(不同于常规的自回归模型)。

对于通过模糊摘要展示给用户的每个推理步骤,o1 模型会生成多个候选答案,并在步骤结束时对它们进行评分。对于用户而言,这个数量是固定的。在评估中,OpenAI 可以改变候选答案的数量(他们表示希望将这种推理强度控制开放给用户)。

这种并行和分支的生成方式需要与普通聊天机器人完全不同的推理架构,这也解释了高昂的价格和“未来价格会下降的预期”。这类生成操作构成了前面 RL 部分中提到的行动,由于环境的灵活性,它们在生成长度上可能会有很大差异。

本质上,它是一个模型,但同时集成了生成模型和过程奖励模型,并且使用了我们从未见过的生成策略。这可能是一个带有特殊评分 Token 的生成模型,或者是一个带有单独回归头的生成模型,可以在生成时交替使用。OpenAI 所说的“只有一个模型”其实包含了很多内容。

xx

按提示收费的定价方式,似乎更符合 o1 模型的行为及其描述方式,但实际上,OpenAI 尚未对其进行足够的限制来实现这一点。新的生成范式解释了为什么公开它的成本如此高——它在流式处理上与现有模型完全不同。当每个步骤都需要并行计算时,流式处理无法发挥作用。

对于用户部署来说,分支(候选步骤)的数量是固定的。而在内部,开发者可以调整数量(未来也会向用户开放这个功能),从而创建上面展示的测试时缩放图。

这些情况并非完全确定,但我很高兴能够回归到我在模型驱动强化学习 (model-based RL) 和在线规划方面的背景。以下是我在考虑这一新的解码过程时提出的一些问题。

通过观察模型的行为痕迹可以发现,它明显不同于我们最近接触的任何语言模型。它会喋喋不休、提出疑问,但最终仍能得出睿智的答案。模型在重复的短语如“等等,这对吗?”或类似人类的“嗯嗯”时,似乎会做出不同的动作。这些都是推理方向可能发生变化的重要节点。

在自回归模型 (autoregressive model) 中得到这种结果是相当罕见的。我们已经发现,自回归模型一旦偏离轨迹,通常会持续犯错。而强化学习 (RL) 智能体可以检测到自己偏离了预设的路径,并进入“探索”模式,在此模式下,它们会采取更多随机的行动来找到状态空间中更有价值的区域。

有两方面的证据支持 o1 是一种部署了多组件的语言模型搜索系统的假设。通过引入外部验证器的生成过程奖励模型,也可以实现我上述提到的效果。具体的实现方式可能因扩展性不同而异,但将模型视为独立模块可以帮助我们理解各项能力需求。

  1. 上面分享的测试时计算量图表。语言模型的计算成本不会随着生成更多 Token 的自回归过程呈对数增长。至少从图表上看不是这样。OpenAI 至少在训练阶段,可以通过调节搜索深度、广度或启发式计算(对搜索节点打分)来增加计算量。

  2. OpenAI 博客文章中提供的推理痕迹(这是我们能获得的少量推理痕迹,除非有泄露,因为 OpenAI 并未向用户公开)展示了一个在推理空间中搜索的系统。它会在推理中进行反向步骤并检查其合理性。这与状态空间中的反向步骤不同,但依然展示了一个完全不同的生成过程。我建议阅读一些详细的推理痕迹

关于测试时搜索的定义存在争议。可能涉及一个生成模型(语言生成模型)和一个验证器(过程奖励模型)。部署这样的系统并不容易,但我不会低估 OpenAI 的实力。如果这只是简单的自回归生成,他们完全可以通过引入奖励模型来提高性能,从而创造出更昂贵的产品。

奖励模型还能够实现模型的闭环行为。没有评分的启发式方法,语言模型很难自我纠正——这也是大多数当前模型无法纠正错误的原因。通过在继续推理前对未来的多个步骤进行评分,模型有机会纠正错误。这与 AlphaGo 等深度强化学习的许多成功案例如出一辙。

即使在提出了多种假设之后,我仍无法相信 OpenAI 已经将这样一个模块化系统部署到数亿用户手中。o1 项目的负责人甚至提到,它只是一个模型,他们希望在未来开放更多控制选项。

未来我们希望让用户能够更好地控制模型思考所花费的时间。

其中一个论点是,“这是一个模型完成所有任务”的定价模式——OpenAI 对反思 Token 收费,但这些 Token 并不能无限扩展。如果模型中有奖励模型和其他组件,那么定价模式会非常复杂,因为每个推理步骤的长度不同,调用奖励模型的次数也会有很大差异。

所有这些研究进展的基础在于奖励模型正逐渐融入生成语言模型。最近的研究表明,奖励模型在打分前会进行外显推理,或者利用非常强大的生成模型区分文本。这种实现方式将整个蒙特卡洛树搜索 (Monte Carlo Tree Search) 整合到一个最终语言模型中,在推理时可能会显得非常混乱。模型会生成潜在的想法,自行打分,然后生成最终解决方案。至少在训练时,几乎可以确定使用了更多模型来评估最高质量的推理痕迹。

创建这个系统的开源副本比 ChatGPT 更加困难。模块化 AI 系统对它们的连接方式非常敏感。而且,整个世界都在注视着。OpenAI 意识到了这一点,并且不会向用户公开推理痕迹,同时向试图从模型中破解信息的用户发出禁止函。获得正确的种子数据是构建该系统的关键。

一年多以前,OpenAI 可能雇佣了高技能的标注人员来创建复杂的正向推理路径,可能针对单个问题使用不同的路径。这些路径可以被评分并转化为初始标注轨迹。很可能还需要对比样本,这意味着仅有推理痕迹(即使我们能获得它们)还不够。

尽管在语言模型、搜索、强化学习、回溯、推理、过程标注等方面已经有了大量研究,但这些研究仍然处于初级阶段。它们是我们必须研究的起点,但距离最终答案还有很长的路要走。

最终,这仍然是一个语言模型的训练过程,主要是微调。当对模型进行微调时,可能仅需几千个样本就能看到一些新行为的出现。我预计 o1 类模型也是如此。虽然这几千个样本非常昂贵,但这是一个可行的目标。

在线训练在开源社区中还远未可行。我们看到,在训练后所花费的计算量与预训练相比的比率在增加,主要是因为需要生成和过滤更多的模型输出。如果我们相信 OpenAI 的图表,像 o1 这样的系统生成的结果,其成本可能轻松达到现有语言模型的 10 倍、100 倍甚至 1000 倍。

考虑到“使用 RL 学习”需要大量样本,这很容易就达到数十万个样本,就像我们现在用人类偏好和 PPO 提示所做的那样。这是只有少数玩家能够参与的数量。

在开源领域,我们需要将该系统的每个部分分解为可行的单元。我们需要一个适用于漫游推理的状态空间表述。我们需要好的过程奖励模型来标注轨迹。我们需要能够生成多样化推理步骤的模型。我们需要整合这些模型的计算资源。我们还需要更高难度的评估标准来优化。这一蓝图的构建需要许多小的基石。

讽刺的是,像 Reflection 70B 这种使用思维 Token 的模型反而成为了一个起点。

将新研究理念扩展到稳定且可部署的系统一直是 OpenAI 的强项。在开源领域与之匹敌是一项艰巨的任务。而这还要面对模型缺乏明确产品愿景的问题。如果没有明确的指导,人们很快就会对其失去兴趣,因为反馈过程太慢。最终,ChatGPT 会在某些任务上自动调用 o1,这将提升整个 ChatGPT 系统的性能。独立的 o1 模型可能无法持久。我们拭目以待。

对于快速发展的语言模型技术来说,以这种方式表现出完全不同的行为模式令人惊讶。以训练计算量为基础的计费模式显得更加过时,例如 SB 1047 法案。看到我们面前的巨大机遇,不禁让人感到敬畏。语言的表达正被极其强大的计算系统进一步接管。随着这些系统中人类监督的减少,它们的行为模式将变得越来越陌生。什么是语言领域的“AlphaGo 第 37 手”?只有时间能揭示答案,但 AI 的发展历程表明,那些认为不可能很快变为现实的人往往能得到回报。

o1 模型已经在 OpenAI 的代码库中提交了 PR,其新版本将被训练用于数学之外的其他领域,并将引入工具使用功能,还有更多不可预测的发展。要思考的起点是:ChatGPT 模型是否会更像 Google 的“我运气不错”按钮,而不是我们已经习惯的来回对话式聊天机器人。