推理模型专题 | 开源类O1:Marco-o1技术全面解读

大模型机器学习数据库
  • 引言
  • 简介
  • Marco推理数据集
  • 通过MCTS扩展解空间
  • 前置知识:蒙特卡罗树搜索(MCTS)
  • MCTS扩展解空间
  • 推理行动策略
  • 行动选择
  • 思考后的反思
  • 实验
  • 设置
  • 主要结果
  • 翻译任务案例研究
  • 总结
  1. 引言 ========

小伙伴们好,我是《小窗幽记机器学习》的小编卖铁观音的柯南。

picture.image

OpenAI的o1模型的出现:

OpenAI o1三部曲:上篇-概述

OpenAI o1三部曲:中篇-原理

OpenAI o1三部曲:下篇-乞丐版o1-mini

引发了学术界和工业界对大规模推理模型(large reasoning models ,LRM)研究的浓厚兴趣。鉴于前文对主流O1模型进行评测: 实测主流O1模型,究竟谁才是地表最强王者?揭开三足鼎立局面! ,结果显示开源的Marco-o1效果不错,甚至超越部分闭源产品。为此,今天这篇小作文将全面介绍Marco-o1的技术细节。

  1. 简介 ========

阿里国际数字化商业团队(非Qwen团队)提出Marco-o1,该模型不仅关注数学、物理和编程等具有标准答案的学科领域(这些领域非常适合强化学习),还更加注重开放性解决方案。Marco-o1旨在解答一个问题:"o1模型能否有效地推广到那些缺乏明确标准且难以量化奖励的更广泛领域?"

Marco-o1采用思维链(CoT)微调、蒙特卡罗树搜索(MCTS)、反思机制和创新的推理动作策略,专门针对复杂的现实问题求解任务进行了优化。Marco-o1主要贡献包括:

  • 基于CoT数据的微调 :通过对基础模型进行全参数微调,结合开源的CoT数据集和自主开发的合成数据,开发了Marco-o1-CoT模型。
  • MCTS扩展解空间 :将大语言模型与MCTS整合,训练得到 Marco-o1-MCTS 。该模型使用模型输出置信度来指导搜索并扩展解空间。
  • 推理动作策略 :引入了新型推理动作策略与反思机制(Marco-o1-MCTS Mini-Step),包括在MCTS框架内探索不同动作粒度,并提示模型自我反思,从而显著提高了模型解决复杂问题的能力。
  • 在翻译任务中的应用 :首次将大推理模型(LRM)应用于机器翻译任务,探索了 推理时间缩放定律 在多语言和翻译领域的应用。

如图2所示,通过使用经过筛选的Open-O1 CoT数据集(OpenO1 Team在2024发布的)、Marco-o1 CoT数据集和Marco-o1指令数据集对Qwen2-7B-Instruct进行微调,Marco-o1提升了处理复杂任务的能力。MCTS利用top-k替代token的softmax对数概率得出的置信度分数,探索多个推理路径,引导模型找到最优解。此外,推理行动策略在步骤和微步骤中采用不同的行动粒度,以优化搜索效率和准确性。

picture.image

图2:Marco-o1 概述

Github: https://github.com/AIDC-AI/Marco-o1

模型下载: https://huggingface.co/AIDC-AI/Marco-o1

论文地址: https://arxiv.org/abs/2411.14405

  1. Marco推理数据集 ================

为增强Marco-o1模型的推理能力,采用了监督微调(SFT)策略,使用多样化的数据集,如表1所示。

  • Open-O1 CoT数据集(经过筛选) : 通过启发式和质量筛选过程优化Open-O1项目的CoT数据集,使模型能够有效采用结构化推理模式。
  • Marco-o1 CoT数据集(合成):使用MCTS生成Marco-o1 CoT数据集,有助于形成复杂的推理路径,增强模型的推理能力。
  • Marco指令数据集:在执行复杂任务中 强大的指令遵循能力 将起到关键作用,为此融入了一套指令遵循数据。这种整合确保模型能够应对广泛的任务,同时显著提升其推理能力。

picture.image

表1:Marco推理数据集概览

  1. 通过MCTS扩展解空间 =================

前置知识:蒙特卡罗树搜索(MCTS)

