ChatGPT 背面的“功臣”——RLHF 技术详解

OpenAI 推出的 ChatGPT 对话模型掀起了新的 AI 热潮,它面临多种多样的问题对答如流,似乎现已打破了机器和人的边界。这一作业的背面是大型言语模型 (Large Language Model,LLM) 生成范畴的新练习范式:RLHF (Reinforcement Learning from Human Feedback) ,即以强化学习方法依据人类反应优化言语模型。

曩昔几年里各种 LLM 依据人类输入提示 (prompt) 生成多样化文本的能力令人形象深入。然而,对生成效果的评价是片面和依靠上下文的,例如,咱们期望模型生成一个有构思的故事、一段真实的信息性文本,或许是可执行的代码片段,这些效果难以用现有的依据规则的文本生成目标 (如 BLEU 和 ROUGE) 来衡量。除了评价目标,现有的模型通常以猜测下一个单词的方法和简单的损失函数 (如交叉熵) 来建模,没有显式地引进人的偏好和片面定见。

如果咱们 用生成文本的人工反应作为功能衡量标准,或许更进一步用该反应作为损失来优化模型,那不是更好吗?这便是 RLHF 的思维:运用强化学习的方法直接优化带有人类反应的言语模型。RLHF 使得在一般文本数据语料库上练习的言语模型能和杂乱的人类价值观对齐。

看看 ChatGPT 是怎么解释 RLHF 的:

ChatGPT 背后的“功臣”——RLHF 技术详解

ChatGPT 解释的很好,但还没有完全讲透;让咱们更详细一点吧!

RLHF 是一项涉及多个模型和不同练习阶段的杂乱概念,这儿咱们按三个步骤分化:

  1. 预练习一个言语模型 (LM) ;
  2. 聚合问答数据并练习一个奖赏模型 (Reward Model,RM) ;
  3. 用强化学习 (RL) 方法微调 LM。

Step 1. 预练习言语模型

首要,咱们运用经典的预练习方针练习一个言语模型。对这一步的模型,OpenAI 在其第一个流行的 RLHF 模型 InstructGPT 中运用了较小版本的 GPT-3; Anthropic 运用了 1000 万 ~ 520 亿参数的 Transformer 模型进行练习;DeepMind 运用了自家的 2800 亿参数模型 Gopher。

这儿能够用额外的文本或许条件对这个 LM 进行微调,例如 OpenAI 对 “更可取” (preferable) 的人工生成文本进行了微调,而 Anthropic 按 “有用、诚笃和无害” 的标准在上下文头绪上蒸馏了原始的 LM。这儿或许运用了昂贵的增强数据,但并不是 RLHF 必须的一步。由于 RLHF 还是一个尚待探究的范畴,关于” 哪种模型” 适合作为 RLHF 的起点并没有明确的答案。

ChatGPT 背后的“功臣”——RLHF 技术详解

接下来,咱们会依据 LM 来生成练习 奖赏模型 (RM,也叫偏好模型) 的数据,并在这一步引进人类的偏好信息。

Step 2. 练习奖赏模型

RM 的练习是 RLHF 区别于旧范式的开端。这一模型接收一系列文本并回来一个标量奖赏,数值上对应人的偏好。咱们能够用端到端的方法用 LM 建模,或许用模块化的体系建模 (比如对输出进行排名,再将排名转换为奖赏) 。这一奖赏数值将对后续无缝接入现有的 RL 算法至关重要。

关于模型挑选方面,RM 可所以另一个经过微调的 LM,也可所以依据偏好数据从头开始练习的 LM。例如 Anthropic 提出了一种特别的预练习方法,即用偏好模型预练习 (Preference Model Pretraining,PMP) 来替换一般预练习后的微调进程。因为前者被以为对样本数据的利用率更高。但关于哪种 RM 更好尚无定论。

关于练习文本方面,RM 的提示 – 生成对文本是从预界说数据集中采样生成的,并用初始的 LM 给这些提示生成文本。Anthropic 的数据主要是经过 Amazon Mechanical Turk 上的聊天工具生成的,并在 Hub 上 可用,而 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) 。一种直觉是,偏好模型和生成模型需求具有类似的能力来了解提供给它们的文本。

ChatGPT 背后的“功臣”——RLHF 技术详解

