利用OpenAI o1的逆向工程复刻开源版的o1现实吗?

nidongde2024-09-17 10:29:4647
作者 | 超人🦸‍♀️不会飞
OpenAI应用研究负责人Boris Power说:"OpenAI o1是一种新的大模型范式,它并不是一个能够轻易被大众理解的产品,但很快我们就会再次见到下一个ChatGPT时刻"!

o1的智商水平达到120,已经“遥遥领先”其他大模型

上一期文章《OpenAI o1的架构流程已被Claude破解了?》意外爆火后,很多读者在后台留言说文章内容比较简洁,关于OpenAI o1的原型以及背后的技术没有详细展开。因此应广大读者要求,趁着中秋节我这几天又爆肝详细整理了关于OpenAI o1的资料,包括以下几个方面详细展开:
  1. 从Q*到草莓再到 o1。

  2. 使用强化学习训练o1。

  3. 收到提示词时o1在做什么?

  4. 理解o1的结构需要考虑的问题。
  5. o1在推理时是一个模型吗?
  6. 开源版本的o1、o1的未来和AI的未来。
整体文章篇幅比较长,但内容绝对干货,希望大家点赞收藏一起学习!
关注和点击下方“AI的潜意识,设为星标
更多技术干货,第一时间送达

o1会是下一个ChatGPT时刻

OpenAI 发布了他们的新型推理系统 o1,这一系统在 Q* 的早期成功和最近传闻中的“草莓”项目的基础上开发而成,为用户在应对具有挑战性的任务时提供了一种全新的与人工智能互动方式。o1 系统是通过在长推理链上训练新模型、大量强化学习🍒以及大规模部署来设计的。与传统的自回归语言模型不同,它为用户提供在线搜索功能。o1 系统在推理方面投入更多资源,这证实了新的规模定律的存在 —— 推理规模定律。

这次发布的远非一个完整的产品。o1只是一个原型。o1这个名字很模糊(“o”代表OpenAI)。o1并没有像ChatGPT那样明确的产品市场定位。但o1极其强大。o1与众不同。o1预示了人工智能的未来。从技术层面看,人工智能的进步一直在前行。它的能力过剩已经加深,但以一种降低市场调整风险的方式。

OpenAI已经发布了关于这些系统的大量信息。他们发布了一篇关于训练方法的博客文章,一篇关于o1预览模型的博客文章,一篇关于o1迷你模型的博客文章,一篇关于安全测试的系统卡片以及使用此模型和未来推理模型的文档。此外,他们还向知名的人工智能社区成员提供了预览测试,因此有很多关于它在哪些方面有效、在哪些方面无效的透明评价。

发布信息中最重要的一部分是OpenAI告诉我们,他们并不完全知道如何使用这个模型。这是一个预览系统,名称含糊,让用户帮助他们定义。以下是OpenAI应用研究主管Boris Power的描述:

“此版本比 ChatGPT 版本更接近原始 GPT-3 版本。一种新的范式,有些人会对即使是我们 OpenAI 也无法预测的事情做出非常有价值的贡献。”

“但这并不是一个能够毫不费力地为每个人解锁新价值的大众产品。"

"我相信我们很快会再次见证ChatGPT般的时刻!"

从Q*到草莓再到o1

我们早已预见到这个发布。去年11月,OpenAI领导层动荡期间首次泄露了一些信息,称“在拥有大量计算资源的情况下,这个新模型能够解决某些数学问题。”从那时起,OpenAI一直在研究如何使这一系统稳定并打包成果。在我看来,Q*是利用某种推理搜索树来引导出非常高价值轨迹的原始方法。泄露信息的原因是研究人员对从中得到的第一批训练提示感到兴奋。他们看到了这种可能性。

这是实现像“草莓”这样的训练成果——一个经过Q*训练,在生成文本时具有推理能力的模型。部署完整的o1系统需要这样一个模型。在提到o1时,最好将其称为一个系统。所有操作可能都通过一个先进的语言模型进行,但以一种为用户创建连贯输出的方式对这些计算进行汇集和循环是非常复杂的。这看起来与我们在语言建模领域所见过的任何东西都更接近闭环控制。

