• 旅行前的准备:数据来源
有监督学习:这如同旅行者拿着一本旅行指南书,其中明确标注了各个景点、餐厅和交通方式。在这里,数据来源就好比这本书,提供了清晰的问题和答案对。
强化学习:旅行者进入了一个陌生的城市,手上没有地图,没有指南。所知道的只是他们的初衷,例如找到城市中的一家餐厅或博物馆。这座未知的城市,正是强化学习中的数据来源,充满了探索的机会。
• 路途中的指引:反馈机制
有监督学习:在这座城市里,每当旅行者迷路或犹豫时,都会有人告诉他们是否走对了路。这就好比每次旅行者提供一个答案,有监督学习都会告诉他们是否正确。
强化学习:在另一座城市,没有人会直接告诉旅行者如何走。只会告诉他们结果是好还是坏。例如,走进了一家餐厅,吃完饭后才知道这家餐厅是否合适。需要通过多次尝试,逐渐学习和调整策略。
• 旅行的终点:目的地
有监督学习:在这座城市旅行的目的非常明确,掌握所有的答案,就像参观完旅行指南上提及的所有景点。
强化学习:在未知的城市,目标是学习如何在其中有效地行动,寻找最佳的路径,无论是寻找食物、住宿还是娱乐。
与有监督学习相比,强化学习能够给大语言模型带来哪些好处呢?针对这个问题,2023 年 4月 OpenAI 联合创始人 John Schulman 在 Berkeley EECS 会议上所做的报告“ReinforcementLearning from Human Feedback:Progress and Challenges”,分享了 OpenAI 在人类反馈的强化学习方面的进展,分析了有监督学习和强化学习各自存在的挑战。基于上述报告及相关讨论,强化学习在大语言模型上的重要作用可以概括为以下几个方面。
(1)强化学习相较于有监督学习更有可能考虑整体影响。有监督学习针对单个词元进行反馈,其目标是要求模型针对给定的输入给出确切的答案;而强化学习是针对整个输出文本进行反馈,并不针对特定的词元。反馈粒度的不同,使强化学习更适合大语言模型,既可以兼顾表达多样性,又可以增强对微小变化的敏感性。自然语言十分灵活,可以用多种不同的方式表达相同的语义。有监督学习很难支持上述学习方式,强化学习则可以允许模型给出不同的多样性表达。另外,有监督微调通常采用交叉熵损失作为损失函数,由于总和规则,造成这种损失对个别词元变化不敏感。改变个别词元只会对整体损失产生小的影响。但是,一个否定词可以完全改变文本的整体含义。强化学习则可以通过奖励函数同时兼顾多样性和微小变化敏感性两个方面。
(2)强化学习更容易解决幻觉问题。用户在大语言模型上主要有三类输入:(a)文本型(Text-Grounded),用户输入相关文本和问题,让模型基于所提供的文本生成答案(例如,“本文中提到的人名和地名有哪些”);(b)求知型(Knowledge-Seeking),用户仅提出问题,模型根据内在知识提供真实回答(例如,“流感的常见原因是什么”);(c)创造型(Creative),用户提供问题或说明,让模型进行创造性输出(例如,“写一个关于……的故事”)。有监督学习算法非常容易使得求知型查询产生幻觉。在模型并不包含或者知道答案的情况下,有监督训练仍然会促使模型给出答案。而使用强化学习方法,则可以通过定制奖励函数,将正确答案赋予非常高的分数,将放弃回答的答案赋予中低分数,将不正确的答案赋予非常高的负分,使得模型学会依赖内部知识选择放弃回答,从而在一定程度上缓解模型的幻觉问题。
(3)强化学习可以更好地解决多轮对话奖励累积问题。多轮对话能力是大语言模型重要的基础能力之一。多轮对话是否达成最终目标,需要考虑多次交互过程的整体情况,因此很难使用有监督学习的方法构建。而使用强化学习方法,可以通过构建奖励函数,根据整个对话的背景及连贯性对当前模型输出的优劣进行判断。
基于人类反馈的强化学习流程
基于人类反馈的强化学习主要分为奖励模型训练和近端策略优化两个步骤。奖励模型通过由人类反馈标注的偏好数据来学习人类的偏好,判断模型回复的有用性,保证内容的无害性。奖励模型模拟了人类的偏好信息,能够不断地为模型的训练提供奖励信号。在获得奖励模型后,需要借助强化学习对语言模型继续进行微调。OpenAI 在大多数任务中使用的强化学习算法都是近端策略优化(Proximal Policy Optimization,PPO)算法。近端策略优化可以根据奖励模型获得的反馈优化模型,通过不断的迭代,让模型探索和发现更符合人类偏好的回复策略。近端策略优化算法的实施流程如图 6.2 所示。
近端策略优化涉及以下四个模型。
(1)策略模型(Policy Model),生成模型回复。
(2)奖励模型(Reward Model),输出奖励分数来评估回复质量的好坏。
(3)评论模型(Critic Model),预测回复的好坏,可以在训练过程中实时调整模型,选择对未来累积收益最大的行为。
(4)参考模型(Reference Model),提供了一个 SFT 模型的备份,使模型不会出现过于极端的变化。
近端策略优化算法的实施流程如下。
(1)环境采样:策略模型基于给定输入生成一系列的回复,奖励模型则对这些回复进行打分获得奖励。
(2)优势估计:利用评论模型预测生成回复的未来累积奖励,并借助广义优势估计(Generalized Advantage Estimation,GAE)算法估计优势函数,有助于更准确地评估每次行动的好处。
(3)优化调整:使用优势函数优化和调整策略模型,同时利用参考模型确保更新的策略不会有太大的变化,从而维持模型的稳定性。