蒙特卡罗树搜索(Monte Carlo Tree Search)是一种用于决策过程的启发式搜索算法,特别适用于在复杂搜索状态空间寻找最优决策,例如围棋、国际象棋和复杂的组合优化问题。MCTS 通过在决策树中进行随机模拟(也称为蒙特卡罗模拟),逐步构建搜索树,从而找到最优的决策路径。

MCTS主要由四个步骤构成:

  • 选择(Selection):从根节点开始选择子节点,直到抵达一个尚未完全展开的节点。
  • 扩展(Expansion):在选中的节点上扩展新的子节点,以生成一个新的状态。
  • 模拟(Simulation):从新节点开始,通过随机选择来模拟游戏的结果。进行一次随机的模拟(也称为rollout或者playout),直到到达终止状态(如游戏结束)
  • 反向传播(Backpropagation):根据模拟的结果更新路径上所有父节点的值。

这4个步骤会在一定的时间内重复进行,直到达到预设的时间限制或迭代次数,从而为最终的决策提供依据。

picture.image

选择(Selection)

  • 目的 :从根节点开始,基于当前的搜索树,选择一个需要进一步扩展的节点。
  • 过程
  • :节点 ( i ) 的累计奖励(例如胜率)。
  • :节点 ( i ) 的访问次数。
  • :父节点的总访问次数。
  • :探索系数,控制探索与利用的平衡。
  • 从根节点出发,沿着搜索树逐步向下选择子节点,直到到达一个尚未完全扩展的节点(即还有未被探索的子节点)或叶节点(无子节点)。
  • 选择的依据是各节点的统计信息,通常使用 UCT(Upper Confidence Bound for Trees) 或其他变体来平衡 探索 (exploration)和 利用 (exploitation)。
  • UCT 公式
  • 平衡点 :访问次数少但潜在回报大的节点会被优先探索,而访问次数多的节点则倾向于利用其已有的统计信息。

扩展(Expansion)

  • 目的 :在搜索树中添加新的节点,以扩展搜索范围。
  • 过程
  • 如果选择的节点不是终局(游戏尚未结束)且不是完全扩展的节点,则从可能的后续动作中选择一个未被探索的动作,将其对应的状态添加为新的子节点。
  • 为什么需要扩展? 扩展是为了增加搜索树的深度和覆盖范围,从而更全面地探索可能的行动路径。

模拟(Simulation / Rollout)

  • 目的 :估计新扩展节点(或当前叶节点)对应状态的价值。
  • 过程
  • 在棋类游戏中,可能是胜负(+1 表示胜利,0 表示平局,-1 表示失败)。
  • 在其他问题中,可能是某种得分或目标函数值。
  • 随机策略 :简单地随机选择合法动作。
  • 启发式策略 :使用领域知识选择更合理的动作。
  • 神经网络策略 :在现代强化学习中(如 AlphaGo),通过策略网络指导模拟。
  • 从新扩展的节点开始,通过某种策略模拟游戏的后续发展,直到达到终局(游戏结束状态)。
  • 模拟策略可以是:
  • 模拟的结果通常是终局状态的奖励值,例如:

反向传播(Backpropagation)

  • 目的 :将模拟的结果向上传递,更新路径上所有节点的统计信息。
  • 过程
  • 更新访问次数。
  • 累加奖励值或更新胜率等统计信息。
  • 从模拟结果开始,沿着选择和扩展过程中经过的节点路径向上回溯。
  • 对路径上的每个节点:
  • 这些统计信息(如访问次数和累计奖励)会在下一次选择阶段中影响节点的选择优先级。

其他核心组件与特性

除了上述四个主要步骤,MCTS 还包含一些重要的特性和组件:

  1. 探索与利用的平衡
  • MCTS 的选择策略(如 UCT)通过平衡探索和利用,在有限的模拟次数下尽可能高效地找到最优解。
  • 探索:尝试访问访问次数较少的节点,以发现潜在的高价值路径。
  • 利用:优先选择统计上胜率较高或价值较大的节点。
  • 树的动态构建
  • 搜索树是动态构建的,初始时只有根节点,随着算法的运行逐渐扩展。
  • 这种按需扩展的方法避免了对整个搜索空间的显式存储和遍历。
  • 可扩展性
  • MCTS 的性能主要取决于模拟的次数,模拟次数越多,搜索结果越接近最优解。
  • 算法可以在时间限制内运行,并根据可用的计算资源调整模拟次数。
  • 适应性
  • MCTS 无需明确的评估函数或领域知识即可工作,但可以通过改进 rollouts 策略或节点选择策略来提升性能。

