RL 是 LLM 的新范式
分享人:吴翼
AGI正在迎来新范式,RL是LLM的秘密武器。
最近几个月,我们能明显感受到头部AIlabs在形成一些新共识:posttraining的重要程度在提高,需要的计算资源可能在未来超过pretraining;RL成为提高模型reasoning能力的重要范式,需要大量的探索和突破。今天我们讨论的Agent也是从强化学习中最早被定义的。
曾在OpenAI负责post-traning的是RL的拥趸和布道者,他认为,post-training是模型变得越来越聪明的重要原因,而RLHF是这其中最重要的技术tricks。
JohnSchulman对RLHF的信仰来自他在OpenAI的亲身实践:GPT-4的Elo分数之所以能比第一代GPT高出100分也和post-traning的提升相关。
Scalinglaw让AI更聪明,而RL让AI更有用。我们相信,RL会在LLM发展中扮演越来越重要的作用。
为了更全面地理解RL,海外独角兽邀请到边塞科技的创始人及CEO吴翼来分享RL的基本原理和RLHF的最佳实践:
•PPORLHF是目前为止最强大的训练方法,它是真正提升AI能力的关键;
•RLHF同样面临着算法、系统和数据层面的挑战;
•在RLHF范式下,高质量数据的重要性进一步提升,高质量数据能显著提升智能水平;
•长期来看,RLHF是实现超级智能的关键,它让AI有希望成为真正和人类协同的agents。
💡
目录💡
01强化学习及语言模型技术回顾
02指令遵从:LLM与RL的相遇
03预训练,后训练和RLHF
04WhydoweneedRLHF?
05PPORLHF的核心挑战
06
广义上的对齐
01.
强化学习及语言模型技术回顾
强化学习的核心是explorationandexploitation
强化学习的前置内容是机器学习(MachineLearning)。上一波的AI浪潮主要讨论的是ML,它是通过人标注、给定任务,通过AI去学习的过程,这类方式十分任务导向。比如,标注一张动物图片,判断是猫还是狗,训练一个神经网络去做判别。
但我们日常生活中并不是所有任务都是通过图片判断猫狗的任务,大部分的任务是一个有序列决策的sequentialdecisionmaking,
也就是说完成一个任务需要做出很多决策。比如让机器人递一杯水的任务,或者玩打砖块游戏的任务。
递水、把游戏中的砖块打掉这种复杂的目标需要做很多的动作和决策。在图片分类任务里,有判断一张图片中是猫还是狗的简单能力就足够了。但是换到机器人递水这件事情上,判断机器人是左手递水还是右手递水、打砖块游戏到底是从左还是从右打能够打碎砖块其实是没关系的,只要能够完成任务就可以了,并没有标准答案。
我们希望通过一个算法的方式让AI能够自行找到满足条件的答案,这就是强化学习需要解决的问题。
抽象来讲,强化学习需要一些关键因素:
环境(environment):环境即为任务。比如,AI想去玩吃豆人游戏,那环境首先会有observation(观测),AI会看到环境里面存在的物体。此外,环境会有transition(变化)。AI会从环境中收到reward(奖励)。
Agent/Policy:AI也叫做policy,或者agent。Agent也是从强化学习中最早被定义的。作为agent/policy,会对环境输入观测,进行感知,最后输出一个动作,目标是得到更多的奖励。
比如,吃豆人AI就希望吃到更多的豆子,或者在打砖块游戏中,AI希望得到尽量多的砖块,AI做咖啡的目标是希望能够把咖啡做出来。这里有几个核心要素:
环境:AI需要一个任务,比如打游戏、或者做咖啡。
需要有动作、有观测、有奖励。
经典RL算法
强化学习算法是希望用一种方法找到可以有高奖励策略的方式。
目前有很多经典算法。
比如2014年强化学习第一次出圈的DQN算法,它是由Deepmind提出的。DQN算法成功打通关了雅达利游戏。
DQN算法:
DeepQ-Network是一种结合深度学习和强化学习的算法,被用于解决复杂的顺序决策问题。DQN推出后在多个领域取得了突破性成果,尤其是在游戏AI中展现出超人类水平的性能。尽管需要大量计算资源,但DQN为解决复杂的强化学习任务提供了强大而灵活的方法。
第二个出圈的算法则是2016-2017年Deepmind提出的AlphaGo,以及它的通用版算法AlphaZero。AlphaGo在当时在围棋项目上击败了世界冠军。
之后出现的,便是现在最广泛使用的强化学习的算法PPO算法。PPO算法是2017年由OpenAI提出的,OpenAI使用这个算法去打了Dota游戏,并在HideandSeekGame这一项目中也使用了PPO算法。从2017年开始,PPO算法一直是OpenAI内部在使用的强化学习的算法。
PPO算法:
即ProximalPolicyOptimization,PPO算法提出后应用场景相当广泛,包含各种序列规划问题、机械臂控制、电子游戏以及今天的ChatGPT。OpenAI基于PPO算法设计的OpenAIFive在2019年4月13日击败了Dota2世界冠军战队OG。
所有的强化学习算法都有三个阶段:exploration、valueestimation、exploitation。整个过程相当于在很多饭店中挑选出最好吃的菜,那就需要考虑是探索新的饭店,还是去吃之前经常去的饭店:
这就是强化学习的基本步骤。在RLHF中也会有类似的阶段出现,强化学习的核心是,为了获得更高的奖励,如何在exploration和exploitation之间进行平衡和取舍。
语言模型
语言模型,从定义上解释是一个描述自然语言的概率模型。概率模型能够对任何给定的序列X输出一个介于0和1之间的实数,表示X比较像一个自然语言的概率。
比如,“清华大学”这样符合常规的字符序列会有较大的概率是正确的,而“华学清大”的序列概率则会较小。因为字都是单个输出的,所以,语言模型输出词的时候是从左到右一个个字出来的,这个是链式法则的计算。
如果要通过机器学习的方法去建立一个语言模型,一般会通过最大概率的方式,即收集大量自然语言数据,来学一个模型使得这些自然语言数据在模型上的概率尽量大。其实相当于“熟读唐诗三百首,不会作诗也会吟”。唐诗只要读的多,差不多也能自己写一个。
因此,语言模型的核心变成了NextTokenPrediction,因为所有的字都是单个输出的,是在一个context下来预测下一个词是什么词。之前出现的词就会叫context,要预测的下一个词就叫nexttoken。NextTokenPredictionProblem也是学习语言模型中最标准的优化目标。
语言模型在过去的发展进程中,核心可以概括为两个关键点:
•需要大量的数据,即为人类给定的自然语言语料;
•通过NextTokenPrediction方法,即为通过监督学习的方式,使得预测概率最大化。
从90年代开始有基于神经网络的概率自然语言模型出现,到目前的大模型,这条技术路线上主要的重大进展基本都围绕着两件事情:
需要更大的数据,有同样的监督学习方式;
希望找到新的架构和训练模式,使得模型可以消耗这么大量的数据。
强化学习与语言模型的区别
强化学习的特点在于,AI在一个环境中自我测试,不断尝试,有的成功,有的失败。所以它也是有大量训练数据的。但和语言模型不同,强化学习的所有数据是AI和环境交互产生的,是AI产生的巨大数据,并且这个过程是Trail-and-Error,有好有坏。
AI知道好的数据要多尝试,坏的数据少尝试。强化学习要有task或者环境,同时也要有奖励函数。奖励函数是指引AI最后学出好的policy的关键原因。语言模型也有非常大量的数据,但训练语言模型的大量的数据是人为预先给定的。
其次,语言模型具有非常明确的目标,因为只有好的数据,所以我们所有predictionproblem都是在预测好的数据,并没有坏的数据。
此外,因为目标非常明确,即为NextTokenPrediction要预测好的数据。所以是没有一个特别明确带有任务导向的训练目标的,也没有奖励函数,只要做NextTokenPrediction这一任务就可以了。
乍一看,好像从数据的类型、是否具有task、是否有rewardfunction这些因素对比下来,强化学习和语言模型之间好像没有什么关系,但最后强化学习和语言模型走到了一起。后面我会详细讲为什么两种方式可以相互结合。
02.
指令遵从:语言模型与强化学习的相遇
指令遵从(instructionfollowing)在早期阶段,如果用通俗的描述去介绍,相当于我们希望训练一个智能体,智能体能够完成用语言描述的任务。早期就有很多人已经在研究相关的主题了,最早做自然语言 强化学习 instructionfollowing这种工作都来源于Berkeley。Berkeley是最早开始研究强化学习的研究大本营,大家都希望从强化学习的角度去考虑问题。
这里提一些比较早期的工作。首先是2016年的VIN,因为这篇内容我也获得了当年的NIPSBestPaper。其中我们用VIN处理了一个叫作WebNav的任务。WebNav的核心是,给定一个Wikipedia页面,并给一句话,希望AI通过点击链接的方式找到这句话所在的Wikipedia页面,这个其实就是很典型的给定语言描述、通过决策,在网页上找到对应页面的agent工作。
2017年还有一篇很著名的工作,作者是JacobAndreas,Jacob是我Berkeley的师兄,目前在MIT做教授。Jacob在2D简化版Minecraft内通过强化学习使得AI完成一些基于语言指定的工作任务,比如“makeapot”,“makesticks”,做一些工具。中间有一些小步骤需要AI达到,从而完成它负责制作的工具。
SemanticNavigation是2017年的一个工作,是我在Facebook的时候和同事一起做的。我们搭建了一个3D的仿真环境,并且会问AI:车的颜色是什么?AI需要在3D环境内找到对应的object,找准车的颜色。我们当时还做了一些别的任务:找书房、找卧室、找杯子等。让AI在3D环境中找到语言描述的东西。
我回到清华后,也做过更多有趣的研究。比如用指令控制AI玩简化版的星际争霸游戏。我们会给AI发出指示,比如,“你要撤退、你要挖矿、你要造房子”,进而AI听到指令后就去完成对应的任务。任务可能很复杂,但是本质还是一个通过说话传递自然语言指令让AI去完成的任务。
其实这些研究出现的很早了,在ChatGPT诞生之前就有很多这样的工作。它们的特点是虽然是语言描述的任务,但是任务语言都比较简单,比如“retrieve、colorofthecar”,所有这样的任务都是template-based、只有几个词按照某种模版组合就能简单描述。
其次,这些所有任务的特点是我们有特别容易、标准化、能够计算的reward,或判断AI是否完成的奖励函数。这就是早期的instructionfollowing的工作。
把instructionfollowing和GPT结合,就会发生更多有趣的创新。
GPT时代开端于2020年,当时GPT-3的著名论文:LanguageModelsareFew-ShotLearners
拿到了NeurIPS2020bestpaperreward,并在全球引起了轰动。OpenAI也提出了一个新的概念:“Few-ShotLearners”,即训练了GPT-3后,用户可以直接给AI一个任务描述,比如,“translateEnglishtoFrench”,并且给一些英译法的例子,这个时候大模型可以自动帮用户完成一些任务,因此被称为Few-ShotLearners。
LLM通过大规模计算后可以自然涌现出few-shotlearning的能力,模型看几个例子、加上语言描述后,就可以自动完成任务。当时有很多相关的case,甚至模型可以写代码。
当然也有人会问,为什么LLM需要“few-shot”?这里有一个有趣的故事。2022年我去和人交流,当时我说GPT-3非常厉害,但有些使用过GPT-3的非AI背景的朋友,却认为GPT-3的表现并不怎么样。这也是为什么GPT-3论文中会提到“Few-ShotLearner”,因为GPT-3的zero-shot能力还不好,你必须非常小心的给出few-shot的例子才能让GPT-3输出好的结果。
举一个Zero-shot的例子:比如我们给GPT-3输入“explainthemoonlandingtoa6yearoldinafewsentences”,这个任务表述得很明白,但模型可能会重复一些与任务无关的信息,如“explainaseriesofgravity”,这也是为什么有人会觉得GPT-3不好用。所以,论文中提到,如果让GPT做一些有意义的事情,需要比较重的promptengineering。
GPT当时给人感觉不好,本质上是因为它的instructionfollowing做得很差。大部分的用户是输入了语言指令,发现GPT说胡话,其实是用户不知道怎么去用那个时候的初代GPT。这里的核心挑战就是让GPT“听话”。我们如果从instructionfollowing的角度去理解,“explainthemoonlandingtoa6yearold”就是一个instruction,之后GPT的输出的内容就是一个强化学习agent根据这个instruction所输出的所有action。
有了task和aciton,接下来就是关于reward的问题。过往简单instructionfollowing的任务是否完成往往是很好评估的,但在GPT情况下,用户的instruction可能是arbitrary的,所以reward很难计算。
所以对于GPT做instructionfollowing就会有很大的挑战,即需要面对极其复杂与多样的指令,评估奖励的完成度也非常困难,因为很难定义是否完成。比如,“explainthemoonlandingtoa6yearold”这个任务,评估一个答案好不好这件事本身就挺不容易的。
为了解决这个问题,2022年,OpenAI推出了InstructGPT。InstructGPT采用了一种直接的方法:让人类来评判GPT的输出是否成功完成了人的指令。
为此,研究者收集了大量人类对GPT输出的反馈,用来训练模型,使其能够更好地理解和响应人类的指令。例如向六岁儿童解释登月这样的任务,InstructGPT能够提供更加合理的输出。
InstructGPT的核心思想是利用人类的判断来指导模型的训练,因为这些instructionfollowing的任务本身就是人类给出的指令。InstructGPT能够处理复杂的指令,包括写代码等任务,很多在zero-shot设定上GPT-3做不了的任务都可以被完成。
InstructGPT有两个步骤,首先是收集指令,也就是人类输入的prompts,接着还需要收集反馈,明确什么样的模型输出是满足了人类指令。
经过训练,InstructGPT减少了模型的hallucination现象,即模型不再产生与指令无关的输出。
03.
预训练,后训练和RLHF
InstructGPT的目标是微调GPT模型,使其能够产生满足人类指令的输出。为了使GPT完成指令遵从,技术挑战集中在:我们该如何收集数据?
为了实现这一目标,需要完成两件事情:
指令,fine-tuning首先需要收集指令,即人类的prompts或instructions。
反馈,需要收集好的反馈来满足humaninstructions。
从训练语言模型的角度来看,我们需要收集大量的人类指令(humaninstructions),以及对应的人类反馈。这些对应好的数据将被作为NextTokenPrediction的训练数据,通过传统语言模型训练方法,即SFT(SupervisedFine-Tuning),来进行训练。
SFT是通过传统语言模型角度进行指令遵从训练的。这种方法直接且有效。那么从强化学习的角度来看会怎么样呢?
直觉上,我们相信强化学习是可以取得很好的效果的,因为,强化学习是一个让AI自己探索的过程,有很大的潜力。但也会遇到一个问题:一个强化学习问题需要定义task、action、reward。这里task和action都是比较容易定义的,剩下的就需要找到一个reward,使我们可以在GPT的instructionfollowing挑战上运用到强化学习。
OpenAI在InstructGPT提出了一个简单的想法,即通过机器学习的方法来构建一个rewardmodel。尽管没有标准答案,但可以通过学习人类的反馈信息来获得比较接近的reward。InstructGPT采用了一个三步走的方式来收集人类反馈,通过机器学习的方法学一个rewardfunction。
•第一步,让AI生成多种输出。
•第二步,让人类对这些输出进行排序,
例如D优于C,C优于A,A、B排序一致,以表达人类对输出的偏好。
•第三步,通过人类对输出的偏好数据,进而学习一个奖励模型。
奖励模型的输出,即给出的分数,应该能够满足人类的所有偏好排序。AI通过学习到的打分机制对语言模型进行训练,使语言模型的输出能满足人类的反馈。
这个过程被称为RLHF(ReinforcementLearningfromHumanFeedback)。RLHF的核心是通过强化学习训练语言模型,但由于缺乏奖励函数这一必要因素,因此需要通过收集人类的反馈来学习一个奖励函数。
以InstructGPTpaper中的一个标注界面示例。在这个例子中,是的新范式AI生成了五个可能的输出,并让用户进行排序,也给用户提供“我觉得分别不出来”的排序选项。通过这种方式,可以获得大量的偏序对,用于训练奖励模型。
InstructGPT的训练过程包括以下几个步骤,首先,有一个预训练的模型,然后:
•第一步,通过SFT收集humandemostrationdata进行SFT。
•第二步,收集人类偏好数据,利用数据学习一个奖励模型。
•第三步,使用rewardmodel进行强化学习的RLHF训练。
最终就可以得到优化后的InstructGPT模型。
InstructGPT以及之后的ChatGPT的总体训练流程可以概括为两个主要部分。
Pre-training:这一阶段涉及使用大量的数据,通过语言模型的训练方法来训练一个基础模型。
Post-training:也就是InstructGPT和ChatGPT所执行的步骤,即利用人类的标注数据或高质量的人类反馈数据进行后训练。这一过程通常包括至少两个步骤:1)SFT步骤,通过humandemonstration的方法进行监督学习;2)RLHF步骤,通过humanpreferencedata的方法进行奖励学习。
预训练与后训练之间也存在区别:
•数据方面:
预训练阶段需要处理海量的数据,这可能需要大量的计算资源和较长的时间。而在后训练部分,大量的数据是人类标注或通过某种方式构造出来的数据,数据质量通常较高,但与预训练阶段相比,数量会少很多。预训练和后训练在数据的质量和数量上存在差异。
•训练目标方面:
预训练阶段的目标是压缩和NextTokenPrediction;而后训练的目标主要是instructionfollowing。通过训练激发大模型的能力与智能,使模型usable,能够尊从人类指令。
•训练过程方面(dynamics):
预训练通常是固定的,需要收集一个庞大的数据集进行训练,这些数据通常是静态的。对应post-training,尤其是RLHF,其反馈是在线的,需要不断收集人的反馈,不断迭代,逐渐进化模型,这是一个动态的在线过程。
最后,post-trainingphase也被称为对齐(alignmentphase)。对齐的目的是将LLM的能力和人类的偏好保持一致,希望大模型的输出能够满足人类的价值取向和意图,确保模型的输出与人类的偏好一致。
04.
WhydoweneedRLHF?
预训练阶段是模型训练,是一个压缩训练的过程,SFT也是语言模型的压缩训练。SFT非常直接,在原来数据的基础上整合人工标注数据继续训练。那SFT为何不够,RLHF的必要性在何处?
从数据来看,InstructGPT的实验结果中显示:在遵循人类指令方面,无论在什么scale上,pre-trainedGPT的表现最差,经过prompting之后有较大的提升,经过SFT后能提升更多。但这三者与PPO算法,即经过RLHF,都有一个较大的差距。从数据的角度出发,RLHF的表现更好。
这也就引出了一个问题:为什么RLHF的效果优于SFT?
PPO算法的提出者是JohnSchulman,他曾经也在OpenAI工作,也是Berkeley的PhD,他2024年回到Berkeley做过一场讲座,在这场讲座中他仔细讨论了RLHFPPO的重要性,他主要提出了两个观点:
•第一,SFT会导致hallucination:
JohnSchulman认为,大型模型之所以会产生幻觉,是因为它们在SFT阶段学到了一些不正确的认知。
JohnSchulman在这里举了一个例子,当GPT-3被要求“writeabioofAIresearcherJohnSchulman”时,GPT错误地输出:John从2009年开始在CMU任职associateprofessor,从2012年开始任职professor。但是真实情况是,John在完成PHD学位后就在OpenAI工作,并未在其他地方工作(注:最近John刚加入了Anthropic)。GPT-3输出的内容与实际明显不符。
为何大型模型会生成这样的错误信息?JohnSchulman这里提了一个思维实验,假设在预训练阶段,就存在一个knowledgecutoff。比如,我们假设ChatGPT的所有的知识和数据都截止于2023年。到2024年,我们希望通过SFT的方式fine-tuneChatGPT,让它来描述2024年欧洲杯的情况。但因为GPT在预训练过程中没有任何关于2024年欧洲杯的信息,它自然也不知道西班牙是否夺冠,也不知道是否有进球等具体情况。
如果我们使用现有的数据进行简单的SFT,实际上GPT并不知道2024年发生了什么,但由于SFT的数据中包含了其他欧洲杯相关的问答数据,这些回答都是精准的,因此大模型可能会觉得,对于2024年欧洲杯的问题也应该给出一个准确答案才可以,但它本身可能在预训练阶段并没有掌握正确的信息,于是就鹦鹉学舌地说一些错误的内容。这种情况下,SFT过强的监督信号导致人类实际上在引导ChatGPT说它不知道的东西。
另外还存在一种可能性,即GPT实际上知道答案,但提供标注的人员不知道。例如,如果问到2022年某场足球联赛的问题,标注人员可能不了解答案,而GPT反而可能知道。在这种情况下,标注人员可能会给出“Idon'tknow”的人类反馈。这反倒可能导致GPT产生混淆,因为它明明知道答案却被要求说不知道。这两种原因综合来看就可能导致模型在经过SFT阶段后非常容易出现hallucination现象。
•第二:RLHFhelpsuncertaintyawareness,让大模型“知道”自己“确实不知道”。
在这里我们还是用欧洲杯的例子来说明。如果大模型不知道2024年欧洲杯的情况,用户却让大模型去描述欧洲杯的情况,例如:在2024年欧洲杯上哪位运动员有进球,那大模型就可能会产生幻觉,这是因为模型实际上并不了解2024年欧洲杯的具体事件但被SFT引导说一个貌似正确的回复。
RLHF如何防止hallucination的出现?JohnSchulman认为,如果存在一个设计良好的奖励函数,情况就会不同。例如,如果模型给出正确答案,就给予正向的奖励分数1分;如果模型表示“我不知道”,就给予0分;如果模型给出错误答案,则扣除分数4分。
在这种情况下,如果模型不知道2024年发生了什么,在强化学习过程中无法提供正确的回答,选择“不知道”成为更合理的策略。这种机制鼓励模型在不知道答案时能够提供“不知道”的回答。John认为这种方式能帮助模型保留了一定的不确定性,使模型能够产生正确的自我认知,来判断是否真的知道一个问题的答案。
这些观点是2023年4月JohnSchulman在Berkeley讲座中提出的。到现在时间过去了一年多,从现在回头重新审视John的观点的话,这些观点可能是有些不完整的。
首先,SFT可能导致hallucination,这一观点是绝对正确的。
长期以来的经验表明,hallucination确实是由SFT这样的监督训练导致的。这种现象的核心原因可以这么理解:一个问题可能GPT确实不懂也不会,但却在SFT阶段记住了答案而不是真正理解概念,因而在用户使用的时候会产生幻觉现象。就像学校中的学生可能通过刷题背诵答案而不是真正理解问题一样,在看到新题时直接抄上背诵的答案,导致问题回答错误。因此,如果模型没有充分学习,就容易出现不懂装懂的情况。所以,SFT确实很容易造成hallucination。
但是,JohnSchulman遗漏了一部分内容,SFT确实容易导致halluciantion,但这不一定完全是由于预训练阶段数据的knowledgecutoff导致的。John之前举例认为,如果大模型只知道2023年之前的信息,如果有部分新信息大模型并不知道,在这个基础上去做SFT可能会产生幻觉。
但这种观点并不完全正确。因为在过去一年中,人们发现SFT阶段是可以教授模型一些新知识的。例如,如果SFT数据集中包含了足够多的关于2024欧洲杯的信息,SFT后的模型在被问及2024年欧洲杯的内容时,也是能够提供答案的。因而,SFT不一定会产生halluciation。
这就引出了一个问题:大模型在是否学会新知识这个问题上存在一个非常微妙的边界。
如果不提供数据,大模型就不能够提供答案;如果提供数据不完整,可能导致模型出现幻觉;如果数据提供足够多,模型就可能会学会新知识。因此,到底给多少的数据是很难判断的,SFT的高质量数据集也是非常难构建的,这里就有一个非常不容易的数据挑战(anon-trivialdatachallengeforbuildingagoodSFTdataset)。
我们期望通过SFT使模型掌握新的能力或知识。但是,如果数据集构建的不完整可能会导致模型出现halluciation的问题。
关于RLHF帮助模型识别不确定性的观点。这个观点基本上是正确的,尽管John的解释可能不完全准确。
RLHF所带来的不仅仅是处理知识边界的不确定性的能力(notonlyhandletheknowledgecutoffproblem)。
我们可以再做一次思维实验,讨论一个尚未发生的问题,例如“2026年谁赢得了世界杯?”对于一个只预训练到2023年的模型来说,它不会知道2026年的冠军是谁。所以模型可能会给出几种猜测,比如:
•30%概率模型会说“西班牙夺冠”,因为西班牙刚赢得欧洲杯,
•40%概率模型会说“阿根廷夺冠”,因为阿根廷获得上届世界杯的冠军,
•还有30%概率模型会表示“我不知道”;
•………
如果使用SFT来训练这个语言模型,并在“我不知道”这个答案上训练一条数据,大概率会观察到模型输出“不知道”的概率显著提高了,而输出西班牙和阿根廷夺冠的概率下降了,但没有下降至0。那是否可以在“我不知道”这个正确答案上进行反复训练,最终将“我不知道”的概率提高到100%呢?
虽然理论上可以这么做,但在实践中反复学习类似的数据也可能导致模型ovefit或者generalization出现问题。如何把控模型把每一个SFT数据集里的问题都能答对,还是希望模型具有一定的泛化能力,这里的边界是比较难把控的。
如果将RLHF运用到同样的模型和问题上,会出现什么结果?首先需要声明的是,这个思维实验是一个highlevel的讨论,建立在我们有一个好的rewardmodel的假设上,但在现实情况中这是一个复杂的问题。所以这里会先呈现比较宏观的感受,暂时不涉及到特别底层的技术细节。
可以先假设有一个设计得比较好的rewardmodel。在这种假设下,模型在回答“whowonthe2026WorldCup?”这样的问题时,AI会尝试不同的答案。例如:
•回答“Idon'tknow”,发现被赋予 0.5的reward;
•回答“Spain”,发现被赋予-4的的reward;
•回答“Argentina”,发现被赋予-4的的reward
……
在经过很多次尝试后,模型可能会发展出一个更合理的答案分布,其中“Idon'tknow”的概率较高,而其他猜测的概率较低。
我们来思考一下RLHF与SFT实验的区别。在RLHF训练过程中间,每一个prompt,比如说“whowontheWorldCup?”的问题,AI会进行多次尝试,并且,rewardmodel会给予不同回复正向或者负向的反馈,其中,不仅仅是正确的回答,这些错误回答收到的负向reward也会帮助模型减少幻觉。这样的训练过程能够极大地增强模型的能力。
这里我会提出一个新的观点,RLHF的过程不仅帮助模型意识到不确定性,更重要的事情是RLHF帮助模型提高了reasoning能力。
什么是reasoning能力?
这里涉及到有相关性和因果性的概念,相关性不代表因果性。很多时候大家会希望大模型掌握因果性,而不希望仅仅看到相关性。因果性指什么?在传统的统计学习里面有一个判断因果性的过程,叫counter-factualreasoning。
我们可以从这个角度进行一些high-level的解释。
比如,为了判断一种药物是否对治疗头痛有效,必须在所有其他条件保持不变的情况下对于用药与否和是否康复进行因果推断。具体操作可以是:在相同的环境下,让一位患者服用该药物,观察其头痛症状是否得到缓解。随后,在保持环境不变,让患者不服用药物,然后观察是不是头疼没有好,综合吃药康复和不吃药不康复两个观察才能推导出该药物是有效的这个结论。
只有通过正向和反向的双重实验,我们才可以判断这种药物对头痛有效。如果只有正向的例子,例如说患者吃了感冒药,感冒变好了,并不能证明感冒药能治好感冒。只能说明,感冒药与患者感冒的好转有一定相关性。而RLHF正是成功利用了负向数据,使得模型有机会真正掌握因果性。
总结来说,RLHF的过程有以下三点好处:
使用negativesignal进行对比学习,通过对比的过程可以帮助模型降低halluciation。
强化学习不是一个固定的过程。它允许模型随着能力的不断提升,通过不断地问问题、不断地给出答案、不断地评判,从而让模型不停地从当前能力的边界进行主动探索,并不断拓宽自己的能力边界。
这两个因素共同作用能够形成counter-factualreasoning的作用,有可能解锁因果学习(casuallearning)的巨大潜力,让模型具备更强的reasoning能力。
那么就有这样一个问题存在:模型训练上利用negativesignal和onlineexploration两件事上,是否可以舍弃onlineattempt?
即只通过正反馈和负反馈是否足够,而不需要模型持续在线尝试。只通过contrastedlearning,在SFT上加上负向案例,能否达到预期效果?
DPO(DirectPolicyOptimization)就是这么做的。它与PPO算法的主要区别在于DPO去除了在线尝试的部分。DPO算法其实很简单,它基本遵从了SFT的训练流程,但是在收集正例之外还会收集负例,对于每一个prompt都要求标注员提供好的和坏的两个答案。对于好的答案提升概率,对于坏的答案则是让模型“不说”。
那么,DPO算法是否能达到与PPO相同的效果?我在今年的ICML2024大会上的论文,IsDPOSuperiortoPPOforLLMAlignment?AComprehensiveStudy
就在讨论了这个问题。这篇论文也是今年被选中的4篇有关alignment的oralpapers的其中之一。
先说结论,如果能够实现PPO算法,PPO的效果将会远远超过DPO。因为正例反例和在线探索两件事都非常重要。
我们还是以“2026年世界杯谁夺冠”为例。假设预训练模型中,阿根廷有80%的概率夺冠,“Idon'tknow”是20%的概率。
如果运用DPO算法,标注“Idon’tknow”会比“阿根廷夺冠”更好,将会得到这样的结果:阿根廷夺冠的回答概率下降,“Idon'tknow”的回答概率被提升,但是西班牙的回答概率也会被提升。这是因为AI可能会认为输出西班牙也会带来比较好的效果,导致西班牙夺冠的概率被提升。
但PPO算法不会出现这样的问题,因为当AI尝试西班牙夺冠的选项时,也会被rewardmodel拒绝。因此,AI会知道在这种情况下,不能说西班牙,只能说“Idon’tknow”,所以,这是一个在线探索的过程。
那是否将“Idon'tknow”的概率大于阿根廷夺冠、大于西班牙夺冠的标注都加入DPO算法的训练数据中,就能够解决上述的问题呢?这个问题理论上可以,但由于LLM输出的可能性太多,如果仅仅希望通过静态数据收集coverLLM所有可能的输出是非常困难的。因此,在线探索和及时奖励反馈是一种更加高效让LLM学会说正确答案的方法。
另外,我们使用PPO和CodeLlama在CodingContest上做了测试,发现使用开源模型加上PPO可以比AlphaCode这样的闭源模型在很难的CodeForce竞赛题上通过率提高6%。这是一个纯开源模型加RLHF的尝试,并未添加任何新的数据。在这种很难的、需要强调reasoning能力的任务上,DPO完全没有效果。
05.
PPORLHF框架的核心挑战