扩展这个系统一定是一项艰巨的任务。o1仍然是一个预览版本。如果以前的强化学习突破(如AlphaGo及其下游应用)能说明什么问题,那么OpenAI现在可以从多个角度发展o1。o1是核心推理引擎,可以为大量未来产品进行打磨、探索和提取。

这里强化学习的成功意义重大。在这些略显普通的段落中,很容易忽略它——分解它的工作原理会使成就更加令人印象深刻。

“我们的大规模强化学习算法教会模型如何在高度数据高效的训练过程中使用其思维链进行高效思考。我们发现,随着强化学习(训练时计算)的增加和思考时间的增加(测试时计算),o1 的性能会不断提高。扩展这种方法的限制与 LLM,我们将继续研究它们。"

这产生了AI历史上的里程碑式人物。推理支出现在是有道理的(就在几周内,我公开表示我们应该在推理上投入更多资金)

发布的模型在发布的基准测试分数和图表中并不是表现最好的模型,而是处于中等水平。首先让我们看一下o1预览版模型相对于完整的o1模型的位置图。

这意味着,在这些基准测试中,我们使用的模型位于GPT4o和o1改进之间。o1在其他基准测试中的表现参差不齐,例如在ARC-AGI和aider编码挑战中与Claude 3.5 sonnet相似。对于某些事情,它表现得很好;而对于其他事情,它却显得迷茫。OpenAI与完整的o1系统(非预览版)分享了更多评估。

通过这些AIME分数,我们可以将其与早期的训练日志推理性能图进行匹配,表明o1预览版与完整的o1系统相比,规模有很大的缩减。

这归结为OpenAI的正常发布考虑因素,或者多个因素:

  • 他们无法负担向用户提供“最强”配置的费用。
  • 他们没有部署最终配置的基础设施。
  • 最终配置对于他们的标准来说不够安全。

以及其他类似的事情。无论出于战略原因这是否是一个仓促的发布,它都是一个具有颠覆性的AI模型。英伟达高级项目经理Jim Fan总结了下一代AI系统的计算支出如何发生变化。这是一个过渡到真正的语言模型代理的过程。

这种方法并不适用于所有查询。最终,ChatGPT将吸收o1,并将您的查询定向到合适的模型。简单查询在此系统中会消耗大量多余的token,如下面的225个token。正常模型应该用10到12个token来解决这个问题,减少了十倍。

使用强化学习训练o1

OpenAI的o1是第一个在大规模部署中对文本进行搜索的产品。这是一个重大突破,将改变AI产品的部署堆栈和期望。o1是一个有用的演示,弥合了现有语言模型与不同代理产品世界之间的差距。

o1绝对是用基于RL的“搜索”算法进行训练的,但并不完全清楚如何向用户提供服务,即它在测试时是否使用多个模型。在开发者AMA中,OpenAI的代表表示o1是一个“模型”,“不是一个系统”,但这可能并没有讲述整个故事。

语言模型可以处理极其复杂的上下文,现代服务基础设施非常适合通过在上下文中缓存输出的先前步骤来实现仅向前生成(无回溯)。当您阅读OpenAI提供的少量轨迹时,它们在前进的过程中漫无目的地寻找答案。通过回溯编辑缓存实际上会更难以大规模提供。

大多数RL专家在无法撤销的领域开发了RL技能,例如竞技游戏,所以仅向前的领域更适合代理-环境框架。状态和操作混合在一起,其中操作是新生成的token,这些token立即附加到长状态上下文中。处理这些混乱轨迹是o1魔力的重要组成部分。

让我们为这个RL问题制定奖励。传统的从人类偏好中进行强化学习的经典问题是,一个奖励(以二元偏好的形式)被分配给整个轨迹。在此,训练模型理解其中哪里出错了是困难的。最近的研究通过设计评估推理每一步的奖励模型来解决这个问题。