小结

蒙特卡罗树搜索(MCTS)的核心组件可以总结为以下四个步骤:

  1. 选择 :基于 UCT 等规则,从根节点选择一个需要进一步扩展的节点。
  2. 扩展 :在搜索树中添加新节点,扩展搜索范围。
  3. 模拟 :从新节点开始模拟游戏的后续发展,估计该节点的价值。
  4. 反向传播 :将模拟结果向上传递,更新路径上的节点统计信息。

这些步骤通过不断重复,逐渐构建搜索树并改进决策质量,最终选择出最优的行动路径。这种递增式的搜索方法使得 MCTS 能够高效地在大规模、不确定的状态空间中找到接近最优的解。

MCTS扩展解空间

概述

将大语言模型与MCTS整合,以增强Marco-o1模型的推理能力:

  • 节点作为推理状态 :在MCTS框架中,每个节点代表问题解决过程的推理状态。
  • 行动作为大语言模型输出 :节点的可能行动是由大语言模型生成的输出,这些输出代表推理链中的潜在步骤或mini-steps。
  • Rollout和奖励计算:在rollout阶段,大语言模型继续推理过程直至终止状态。
  • 引导MCTS:奖励分数R用于评估和选择MCTS中有希望的路径,有效地引导搜索朝向更有把握和可靠的推理链。

奖励计算

计算置信度分数获得每个状态的值: 此外,通过计算置信度分数获得每个状态的值。对于rollout过程中生成的每个token

,通过对其对数概率和前5个候选token的对数概率应用softmax函数来计算置信度分数。计算公式为:

其中:

  • 是第

个 token 在rollout中的置信度分数。

  • 是由大型语言模型(LLM)生成的第

个 token 的对数概率。

  • 表示在第

步预测中,前5个候选 token(即排名前5 的token)的对数概率,其中

的值取1到5。

  • 是rollout序列中的token总数。

该公式确保置信度分数反映所选 token 相对于前几个候选项的相对概率,有效地将分数归一化到 0 和 1 之间。

计算整体的奖励分数: 在获得rollout序列中所有 token 的置信度分数后,计算所有 token 的平均置信度分数,以得出整体的奖励分数。

其中:

  • 是rollout路径的整体奖励分数
  • 是rollout序列中的token总数
  • 是第

个token在rollout中的置信度分数

这个平均值作为评估rollout过程中所采取推理路径质量的奖励信号。较高的

表示更有把握且可能更准确的推理路径。

通过采用这种方法,有效地扩展了解空间,使模型能够探索大量推理路径,并基于计算的置信度分数选择最可能的路径。

小结

选择阶段 ,搜索从根节点开始,沿着搜索树逐步选择子节点,直到到达一个尚未完全展开的节点为止。节点的选择基于累计奖励(置信度得分)与访问次数的权衡,优先探索奖励较高的路径。具体而言,选择标准是从当前节点的子节点中挑选奖励值

较高的节点,即具有更高累计置信度的路径。

扩展阶段 ,当选择阶段到达一个尚未完全展开的节点时,对该节点的子节点进行扩展,将其添加到搜索树中。此时,利用大语言模型(LLM)从当前节点的状态输入推断潜在的下一步推理输出。生成的输出构成新的子节点,代表不同的推理方向(例如下一步的逻辑推导或解法路径)。扩展通常会生成多个备选输出,例如基于 LLM 置信度排名前 5 的候选 token,从而捕获多种可能的推理分支。

模拟阶段 ,从扩展出的新节点出发,模拟完整的推理路径直至终止状态。模拟由 LLM 执行,展开一条完整的推理链。在每一步推导中,通过 softmax 函数计算生成 token 的置信度,并沿路径累计得分。模拟路径的整体奖励

定义为所有 token 置信度得分的平均值。模拟的终止条件可以是推理链完成、达到预设长度限制,或生成终止 token。

回溯更新阶段 ,将模拟结果(奖励

)反向传播回搜索路径上的所有节点,更新父节点及更高层祖先节点的统计信息。具体更新规则包括:

  • 累计奖励
  • 访问次数