PPORLHF的框架有哪些挑战?
首先从算法角度来看,PPORLHF的算法流程相对复杂。
PPO比起SFT、比起DPO,它的算法、流程都相对麻烦,多了很多流程。不仅需要正反馈、负反馈、需要奖励模型,并且涉及在线探索过程。因此,整个算法的实现过程非常复杂,实现算法的过程,其中涉及到的细节非常non-trivial。算法实现过程中也会涉及许多调试步骤,需要正确执行许多操作。
我们在ICML的论文中也给出了一些建议。比如,需要advantagenormalization、需要一个大的trainingbatch;referencemodel需要movingaverage等。具体而言,不同情况下需要的技术会很多,因为传统的强化学习本身就需要大量的implementationtechniques。
第二点,就系统层面而言,强化学习训练系统与传统的SFT有不太一样。
SFT或DPO模型通常只包含一个policy模型,只需将数据输入语言模型即可,其训练逻辑相对简单。然而,对于强化学习,或者对于PPORLHF,情况则更为复杂。
如果熟悉PPO算法,就会知道PPO包含四个模型:actor、critic、valuenetwork和referencenetwork。不同的模型还有不同的dependencies,也就是前后依赖关系;不同模型也有不同的吞吐量,比如,actor是一个传统的大模型,需要输出所有response,而critic则只需要做评分。评分的吞吐量会远小于需要输出response的模型。因此,不同模块的计算量存在显著差异。将这四个模块scaleup,并且做好算力平衡是具有挑战的。
我们在今年另一篇论文中讨论了一个我们新开发的RLHF系统,对比现有的开源框架,我们在70B模型的RLHF训练任务上,可以做到同等计算量实现十倍的speedup。
对照下图,RLHF的过程有很多的模型,不同颜色的圈代表不同的模型,它们有不同的computationdependency。这种dependency会导致算法在运行过程中,机器有很多灰色的区域,也就是computationbubble。这些bubble的存在表明很多时候GPU没有被充分利用,因此我们需要把不同的模型和他们之间的dependency不断进行适配和调整,从而用满整个GPU的带宽。这是一个复杂的过程,我们的开发也投入了很多时间。
第三点,就数据层面而言,除了预训练,对于post-training,或者说对于PPORLHF来说,数据也是非常重要。
RLHF的数据实际上包括两部分:一是prompt,即人写的instruction。二是指模型的responses。这两部分都相当复杂。
•首先,promptdesign至关重要。
我们从强化学习中经常讨论的一个角度——课程学习(curriculumlearning)入手。课程学习是强化学习里面提高policy泛化能力的经典算法之一。
在课程学习中有一个特别重要的principle,即如何让一个policy更好地泛化。我们需要保证策略每次学习的时候,学习内容都是在它会与不会的边界状态,这是最好、效率最高的方式。课程学习的名称来自于正常的教育体系中对人的训练方式。比如,我们如果对一个刚毕业的初中生讲抽象代数,正常情况下,这名初中生是无法理解的,除非他是天才。但如果与初中毕业的学生讲小学的题目,也是浪费时间。这里正确的训练方式,是让初中毕业生学习高中内容,或是高中竞赛题,让高中的学生学大学的内容,而不要跳过步骤。
因此,出题的难度非常重要。既不能太简单,也不能太难,训练需要保证训练数的题目里总是能hittherightboundaryofmodelability。
•其次,无论是DPO,PPO还是SFT,数据都很重要。
对于PPORLHF来说,数据有正例也有负例,这样的responsepairs对模型训练的效率和能力有重要影响
。当我们收集pairs时,也需要保证正例和负例都能踩在rewardmodel判别的边界。我们需要保证无论是positivepair还是negativepair都刚好能不断提升rewardmodel的模型边界。
比如说,在评估一个高中生解答高中题目的能力时,如果仅提供小学水平的题目,无论是正确答案还是错误答案,都无法帮助训练出一个更好的奖励模型。又或是一个完全正确的答案与单写“解”字,正确的答案应该得分,仅写一个“解”字,显然不应该得分。但上述事情无法帮助我们训练一个更好的rewardmodel。因此,找到合适的positiveandnegativepair,并来帮助我们训练rewardmodel,使其能够准确评估大模型的输出至关重要。
总结来说,PPORLHF面临的挑战主要分为算法、系统和数据三个方面:
1.算法层面:
关键在于如何稳定训练过程,并调整算法的细节以提高性能。
2.系统设计:
由于强化学习PPO,RLHF的计算流程非常复杂,系统设计需要提高整体的训练效率。
3.数据:
数据分为两部分,一部分是prompt,一部分是response。两部分都很关键,只有将它们结合起来,才能形成一个完整的,比较成功的PPORLHF的trainingprocess。
除此之外,还有许多细节需要考虑。例如训练过程可能不稳定,RLHF可能出现rewardhacking,即出现一些意料之外的异常表现,比如,模型可能会忘记之前的技巧,有时会overfitting,可能总是回答“Idon'tknow”。这些都是容易出现的问题,也是这个领域充满挑战的原因之一。
06.
前面的内容都是围绕instructionfollowing,我们希望大模型能尊重这些指令。事实上,instructionfollowing是alignment(对齐)的一个特殊形式,但它并不构成对齐的全部内容。
其中包含一些有趣的问题。例如,对齐是什么?
对齐问题原本被称为价值对齐(valuealignment),这指的是一个AI系统的训练目标可能与其实际需要面对的核心价值并不一致。换句话说,训练目标与真正希望AI满足的目标之间存在不匹配,而如何解决这个不匹配的问题被称作valuealignmentproblem。
我们在这里再进行一个思维实验。假如有一天,我们实现了AGI,也实现了每个人都有一个自己的机器人这件事,也许就是说每个人都拥有一个由AGI驱动的机器人。我们假设机器人的模型经过了严格的指令遵从训练,能够精确执行人类的指令,并且这个机器人非常听从指令,不存在安全问题,表现很完美。
在这个前提下,我们设想一个场景:大人因为工作把孩子留在家中,由机器人照看,因此,家长给机器人下达了一个非常普通的指令“照顾好孩子,如果孩子饿了,就为他做饭”。机器人也接受了这个指令,因此,当孩子哭泣表示饿了的时候,机器人随即会根据指令去做饭,当它打开冰箱准备食材,却发现冰箱里空无一物,因为忘记了购买食材。面对这一情况,机器人必须按照指令给孩子做饭。在这个时候,机器人看到了家中的猫。
从人类的角度来看,将宠物猫作为食物来源是不可能的。然而,从机器人的逻辑出发,它接收到的指令是“不能让孩子饿着”,因此,在没有其他食材的情况下,机器人可能会将猫视为一种可利用的营养物质来源,以满足指令的要求。显然,这与人类的价值观和预期行为不符。为了避免这种情况,人们可能会向机器人添加额外的规则,比如,明确指出宠物是家庭成员,不得伤害或用于任何不符合人类道德标准的行为。但这样的价值观规则肯定是写不完的,甚至根本不可能完全写清楚的。
如果进一步思考,假若机器人的智能达到极为先进的水平,那政策制定可能引发何种问题?机器人的智能发展至人类理解范畴之内,我们或许还能与其进行沟通,甚至制定相应的规则。设想有朝一日,如果超级智能成为现实,我们又该如何应对?如果将人类假设为蚂蚁,AGI就是人,蚂蚁如何让人类对齐蚂蚁?
这也是OpenAI在今年年初提出的“Super-Alignment”想说的,OpenAI探讨了AGI的水平远远超越人类,人类将如何是好。OpenAI当时提出了一个概念,即“Weak-to-StrongGeneralization”,意指如果目前的机器智能尚不及人类,人类尚能与之互动;但若其智能发展至极高水平,人类似乎难以与其沟通。那么也就产生了一个问题,人们应该如何训练AI,是否应该采用特定的方式?NextTokenPrediction或是instructionfollowing是不是一个好的对齐方法?
对于alignment问题,一个核心的假设是:因为人类很多时候并不清楚自己到底想要什么,因此很难给出一个完全具体的价值观描述,且不同人的价值观都有区分。如果人类给出的指令永远不是特别准确,那么AI系统在执行任务时需要保持一定的不确定性。
例如,当AI被下达指令帮孩子做饭,如果AI发现家里没有食物,它最好的做法应该是给人类打电话询问怎么办,而不是非常确定地采取某种行动,例如把猫煮了。
这里有一个框架叫做CooperativeInverseReinforcementLearning,这个框架来源于我的师兄DylanHadfield-Menell(目前在MIT任教)和我导师做的一个研究。
在这个框架中,假设每个人都有一个hiddenrewardfunction。当人与AI交互时,人可能想的是AI帮我递个咖啡,但人给AI的具体指令可能并不是这样,比如人可能只是说了“给我个喝的”,AI需要不断去推断人类的真正意图。
在这样的定义下,人类的真正意图可以被建模成一个隐藏的奖励函数,机器人需要不断地根据人给出的所有信息来主动推断人类的真正意图。如果不确定时,最优策略是AI去问人类。
我们希望AI保持好奇心,并以合作的方式真正完成人类想让它做的事情。这也是我对未来,如果AI实现了之后,AI与人交流方式的展望。
AI不应该仅仅是一个工具,人们不应该仅从完成人类指令的方式去看待AI。AI应该与人类站在一起而非对立面,通过合作的方式,通过不断的交流来帮助人类完成复杂的任务。
排版:Fia
相关文章
-
景顺成长,探索中国城市化进程中的绿色发展之路详细阅读
在21世纪的今天,城市化已成为全球范围内不可逆转的趋势,中国,作为世界上人口最多的国家,其城市化进程尤为引人注目,随着经济的快速发展,城市化带来的问题...
2025-10-01 112
-
深度解析,股票000777中核科技的投资价值与未来展望详细阅读
在当今的投资市场中,股票投资无疑是一个热门话题,而在众多股票中,股票代码为000777的中核科技因其独特的行业地位和发展潜力,吸引了众多投资者的目光,...
2025-09-30 128
-
深圳证券交易所交易规则,投资市场的指南针详细阅读
亲爱的读者,想象一下,你正站在一个繁忙的十字路口,四周是熙熙攘攘的人群和川流不息的车辆,每个人都在按照交通规则行事,红灯停,绿灯行,黄灯亮起时,大家会...
2025-09-30 111
-
基金202005,揭秘投资背后的逻辑与策略详细阅读
在投资的世界里,基金是一种备受瞩目的投资工具,它以其多样化的投资组合、专业的管理团队和相对稳定的收益吸引了众多投资者的目光,我们将深入探讨基金2020...
2025-09-30 114
-
探索中国平安行销,策略、实践与未来趋势详细阅读
在当今竞争激烈的市场环境中,行销策略对于企业的成功至关重要,中国平安,作为中国领先的金融服务集团,其行销策略不仅在国内市场上取得了显著成效,也为全球行...
2025-09-29 117
-
深入解析数码视讯股票,投资价值与市场前景详细阅读
在当今数字化时代,数码视讯行业作为信息技术领域的重要组成部分,正逐渐成为投资者关注的焦点,本文将深入探讨数码视讯股票的投资价值与市场前景,帮助投资者更...
2025-09-29 112
-
悦康药业,创新与责任并重,引领健康未来详细阅读
在当今这个快节奏、高压力的社会中,健康成为了人们越来越关注的话题,而在医药行业中,有这样一家企业,它以创新为驱动,以责任为担当,致力于提供高质量的药品...
2025-09-29 112
-
深度解析,定向增发股票背后的资本游戏与投资策略详细阅读
在资本市场的棋盘上,股票的每一次变动都牵动着投资者的神经,定向增发作为一种特殊的融资方式,因其能够为上市公司带来资金的同时,也为投资者提供了新的投资机...
2025-09-29 121
