两个值得一读的技术总结:OpenAI o1模型复现复现思想及多模态大模型用于数学推理

文摘   2024-12-22 20:00   北京  

今天是2024年12月22日,星期日,北京,天气晴。

我们今天来看看大模型推理方面的工作,看看多模态大模型数学推理总结以及OpenAI o1模型复现跟进,有两个值得看的总结性工作。

关注技术,并关注应用落地,把技术学扎实,总会有更多的收获。

供各位参考,多思考,多总结,多实践;

一、多模态大模型数学推理总结

如何在多模态大型语言模型(MLLMs)时代进行数学推理是个很有趣的话题,这个问题要解决起来其实并不容易。

首先,许多数学问题需要提取和推理视觉内容,如图表、表格或几何图形。当前模型在处理复杂的视觉细节(如解释三维几何或分析不规则结构表格)方面存在困难。

其次,现实世界的数学推理往往不仅限于文本和视觉,还可能涉及音频解释、交互式问题解决环境或动态模拟。当前模型在处理这些多样化输入方面能力有限。

另外,数学推理涉及多个领域,如代数、几何、图表和常识,每个领域都有其特定的问题解决要求。当前模型在一个领域表现良好,但在另一个领域可能表现不佳,缺乏跨领域的泛化能力。

接着,数学推理涉及多种类型的错误,如计算错误、逻辑不一致和问题误解。当前模型缺乏有效检测和纠正这些错误的能力,可能导致推理过程中的错误累积。

最后,现有的基准和模型常常忽视现实教育情境,如学生如何使用草稿(如手写笔记或图表)来解决问题。这些现实元素对于理解人类如何进行数学推理至关重要。

但是,从技术方案上来看,可以跟进下最近的一个工作,《A Survey of Mathematical Reasoning in the Era of Multimodal Large Language Model: Benchmark, Method & Challenges》,综述多模态大模型在数学推理领域的进展,提出三种LLM应用范式,https://arxiv.org/abs/2412.11936,可以看其中几个点。

一个是当前大模型在数学推理上的一些演变:

一个是其提出的三类数学题推理方案,即作推理器、增强器和规划器。

其中:

推理器利用LLMs的推理能力解决问题,例如,结合多步推理的步骤级和路径级策略。Math-SHEPHERD则为一个过程导向的数学验证器,为LLMs输出的每一步分配奖励分数;

增强器通过数据增强提高模型性能,例如,通过在训练过程中引入扰动和随机掩盖思维链中的标记来增强输入。Math-Genie则通过从小规模数据集中迭代创建新解决方案来生成多样且可靠的数学问题和解决方案;

规划器则协调多个模型或工具以解决问题。例如,使用自然语言理由和基于程序的工具序列协同解决数学问题。

一个是关于数学推理上的一些代表方案:

一个是关于专门做数学推理的大模型列表:

三、OpenAI o1模型复现再总结

关于openAI O1跟进,目前已经有多个方案了。目前已有的方案大多采用的是使用知识蒸馏模仿o1的推理风格,但这些方法的效果受限于教师模型的能力上限。

我可从下表中看到目前o1的一些尝试,例如k0-math、skywork-o1、Deepseek-R1、QwQ和InternThinker,但这些模型尚未开源。

g1可能是最早尝试重新实现o1的项目,采用的方法是提示工程。提示大型语言模型自我反思并提出多种解决方案来克隆o1的行为。

Thinking Claude的工作方式与g1类似,它通过更复杂和细粒度的动作提示大型语言模型,如问题分析和进度跟踪。g1和思考克洛德都能重塑大型语言模型的行为,使其类似于o1,但尚未在推理基准测试中验证的提示。

Open-o1提供了一个安全函数训练(SFT)数据集,其中每个回应都包含长长的上下文。但目前尚不清楚这些数据来自何处,可能来自人类专家或一个强大的大型语言模型。开放-o1发现,在的数据集上训练 llama-3-8b 和 qwen-7b 不仅能够塑造模型回应的风格以模仿o1,还能提高模型在推理基准测试上的表现。

o1 Journey在第一部分通过束搜索生成的树状数据被遍历,特定节点由GPT-4进行精炼,然后用于监督式微调。论文中呈现的例子突出了模型的自我反思能力,这来自于GPT-4的精炼。第1部分采用的方法可以描述为专家迭代,其中SFT应用于通过搜索生成的数据。第1部分还将o1-mini注释的PRM与数学牧羊人进行了比较。在一篇2024年的研究中,发现o1-mini的性能优于Math-Shepherd。在第二部分引入了一种截然不同的方法。第一部分侧重于强化学习,而第二部分则尝试蒸馏o1-mini。尽管o1-mini隐藏了思维链(CoT)并且只输出CoT的摘要,第二部分则尝试通过提示o1-mini来增强摘要,从而恢复隐藏的CoT。通过蒸馏,发现在AIME上Qwen-72B的性能优于o1-preview。然而,这并不意味着蒸馏使得学生模型能够超越教师模型,因为o1-mini在AIME上也超越了o1-preview。