其中,奖励值

反映 rollout 路径的平均置信度得分,表示该路径的推理质量。通过回溯更新,搜索树动态调整,使未来搜索更倾向于探索奖励较高的路径。

  1. 推理行动策略 ============

4.1 行动选择

在使用行动(actions)作为蒙特卡罗树搜索(MCTS)的粒度时,这种相对粗糙的方式往往会导致模型忽略解决复杂问题所需的细致推理路径。为解决这个问题,对MCTS搜索的不同粒度级别进行了探索。首先将步骤(steps)作为搜索单位,为了进一步扩展模型的搜索空间并增强其解题能力,尝试将这些步骤细分为64或32个token的较小单位,称为"mini-step"。这种更细的粒度使模型能够更详细地探索推理路径。虽然token级别的搜索在理论上提供了最大的灵活性和细粒度,但由于需要大量计算资源以及在这个级别设计有效奖励模型的挑战性和难度,目前这种方式尚不可行。

在实验中,在MCTS框架内实施了以下策略:

  • 以步骤(step)作为行动(Action):允许模型生成完整的推理步骤作为行动。每个MCTS节点代表一个完整的思考或行动标签。这种方法能够实现高效探索,但可能会错过复杂问题解决所需的细粒度推理路径。
  • 以mini-step作为行动:使用32或64个token的mini-step作为行动。这种更细的粒度扩展了解决方案空间,通过在搜索过程中考虑更细致的步骤,提高了模型处理复杂推理任务的能力。通过在这个级别探索解决方案空间,模型能够更好地找到使用较大行动单位时可能被忽略的正确答案。

4.2 思考后的反思

通过在每个思考过程结束时添加" 等等!也许存在一些错误!需要从头重新思考 。"这样的短语,引入了反思机制。这促使模型进行自我反思并重新评估其推理步骤。实施这种反思机制带来了显著改进,特别是在原始模型最初解答错误的困难问题上。添加反思机制后,约一半的这类挑战性问题得到了正确解答。

从自我批评的角度来看,这种方法使模型能够充当自己的评判者,识别推理中的潜在错误。通过明确提示模型质疑其初始结论,鼓励模型重新表达和完善其思维过程。这种自我批评机制利用了模型检测自身输出中不一致或错误的能力,从而实现更准确可靠的问题解决。反思步骤作为内部反馈循环,提升了模型在无需外部干预的情况下自我纠正的能力。

  1. 实验 ========

5.1 设置

基于Qwen2-7B-Instruct,使用训练数据进行SFT以创建Marco-o1-CoT。此外,在MCTS树搜索框架内应用Marco-o1-CoT,区分为:

• Marco-o1-MCTS (step):使用每个推理步骤作为行动(step) • Marco-o1-MCTS (mini-step of 64 tokens):使用64个token的mini-step作为行动 • Marco-o1-MCTS (mini-step of 32 tokens):使用32个token的mini-step作为行动

在测试过程中,每个模型都使用CoT提示以确保推理过程的一致性。随后在MGSM数据集的英语(En)和中文(Zh)子集上测试这些配置。

picture.image

picture.image

表3:在MGSM数据集上的表现:Test@1、Test@8和Test@32结果。Test@N表示当模型允许对每个问题进行N次独立猜测时,至少一次正确解决问题的百分比。

picture.image

图3:Marco-o1在MGSM基准上的结果

5.2 主要结果

在MGSM-en数据集上,如图4所示,Marco-o1-CoT相比Qwen2-7B-Instruct表现出优势,这是由于使用英语CoT数据进行微调所致。然而,在MGSM-zh数据集上,Marco-o1-CoT的表现相比Qwen2-7B-Instruct有所下降。这种下降归因于用于微调的CoT数据是英语,可能无法有效迁移到中文数据集。

picture.image

图4:MCTS扩展了正确答案的解空间。在MGSM数据集上对比Marco-o1-CoT(左)和Marco-o1-MCTS(step)(右)。Marco-o1-CoT未能提供正确答案,而将MCTS与步级(step-level)操作相结合,使模型能够探索更广的解空间,从而提高得出正确解答的可能性。