最好的每步奖励模型(过程奖励模型)的例子就是评估推理树中每一步的模型,这些都来自OpenAI的论文《Let’s Verify Step By Step》。下面的插图显示了绿色的步骤是高奖励,红色的步骤是低奖励。

如果你将这个与基于结果的奖励模型或启发式方法结合起来,它告诉系统它得到了正确的答案(并可能有长度惩罚,以便它不会为了避免负回报而永远生成非答案),那么系统将会有每个推理步骤奖励,将信用分配给最终答案。在上面的例子中,推理步骤可以从步骤9,即第一个错误的标签,重新生成,然后RL代理可以根据奖励的差异区分多个类似的轨迹。

要通过RL学习,轨迹只需要在生成后获得奖励标签。模型的行为可能与GPT-4o非常相似,并且随着解决更具挑战性的问题获得奖励而慢慢探索新的状态空间。与传统的RLHF相比,语言模型的全状态RL将更依赖于探索和发现新的推理步骤。没有这个,o1无法继续通过更多的训练时间计算来大幅提高其性能。没有足够的探索跨越各种状态的多样性,更多的RL就会平稳下来,甚至过拟合并崩溃。

在更开放的模型中没有这样的东西。Reflection 70b风格的模型看起来完全像是GPT-4o,只是有特殊的提示。不是探索。大多数RL专家都认为,探索是在线学习代理的最重要方面。

具有各种奖励概况的轨迹的多样性是强化学习世界中的经典训练数据。多年来,我们已经看到,实际优化器的实现并不如种子数据和环境表述重要。o1从RLHF过程中派生出来的关键之处在于,奖励模型是环境的一部分。在RLHF中工作是与经典RL的重大分歧,因为有许多不同的杠杆可以控制,因此只是时间问题,直到有人以特殊的方式限制语言模型的环境。o1之后还会有更多。

这个状态空间的复杂性与RL的任何先前的实际世界成功无法匹敌。最近的成功案例都反映了AlphaGo或游戏,其中高保真模拟器或规则集决定了行为。在这里,模型正在处理非常长的100到200千个token的链(承载了一些高级的分层RL,至今还没有在任何值得注意的地方使用过)。

RL 在语言模型上的最成功部署是使用策略梯度算法,例如 PPO和DPO算法。这些模型学习一个价值模型,该模型表示与过去状态对应的标量值。我想知道这些价值模型是否可以以任何有意义的方式解释为最终行为。它们最终是系统每次与世界交互时用来学习的东西。这是让这样的系统真正工作的关键的众多细节之一。多家公司和学术界现在将开始复制此培训设置的漫长过程。

收到提示词时o1在做什么?

每次调用o1模型时,会触发多少RL训练过程?回答这个问题需要从OpenAI的沟通、定价和最近的文献中获取大量的上下文。这个模型在推理时非常昂贵,但这并不是因为它更大。首先用强化学习训练更大的模型是一个疯狂的想法。最多,它处于GPT-4o的规模。我怀疑由于它必须生成大量的token,它可能会更小。它在每个token上做了更多的工作(例如给自己打分)。

如果模型没有明显变大,那么我们需要对模型的高推理成本进行推理。o1-preview的收费标准是每百万输入token15美元,每百万输出token60美元。这与Claude 3 Opus的价格相同(至少在Opus发布时,价格可能已经降低)。这也适用于不向用户显示的中间推理token。如果模型没有变大且没有生成很多token,计算能力去哪里了?我猜测这是一种并行解码的形式,我们可以粗略地称之为强化学习语言模型解码(将其与通常的自回归模型区分开)。

对于通过模糊摘要向用户显示的每个推理步骤,o1模型会生成多个候选项,然后在步骤结束token后对它们进行评分。对于用户来说,这个数字是固定的。在进行评估时,OpenAI可以改变候选项的数量(他们表示希望将这种类型的推理强度控制暴露给用户)。

这种并行和分支生成方式与普通聊天机器人的推理堆栈有显著不同,这解释了高价格和“价格预期下降”的现象。这些构成了RL部分中提到的动作,由于环境的灵活性,它们在生成长度方面可以有很大的变化。