接下来是最终一步:利用 RM 输出的奖赏,用强化学习方法微调优化 LM。

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 算法确认的奖赏函数详细计算如下:将提示 x 输入初始 LM 和当时微调的 LM,别离得到了输出文本 y1, y2,将来自当时战略的文本传递给 RM 得到一个标量的奖赏 r_\theta r​。将两个模型的生成文本进行比较计算差异的赏罚项,在来自 OpenAI、Anthropic 和 DeepMind 的多篇论文中规划为输出词散布序列之间的 Kullback–Leibler (KL) divergence 散度的缩放,即 r = r_\theta – \lambda r_\text{KL} r=r​−rKL​ 。这一项被用于赏罚 RL 战略在每个练习批次中生成大幅违背初始模型,以保证模型输出合理连接的文本。如果去掉这一赏罚项或许导致模型在优化中生成乱码文原本捉弄奖赏模型提供高奖赏值。此外,OpenAI 在 InstructGPT 上实验了在 PPO 增加新的预练习梯度,能够预见到奖赏函数的公式会随着 RLHF 研究的进展而持续进化。

最终依据 PPO 算法,咱们按当时批次数据的奖赏目标进行优化 (来自 PPO 算法 on-policy 的特性) 。PPO 算法是一种信赖域优化 (Trust Region Optimization,TRO) 算法,它运用梯度束缚保证更新步骤不会破坏学习进程的稳定性。DeepMind 对 Gopher 运用了类似的奖赏设置,但是运用 A2C (synchronous advantage actor-critic) 算法来优化梯度。

ChatGPT 背后的“功臣”——RLHF 技术详解

作为一个可选项,RLHF 能够经过迭代 RM 和战略一起优化。随着战略模型更新,用户能够持续将输出和前期的输出进行合并排名。Anthropic 在他们的论文中讨论了 迭代在线 RLHF,其间战略的迭代包含在跨模型的 Elo 排名体系中。这样引进战略和 RM 演变的杂乱动态,代表了一个杂乱和开放的研究问题。

Today, there are already a few active repositories for RLHF in PyTorch that grew out of this. The primary repositories are Transformers Reinforcement Learning (TRL), TRLX which originated as a fork of TRL, and Reinforcement Learning for Language models (RL4LMs).

TRL is designed to fine-tune pretrained LMs in the Hugging Face ecosystem with PPO. TRLX is an expanded fork of TRL built by CarperAI to handle larger models for online and offline training. At the moment, TRLX has an API capable of production-ready RLHF with PPO and Implicit Language Q-Learning ILQL at the scales required for LLM deployment (e.g. 33 billion parameters). Future versions of TRLX will allow for language models up to 200B parameters. As such, interfacing with TRLX is optimized for machine learning engineers with experience at this scale.

RL4LMs offers building blocks for fine-tuning and evaluating LLMs with a wide variety of RL algorithms (PPO, NLPO, A2C and TRPO), reward functions and metrics. Moreover, the library is easily customizable, which allows training of any encoder-decoder or encoder transformer-based LM on any arbitrary user-specified reward function. Notably, it is well-tested and benchmarked on a broad range of tasks in recent work amounting up to 2000 experiments highlighting several practical insights on data budget comparison (expert demonstrations vs. reward modeling), handling reward hacking and training instabilities, etc. RL4LMs current plans include distributed training of larger models and new RL algorithms.

Both TRLX and RL4LMs are under heavy further development, so expect more features beyond these soon.

There is a large dataset created by Anthropic available on the Hub.

虽然 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 的第一个项目,来自 OpenAI, 一些 PyTorch 的 repo:

  • trl
  • trlx
  • RL4LMs

此外,Huggingface Hub 上有一个由 Anthropic 创建的大型 数据集。

相关论文包括在现有 LM 前的 RLHF 进展和依据当时 LM 的 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
  • 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)
  • 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)
  • Kojima et al. 2021
  • Suhr and Artzi 2022
  • Sokolov et al. 2016, Gao et al. 2022
  • Ranzato et al. 2015
  • Bahdanau et al. 2016
  • Nguyen et al. 2017

Citation

If you found this useful for your academic work, please consider citing our work, in text:

Lambert, et al., "Illustrating Reinforcement Learning from Human Feedback (RLHF)", Hugging Face Blog, 2022.

BibTeX citation:

@article{lambert2022illustrating,
  author = {Lambert, Nathan and Castricato, Louis and von Werra, Leandro and Havrilla, Alex},
  title = {Illustrating Reinforcement Learning from Human Feedback (RLHF)},
  journal = {Hugging Face Blog},
  year = {2022},
  note = {https://huggingface.co/blog/rlhf},
}
  • Thanks to Robert Kirk for fixing some factual errors regarding specific implementations of RLHF. Thanks to Peter Stone, Khanh X. Nguyen and Yoav Artzi for helping expand the related works further into history. * Thanks to Stas Bekman for fixing some typos or confusing phrases.