如表2所示,三个MCTS增强模型相比Marco-o1-CoT都表现出改进,表明引入MCTS有助于扩展模型的解决方案空间并提高获得正确答案的概率。然而,由于使用置信度分数作为奖励,树搜索结果显示出显著的随机性。在MGSM-en中,"step as Action"策略表现最佳,而在MGSM-zh中,"mini-step as Action (32)"策略获得最高准确率。目前,如图4、5和6所示,尚无法得出哪种行动策略更优的确定性结论。随着奖励变得更加准确,MCTS提供的更大解决方案空间将展示更大潜力。

此外,使用Test@N表示当允许模型对每个问题进行N次独立猜测时,至少一次正确解决问题的百分比。如表3所示,评估了Test@1、Test@8和Test@32的解决率。结果表明,MCTS在较少独立猜测次数(Test@1)时表现出优势。这揭示了MCTS的潜力。在未来的工作中,计划将奖励模型(RM)与MCTS结合训练,以继续优化方法。

picture.image

图5:使用mini-step的更细粒度增强了问题解决能力。在MGSM数据集上比较Marco-o1-MCTS(step)(左)和Marco-o1-MCTS(mini-step of 32 tokens)(右)。步骤级别行动策略未能得到正确答案,但通过使用32个token的更细粒度mini-step,模型成功在解决方案空间中找到正确答案,展示了增加行动粒度的有效性。

picture.image

图6:最优行动粒度取决于问题复杂度。在MGSM数据集上比较Marco-o1-MCTS(mini-step of 64 tokens)(左)和Marco-o1-MCTS(step)(右)。使用64个token的mini-step的模型未能找到正确答案,而使用步骤级别行动使模型正确解决了问题。这突出表明无法就哪种行动策略更优得出确定性结论。随着奖励变得更加准确,MCTS提供的更大解决方案空间将展示更大潜力。

在图1中出现了一个有趣的观察:Marco-o1在解决经典的"strawberry"问题时(问题是"'strawberry'中有多少个'r'?"),虽然模型给出了正确答案,但其推理过程中省略了对最后一个字母'y'的明确处理。在审查输出时,这种省略似乎不是打字错误或有意疏忽。在MCTS搜索路径中,大多数路径也忽略了'y',尽管有些路径包含了它。这表明模型可能对其推理足够自信,可以跳过明确处理最后一步,类似于人类在解决问题时有时会省略明显步骤的情况。

picture.image

图1:一个由Marco-o1模型推理的经典问题:“‘strawberry’中有几个‘r’?”

这些结果证明了在不同语言和配置下,方法在增强模型推理能力方面的有效性。

5.3 翻译任务案例研究

为了展示Marco-o1模型在翻译任务中的能力,对比了模型与Google Translate在翻译口语和俚语表达方面的表现。模型在理解上下文和细微差别方面表现出色,提供更准确和自然的翻译。

如图7、8和9所示,这些案例说明了Marco-o1在处理复杂翻译任务,尤其是口语和俚语方面的高级理解和推理能力,优于Google Translate等标准翻译工具。

picture.image

图7:使用marco-01的口语表达“这只鞋鞋底舒适,强烈推荐购买”的翻译演示任务。

picture.image

图8:对口语表达"It's so beautiful that it's captivating, the upper part has a distinctly Korean style, the soft and fluffy material is perfectly thick, and it's complemented by a base layer, creating a unique and everyday-wear outfit"的翻译比较。

picture.image

图9:关于口语表达“太漂亮了!而且还这么便宜,超级直还不卷。买它,买它!”的翻译比较

  1. 总结 ========

受OpenAI推出的o1模型启发,阿里国际团队研发了Marco-o1模型,以提升大语言模型的推理能力。通过结合CoT微调、MCTS算法和推理行动策略,Marco-o1显著增强了处理复杂任务的能力。在MGSM数据集上的实验表明,其推理准确率提升明显,并在翻译任务中展现出对细微语义的深入理解。该研究的主要贡献包括:全参数微调模型、融合MCTS扩展解空间、优化推理行动策略,以及首次探索大模型在翻译任务中的推理规律。

官方表示后续计划通过结果奖励建模(ORM)和过程奖励建模(PRM)来完善MCTS的奖励信号,这将减少随机性并进一步提高性能。此外,正在探索强化学习技术来微调Marco-o1的决策过程,最终增强其处理复杂现实任务的能力。

0
0
0
0
相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论