本质上,它是一个模型,但这个模型是一个生成模型和过程奖励模型的结合体,它采用了一种与我们以前看到的不同的生成策略。这可能是一个具有特殊评分token的生成模型,或者是一个具有单独回归头的生成模型,在生成时可以交错使用。OpenAI的“只有一个模型”的沟通承载了很多。

根据o1的行为以及他们如何描述模型,按提示定价几乎更有意义,但实际上,OpenAI 对其工作方式没有足够强的限制来做到这一点。新一代范式解释了为什么披露它会如此昂贵——与现有模型相比,流式传输它看起来完全不同。当需要并行考虑每个步骤时,流式处理不起作用。

对于用户部署,分支 (candidate steps) 的数量是静态的。在内部,他们可以改变数量(并将允许用户在将来这样做),让他们创建上面的测试时间缩放图。

理解o1的结构需要考虑的问题

1、RL 训练的语言模型如何工作?

当你阅读这个模型的轨迹时,很明显它与我们最近接触过的任何语言模型都有很大不同。它会啰嗦、提问,但最终仍然能得出明智的答案。这个模型似乎在采取一些可变动作,特别是在重复短语(如“等一下,这是对的吗?”)或者类似“嗯”的奇怪的人类表达时。这些表达标志着推理可能发生改变方向的有趣时刻。

用自回归模型得到这种结果是相当奇怪的。我们已经注意到,一旦自回归模型被从轨迹中扰动,它就会坚持错误。RL代理可以检测到它们何时偏离脚本,并进入“探索”模式,在这种模式下,它们需要采取稍微更随机的行动以找到状态空间的高价值区域。

2、 是在线/测试时搜索吗?

有两个证据支持o1是一个已部署的语言模型搜索系统(具有多个组件)的假设。你可以通过一个外部验证器来获得我之前描述的具有生成过程奖励模型的相同效果。具体实现可能取决于哪个更具可扩展性,但将模型视为独立的可以帮助我们更好地理解需要满足的不同功能。

  1. 我在上文中分享的测试时间计算图表。语言模型并不是通过自回归生成更多token来对数地缩放计算成本。至少这不是图表所暗示的。至少在训练时,OpenAI可以通过搜索深度、宽度或启发式计算(对搜索节点进行评分)来调整计算量。


  2. OpenAI博客文章中提供的推理轨迹——我们实际上只能看到的少量轨迹,除非有泄漏(因为OpenAI不向用户展示它们)——显示了一个在推理空间中进行搜索的系统。它在推理过程中采取了反向步骤,并检查其价值。这与在状态空间中采取反向步骤不同,但仍然表现出截然不同的生成过程。我建议阅读一些冗长的推理轨迹。


什么构成了测试时间的搜索是有争议的。这可能包括一个生成器模型(语言写作模型)和一个验证器(过程奖励模型)。部署这种模型可能会很复杂,但我不会怀疑OpenAI的实力。如果它确实只是自回归生成,那么他们可以轻松地创建一个更昂贵的产品,通过将奖励模型纳入循环来提高性能。

奖励模型还可以实现模型的闭环行为。如果没有评分启发式方法,语言模型很难纠正自己——这就是为什么大多数当前模型无法从错误中恢复的原因。通过在进行之前对多个未来推理步骤进行评分,模型有机会修正其错误。这与过去诸如AlphaGo等深度RL的许多关键成功非常一致。

o1在推理时是一个模型吗?

即使在编写多个假设时,我也无法说服自己 OpenAI 已经为数亿用户部署了一个模块化系统。o1 项目的负责人甚至说这是一个模型,他们想公开更多的控件。

将来,我们希望让用户更好地控制模型花费多少时间进行思考。

“它只是一个模型完成每一项”的论点之一是定价模型——OpenAI 对反射代币收费,但它们不能无限扩展。如果有奖励模型和其他部分,定价样式会很棘手,因为每个推理步骤的长度都不同,并且奖励模型调用的数量会有很大差异。

