在所有人都在谈论R1的今天,作为算法也是有些千头万绪无从抓起。所以这一章先复盘,我先按照自己的思路来梳理下R1之前整个模型思维链的发展过程。下一章再展望主要去看RL在Agent上的一些尝试,毕竟Agent规划和长思考的本质是非常像的,在优化中面临的问题也是类似的。
梳理大模型出来后的这两年时间,个人认为思维链的技术在R1出现之前,可以分成大致3个阶段(哈哈可能每个人都有自己的分类标准吧):
下面我们细说下每个阶段的一些代表方案
COT相关的各类论文可以直接看Github
开始讨论如何使用思维链来提升大模型效果的起点就是Let's think step by step的论文,它首次提出了Chain of Thought概念,也就是让模型先思考再回答可以有效提升任务完成效果。
之后差不多1年的时间里出现了很多探索如何优化COT方案的论文,主要集中在以下几个方向
不难发现以上的论文还基本停留在,通过指令告诉模型你应该如何思考,或者通过few-shot像模型示范正确的思考方式,以及探索使用不同的逻辑思维方式来提升模型在各个领域的思考效果上。
同期结合Agent的概念,也出现了不少的论文是探索如何把COT和Action,工具调用进行融合,包括
第一阶段的大模型思维链还相对基础,主要停留在面向不同领域任务的Prompt设计,面向结果居多,并未深入探讨思维链的过程,什么时候使用思维链更好,以及为何思维链能提升推理的效果。
DeepMind: Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters
SELF-REFINE: Iterative Refinement with Self-Feedback
GLoRe: When, Where, and How to Improve LLM Reasoning via Global and Local Refinements
PRM: Let's verify step by step
rStar-Math: Small LLMs Can Master Math Reasoning with Self-Evolved Deep Thinking
第二个阶段的代表论文是DeepMind提出的Inference Scaling概念,论文首次抽象并量化了思考的过程,以及可以带来的收益,核心观点是
那结合DeepMind以及众多其他推理搜索的论文,我们可以总结归纳出来,推理阶段的思维链生成,包含两个核心能力也就是推理链路的生活能力和打分能力
在Inference Scaling的基础上再进一步,很自然就会想到既然我们能通过在推理阶段海量的探索和打分找到相对更优的推理链路,那我们是否就能把这更优的推理链路直接通过训练内化大模型的参数中,这样在推理侧不就不需要这么高的推理资源了么?
那如何如何把外生推理搜索过程内化到模型中,既保留思考效果,又保证全场景泛化能力;以及是否能突破MCTS的上限,获得更稳定,质量更高的思考链路就是下一个阶段大家核心探讨的问题了。
虽然后面R1的推出让大家开始怀疑推理搜索技术的合理性,但可能殊途也能同归。如果搜索推理走到极致也能媲美O1的思考能力,例如rstart-Math已经部分跑通,在数学任务上只靠外生推理搜索就能让下模型在部分任务媲美O1的推理能力。只不过当前搜索推理的一个问题更多在非STEM问题的泛化上
STaR: Self-Taught Reasoner Bootstrapping ReasoningWith Reasoning
RL on Incorrect Synthetic Data Scales the Efficiency of LLM Math Reasoning by Eight-Fold
Math-Shepherd: Verify and Reinforce LLMs Step-by-step without Human Annotations
12月OpenAI RFT:https://www.bilibili.com/video/BV1P2qBY2EwK/?vd_source=52e5d8e60f1d8edf228e8fded56b41631
12月字节 REFT:Reasoning with REinforced Fine-Tuning
下一个阶段,自然以跨时代的O1作为代表,也就是把更强思考能力内化到模型中的方案,可以分成以下两个部分
首先是思考样本质量的提升方案,主要是以STaR为代表的模型自由化Bootstrap方案和OpenAI提出的Prover-Verifier对抗优化方案。 其中Bootstrap方案主要通过对模型生成的多个推理结果进行拒绝采样,筛选更优推理链路,再通过SFT训练进模型,再基于新的模型生成更优的推理链路再训练,这样反复迭代不断提升样本质量。R1的训练过程中,也用了类似的方案,就是RL训练得到R1-Zero后,会使用R1-Zero通过拒绝采样来构建大规模的思维链样本重新训练DeepSeek-V3。
而对抗优化的重心更多在Verfier,也就是随着大模型Generator能力的提升,对应Reward模型的能力也要随之提升,才能持续为模型提供有效的监督信号。所以会借助辩论,或者Proposal尝试迷惑Verifier等博弈对抗方案,来同时提升生成器和校验器的模型能力。
但最近常看R1的Reasong思考过程也让我产生了一个疑问:在训练过程中构造的COT,真的是过程越正确的思维链更好么?会不会基于PRM步骤打分得得到的更加正确的思维链,在一定程度上本身会抑制模型的反思能力,以及思维链的泛化性?毕竟中间过程都是正确的,类似于找到了整个思考链路中的Shortest Path,把反思,错误优化,尝试其他假设等基于错误思考节点的反思优化能力都抛弃掉了。而R1-Zero完全基于RL训练的思维链只基于目标优化,没有冷启动过程,反而不存在这个问题?
其次是如何把长思考能力内化到模型参数中,方案还是主要集中在SFT上,但通过SFT训练的模型,在样本外的思考泛化能力较差,因此有很多方案都集中在如何提高SFT训练的泛化性。
前期主要方案在Data Augumentation(offline Training),通过更充分的利用推理时生成的思维链正负样本,让模型在学习时有更多的选择,降低对单一思考链路的拟合,包括
中期大家开始更多考虑RL,不过RL目标的设计相对复杂,多采用了PRM的打分方案。 这类方案主要针对Math和Code这两个垂直领域,例如
后期方案同样是RL,但大道至简,RL的奖励函数重新回归简单,收敛到了基于结果(标准答案+规则打分)的优化方案。 分别有OpenAI在24年底推出的RFT(可申请测试),和同期字节推出的ReFT。前者更多针对system2到领域模型的思维链优化,后者主要针对system1到system2思考模型的优化。其中
不难发现在RFT,REFT的阶段大家已经开始探索基于结果(标准答案) 的RL对于提升模型思维链泛化的效果,但是和R1的实现相比,个人认为有几个核心的差异点,主要来自SFT和RL的技术定位差异。
以SFT为主RL为辅,RFT和ReFT本质还是以SFT为主,也就是先把准备好的思维链样本喂给模型,而RL的作用更多是进行拒绝采样,也就是从模型推理的多个候选思维链中,奖励更好的,惩罚不好的。DeepSeek V3其实就是这种训练方案。但是这种方案可能会存在一些问题
而R1-Zero揭示了模型思考能力这个领域上,可以是RL为主SFT为辅的技术方案。前期只依赖RL,让模型在更广泛的空间中直接进行思维链编排的各种探索,即便使用SFT进行warm-up,个人认为这部分的量级和训练steps也都不会太大,本质只是为了加速RL训练的收敛。
以及RL可以单纯依赖数学,代码,这些思考密度更高的领域训练得到。 本质上全领域世界知识能力的获取,和思维能力的获取是存在差异的,前者依靠背,后者靠探索习得。这两种能力本质可能存在差异,只不过之前有一些思维惯性在,因此更多沿着前期SFT的范式去做,但实际可能并非如此。
想看更全的大模型论文·微调预训练数据·开源框架·AIGC应用 >> DecryPrompt
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。