RLHF深度解析:ChatGPT背后的强化学习技术
RLHF深度解析:ChatGPT背后的强化学习技术
RLHF(Reinforcement Learning from Human Feedback)是一种结合了强化学习和人类反馈的机器学习方法,主要用于训练大模型以执行复杂的任务。这种方法通过直接从人类反馈中学习,避免了传统强化学习中奖励函数难以定义的问题,使得模型能够更好地适应特定的任务和预期行为。本文将详细介绍RLHF的基本概念、技术分解、未来展望和局限性。
基本概念
RLHF主要包含下面四个组件:
- 预训练模型(pre-trained model):开始于一个预训练模型,如在大量文本数据上预训练的大语言模型
- 人类反馈(human feedback):收集关于模型输出质量的人类反馈,这些反馈可以能包括对生成的文本进行标注或者评分,并提供改进的指导。
- 奖励建模(reward modeling):使用人类反馈来训练一个奖励模型,这个奖励模型学习根据人类反馈来给模型生成的输出评分。
- 强化学习(reinforcement learning):利用奖励模型作为奖励函数,使用标准的强化学习或者深度学习算法来继续训练原始模型,优化模型的输出以最大化奖励模型给出的分数。
RLHF通过直接从人类反馈中学习,避免了这一问题,使得模型更好的适应特定的任务和预期行为。RLHF的应用比较广泛,从聊天机器人、文本生成到更复杂的决策制定和游戏中都有广泛的应用。通过人类反馈,模型能够在更为复杂和抽象的层面学习,并输出的结果更符合人类的预期和价值观。
技术分解
RLHF是一项涉及多个模型和不同训练阶段的复杂概念,这里我们按三个步骤分解:
Step 1. 预训练语言模型
首先,我们使用经典的预训练目标训练一个语言模型。对这一步的模型,OpenAI在其第一个流行的RLHF模型InstructGPT中使用了较小版本的GPT-3;Anthropic使用了1000万~520亿参数的Transformer模型进行训练;DeepMind使用了自家的2800亿参数模型Gopher。
Step 2. 训练奖励模型
RM的训练是RLHF区别于旧范式的开端。这一模型接收一系列文本并返回一个标量奖励,数值上对应人的偏好。我们可以用端到端的方式用LM建模,或者用模块化的系统建模(比如对输出进行排名,再将排名转换为奖励)。这一奖励数值将对后续无缝接入现有的RL算法至关重要。
关于模型选择方面,RM可以是另一个经过微调的LM,也可以是根据偏好数据从头开始训练的LM。例如Anthropic提出了一种特殊的预训练方式,即用偏好模型预训练(Preference Model Pretraining,PMP)来替换一般预训练后的微调过程。因为前者被认为对样本数据的利用率更高。但对于哪种RM更好尚无定论。
关于训练文本方面,RM的提示-生成对文本是从预定义数据集中采样生成的,并用初始的LM给这些提示生成文本。Anthropic的数据主要是通过Amazon Mechanical Turk上的聊天工具生成的,并在Hub上可用(https://huggingface.co/datasets/Anthropic/hh-rlhf),而OpenAI使用了用户提交给GPT API的prompt。
关于训练奖励数值方面,这里需要人工对LM生成的回答进行排名。起初我们可能会认为应该直接对文本标注分数来训练RM,但是由于标注者的价值观不同导致这些分数未经过校准并且充满噪音。通过排名可以比较多个模型的输出并构建更好的规范数据集。
对具体的排名方式,一种成功的方式是对不同LM在相同提示下的输出进行比较,然后使用Elo系统建立一个完整的排名。这些不同的排名结果将被归一化为用于训练的标量奖励值。
这个过程中一个有趣的产物是目前成功的RLHF系统使用了和生成模型具有不同大小的LM(例如OpenAI使用了175B的LM和6B的RM,Anthropic使用的LM和RM从10B到52B大小不等,DeepMind使用了70B的Chinchilla模型分别作为LM和RM)。一种直觉是,偏好模型和生成模型需要具有类似的能力来理解提供给它们的文本。
Step 3. 用强化学习微调
长期以来出于工程和算法原因,人们认为用强化学习训练LM是不可能的。而目前多个组织找到的可行方案是使用策略梯度强化学习(Policy Gradient RL)算法、近端策略优化(Proximal Policy Optimization,PPO)微调初始LM的部分或全部参数。因为微调整个10B~100B+参数的成本过高(相关工作参考低秩适应LoRA和DeepMind的Sparrow LM)。PPO算法已经存在了相对较长的时间,有大量关于其原理的指南,因而成为RLHF中的有利选择。
事实证明,RLHF的许多核心RL进步一直在弄清楚如何将熟悉的RL算法应用到更新如此大的模型。
让我们首先将微调任务表述为RL问题。首先,该策略(policy)是一个接受提示并返回一系列文本(或文本的概率分布)的LM。这个策略的行动空间(action space)是LM的词表对应的所有词元(一般在50k数量级),观察空间(observation space)是可能的输入词元序列,也比较大(词汇量^输入标记的数量)。奖励函数是偏好模型和策略转变约束(Policy shift constraint)的结合。
PPO算法确定的奖励函数具体计算如下:将提示输入初始LM和当前微调的LM,分别得到了输出文本,将来自当前策略的文本传递给RM得到一个标量的奖励。将两个模型的生成文本进行比较计算差异的惩罚项,在来自OpenAI、Anthropic和DeepMind的多篇论文中设计为输出词分布序列之间的Kullback-Leibler(KL)散度的缩放,即。这一项被用于惩罚RL策略在每个训练批次中生成大幅偏离初始模型,以确保模型输出合理连贯的文本。如果去掉这一惩罚项可能导致模型在优化中生成乱码文本来愚弄奖励模型提供高奖励值。此外,OpenAI在InstructGPT上实验了在PPO添加新的预训练梯度,可以预见到奖励函数的公式会随着RLHF研究的进展而继续进化。
最后根据PPO算法,我们按当前批次数据的奖励指标进行优化(来自PPO算法on-policy的特性)。PPO算法是一种信赖域优化(Trust Region Optimization,TRO)算法,它使用梯度约束确保更新步骤不会破坏学习过程的稳定性。DeepMind对Gopher使用了类似的奖励设置,但是使用A2C(synchronous advantage actor-critic)算法来优化梯度。
作为一个可选项,RLHF可以通过迭代RM和策略共同优化。随着策略模型更新,用户可以继续将输出和早期的输出进行合并排名。Anthropic在他们的论文中讨论了迭代在线RLHF,其中策略的迭代包含在跨模型的Elo排名系统中。这样引入策略和RM演变的复杂动态,代表了一个复杂和开放的研究问题。
未来展望
尽管RLHF取得了一定的成果和关注,但依然存在局限。这些模型依然会毫无不确定性地输出有害或者不真实的文本。这种不完美也是RLHF的长期挑战和动力——在人类的固有领域中运行意味着永远不会到达一个完美的标准。
收集人类偏好数据的质量和数量决定了RLHF系统性能的上限。RLHF系统需要两种人类偏好数据:人工生成的文本和对模型输出的偏好标签。生成高质量回答需要雇佣兼职人员(而不能依赖产品用户和众包)。另一方面,训练RM需要的奖励标签规模大概是50k左右,所以并不那么昂贵(当然远超了学术实验室的预算)。目前相关的数据集只有一个基于通用LM的RLHF数据集(来自Anthropic)和几个较小的子任务数据集(如来自OpenAI的摘要数据集)。另一个挑战来自标注者的偏见。几个人类标注者可能有不同意见,导致了训练数据存在一些潜在差异。
除开数据方面的限制,一些有待开发的设计选项可以让RLHF取得长足进步。例如对RL优化器的改进方面,PPO是一种较旧的算法,但目前没有什么结构性原因让其他算法可以在现有RLHF工作中更具有优势。另外,微调LM策略的一大成本是策略生成的文本都需要在RM上进行评估,通过离线RL优化策略可以节约这些大模型RM的预测成本。最近,出现了新的RL算法如隐式语言Q学习(Implicit Language Q-Learning,ILQL)也适用于当前RL的优化。在RL训练过程的其他核心权衡,例如探索和开发(exploration-exploitation)的平衡也有待尝试和记录。探索这些方向至少能加深我们对RLHF的理解,更进一步提升系统的表现。
局限性
尽管RLHF模型在训练AI代理执行从机器人、视频游戏到NLP等复杂任务方面取得了令人印象深刻的成果,但使用RLHF并非没有局限性。
- 人类偏好数据成本高昂。收集第一手人类反馈的需求可能会造成一个代价高昂的瓶颈,限制RLHF流程的可扩展性。Anthropic10和Google11都提出了AI反馈强化学习(RLAIF)的方法,即让另一个LLM评估模型响应来取代部分或全部人类反馈,其结果与RLHF相当。
- 人类的输入具有高度主观性。要就“高质量”的输出到底是什么达成坚定的共识,几乎是不可能的,因为人类评估者不仅会对所谓的“事实”产生不同的意见,还会对“适当的”模型行为究竟应该如何理解存在分歧。因此,人类的分歧使得据以判断模型性能的“标准答案”无法形成。
- 人类评估者可能会犯错,甚至故意采取对抗性和恶意行为。人类对模型的引导并不总是出于善意,他们可能怀抱着真诚的反对意见,也可能故意操纵学习过程。Wolf等人在2016年的一篇论文中提出,有毒行为应被视为人机交互中的一个基本预期,并建议需要一种方法来评估人类输入的可信度。122022年,Meta AI发布了一篇关于对抗性人类输入的论文(ibm.com外部链接),研究了使用自动化方法“从高质量数据中获得最大学习效率,同时对低质量和对抗性数据具有最大稳健性”。该论文对各种“操纵”行为进行了分类,并确定了它们扭曲反馈数据的不同方式。
- RLHF存在过度拟合和偏见的风险。如果收集到的反馈来自一个非常有限的群体,那么当模型被其他群体使用,或者被用来处理与评估者持有某些偏见相关的主题时,可能会出现性能问题。
相关资源
开源项目:
RLHF的第一个项目,来自OpenAI:https://github.com/openai/lm-human-preferences
PyTorch的repo:
数据集:
Huggingface Hub上由Anthropic创建的大型数据集:https://huggingface.co/datasets/Anthropic/hh-rlhf
相关论文:
TAMER: Training an Agent Manually via Evaluative Reinforcement (Knox and Stone 2008)
Interactive Learning from Policy-Dependent Human Feedback (MacGlashan et al. 2017)
Deep Reinforcement Learning from Human Preferences (Christiano et al. 2017)
Deep TAMER: Interactive Agent Shaping in High-Dimensional State Spaces (Warnell et al. 2018)
Fine-Tuning Language Models from Human Preferences (Zieglar et al. 2019)
Learning to summarize with human feedback (Stiennon et al., 2020)
Recursively Summarizing Books with Human Feedback (OpenAI Alignment Team 2021)
WebGPT: Browser-assisted question-answering with human feedback (OpenAI, 2021)
InstructGPT: Training language models to follow instructions with human feedback (OpenAI Alignment Team 2022)
GopherCite: Teaching language models to support answers with verified quotes (Menick et al. 2022)
Sparrow: Improving alignment of dialogue agents via targeted human judgements (Glaese et al. 2022)
ChatGPT: Optimizing Language Models for Dialogue (OpenAI 2022)
Scaling Laws for Reward Model Overoptimization (Gao et al. 2022)
Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback (Anthropic, 2022)
Red Teaming Language Models to Reduce Harms: Methods, Scaling Behaviors, and Lessons Learned (Ganguli et al. 2022)
Dynamic Planning in Open-Ended Dialogue using Reinforcement Learning (Cohen at al. 2022)
Is Reinforcement Learning (Not) for Natural Language Processing?: Benchmarks, Baselines, and Building Blocks for Natural Language Policy Optimization (Ramamurthy and Ammanabrolu et al. 2022)