Open-Reasoner的框架类似于AlphaGo,利用强化学习来提升模型性能。在测试阶段,采用蒙特卡洛树搜索(MCTS)来确定最优解。这个搜索算法仅在测试期间应用,而训练数据则是通过当前策略进行采样得到的。此外,采用了与Math-Shepherd类似的方法来训练奖励模型。

Slow Thinking with LLMs与o1 Journey类似,第一部分与Open-Reasoner类似,结合了强化学习和测试时搜索。但与开放式推理器不同的是,它在训练期间采用了DPO算法而不是PPO算法。在测试阶段,它还采用MCTS算法进行搜索。第2部分从QwQ和Deepseek-R1蒸馏出知识,并尝试了两种强化学习方法:DPO和SFT,使用来自拒绝采样的数据进行训练。发现,通过从QwQ和Deepseek-R1中蒸馏成千上万个例子,可以在具有挑战性的推理任务上显著提高性能,而基于蒸馏的强化学习可以带来进一步的改进。

Marco-o1整合了Open-o1的数据和模型自身生成的数据,通过MCTS算法进行SFT训练。Marco-o1展示了在每一步MCTS过程后提示模型进行自我反思,增强了搜索的有效性。

o1-coder尝试在代码生成上重新实现o1。训练一个生成器来生成测试用例以提供结果奖励。有了结果奖励,使用MCTS算法生成代码解决方案,然后用于通过SFT改进策略模型。按照Wang等人(2024c)的方法训练了一个PRM,该方法随着策略的改进而更新。

所以,可以从更为本质的方案出发,通过分析强化学习的方法,看看如何实现o1,但其中的核心就是在于,如何有效地初始化策略、设计奖励函数、实现高效的搜索算法以及利用强化学习进行学习和优化

关于这块的总结,可以看看最近的进展,复现OpenAI o1模型的路线图,《Scaling of Search and Learning: A Roadmap to Reproduce o1 from Reinforcement Learning Perspective》(https://arxiv.org/abs/2412.14135),可以看看其中的几个点:

一个是整个roadmap的设计,如下:

一个是采用强化学习这条路,所包括的四个关键组件,策略初始化、奖励设计、搜索和学习。

我们分别来看,

一个是策略初始化,策略初始化使模型具备基本推理行为,能够有效探索复杂问题的解空间。预训练和指令微调是策略初始化的两个主要阶段。预训练通过大规模文本语料库学习基本的语言理解和推理能力;指令微调则将预训练的语言模型转化为面向任务的代理。

一个是奖励设计,奖励设计为搜索和学习提供指导信号。过程奖励模型(PRM)比结果奖励模型(ORM)更适合复杂的推理任务,因为它不仅奖励最终结果,还奖励中间步骤。也可以将稀疏的结果奖励转化为密集的过程奖励

一个是搜索,搜索在训练和测试阶段都起着重要作用。训练时搜索生成高质量的训练数据,测试时搜索通过迭代改进模型的策略。树搜索算法如蒙特卡罗树搜索(MCTS)和束搜索(Beam Search)在生成高质量解决方案方面表现出色。

一个是学习,学习利用搜索生成的数据进行策略改进。策略梯度方法和行为克隆是两种主要的学习方法。策略梯度方法如近端策略优化(PPO)和直接策略优化(DPO)通过梯度上升更新策略,行为克隆则通过监督学习逼近专家策略。

总结

本文主要讲了大模型推理方面的工作,看看多模态大模型数学推理总结以及OpenAI o1模型复现跟进,有两个值得看的总结性工作,其中的细节,篇幅有限,不做更多详细介绍,感兴趣的可看论文做更细节消化。

参考文献

1、https://arxiv.org/abs/2412.11936

2、https://arxiv.org/abs/2412.14135

关于我们

老刘,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。

对大模型&知识图谱&RAG&文档理解感兴趣,并对每日早报、老刘说NLP历史线上分享、心得交流等感兴趣的,欢迎加入社区,社区持续纳新。

加入会员方式:关注公众号,在后台菜单栏中点击会员社区->会员入群加入


老刘说NLP
老刘,NLP开源爱好者与践行者。主页:https://liuhuanyong.github.io。老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。
 最新文章