在研究方面实现这一切的原因是奖励模型正在被吸收到生成语言模型中。最近的研究表明,在评分之前大声思考的奖励模型或用于区分文本的非常强大的生成模型。这种类型的实现细节,其中所有 Monte Carlo Tree Search 都可以由一个最终语言模型处理,这使得推理时非常混乱。模型生成潜在想法,自行评分,然后生成解决方案。至少在训练时,几乎可以肯定的是,会有更多的模型被用作启发式方法,以评估最高质量的推理跟踪。

开源o1、o1的未来和AI的未来

创建此系统的开源版本将比ChatGPT更难。模块化AI系统对它们如何连接在一起很敏感。此外,全世界都在关注。OpenAI 知道这一点,并且不会向用户显示推理轨迹,也不会向试图将他们越狱出模型的用户发送停止和终止电子邮件。获得正确的种子数据是构建此数据的关键部分。

一年多前,OpenAI 可能付钱给高技能的注释者来创建复杂的前向推理路径,对于单个问题,可能有不同的路径。这些可以被评级并转换为初始标记的轨迹。很可能还需要对比示例,这使得复制推理轨迹(如果有的话)是不够的。

虽然对语言模型和搜索、RL、回溯、推理、过程标签等相关术语进行了大量研究,但它们是极其原始的。它们是我们必须开始的地方,但与最终答案相去甚远。

归根结底,这仍然是在训练一个语言模型,而且主要是微调一个。在微调模型时,您往往会看到仅 1000 个样本就出现的行为。我希望这对于类似 o1的模型也是一样的。这 1000 个将非常昂贵,但这是一个易于处理的目标。

在线训练在开放社区中远非易于处理。我们看到,相对于预训练,用于训练后的计算比率有所增加,其中大部分是因为需要生成和筛选更多的模型完成。如果我们从表面上看 OpenAI 的图,像 o1这样的系统的补全很容易成为现有语言模型的 10 倍、100 倍或 1000 倍。

当您考虑到“使用 RL 学习”需要许多样本时,这很容易成为数十万个样本,就像我们现在对 PPO 的人类偏好和提示所做的那样。这些是目前只有少数玩家可以参与的数字。

在公开场合,我们需要将这个系统的每一个部分分解成一个易于处理的问题。我们需要一个用于游荡推理的状态空间公式。我们需要良好的流程奖励模型来标记轨迹。我们需要能够生成多种推理步骤的模型。我们需要计算来将这一切整合在一起。我们需要更难的评估才能爬山。开始构建这幅图景需要许多小砖头。

具有讽刺意味的是,像Reflection 70B这样具有真正有效的思维token的模型只是一个起点。

将新的研究理念扩展到稳定和可部署的系统一直是 OpenAI 的强项。在开源领域中匹配这一点是一场艰苦的战斗。这一切都伴随着该模型完全缺乏产品愿景。由于反馈过程非常缓慢,在没有指导的情况下,人们很快就会厌倦它。最终,ChatGPT 会自动为某些任务调用它,这将使更广泛的 ChatGPT 系统变得更好。保持o1独立可能永远不起作用。我们拭目以待。

对于以语言模型的速度发展的技术来说,截然不同的行为模式是令人惊讶的。基于训练计算阈值的法案现在看起来更加过时了——例如 SB 1047。看到我们敞开的大门,我感到很谦卑。语言的表示进一步被极其强大的计算系统所采用。随着这些系统中人类监督的减少,它们将表达的模式将越来越陌生。语言的AlphaGo 第37步相当于什么?只有时间会证明一切,但 AI 的进程已经回报了那些期望不可能很快成为可能的人。

o1 模型已经在 OpenAI 的代码库中编写了 PR,它的新版本将针对数学以外的其他领域进行训练,工具的使用将到来,以及许多我们无法预测的事情。首先要考虑的是 ChatGPT 模型更接近 Google 上的“我感觉很幸运”按钮,而不是我们已经习惯的来回聊天机器人意味着什么。

本文链接:https://fsby.vip/chatgpt/100.html

利用OpenAI o1的逆向工程复刻开源版的o1现实吗?

相关文章

网友评论