- 本文收录于《深入浅出讲解自然语言处理》专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅!
- 个人主页:有梦想的程序星空
- 个人介绍:小编是人工智能领域硕士,全栈工程师,深耕Flask后端开发、数据挖掘、NLP、Android开发、自动化等领域,有较丰富的软件系统、人工智能算法服务的研究和开发经验。
- 关注微信公众号【有梦想的程序星空】,了解软件系统和人工智能算法领域的前沿知识,让我们一起学习、一起进步吧!
随着OpenAI 推出的ChatGPT 等大模型的发布,大语言模型(Large Language Models,LLMs)的浪潮席卷而来,并逐渐走进千家万户,掀起了新的 AI 热潮,ChatGPT 是 InstructGPT 的衍生,它的新颖之处在于将人类反馈纳入到训练过程之中,以便让模型输出更好地与用户的意图保持一致。ChatGPT采用了Transformer架构,这是一种深度学习模型,最初由Google提出。Transformer的核心思想是利用自注意力机制来处理输入序列,能够更好地捕捉输入序列的长距离依赖关系。ChatGPT与GPT-3的主要区别在于,新加入了被称为RLHF的新训练范式。
RLHF,即Reinforcement Learning from Human Feedback(从人类反馈中进行强化学习),是一种结合了机器学习中的强化学习算法与人类主观判断的训练技术。RLHF是一种将强化学习与人类反馈相结合的技术,其中人类的偏好被用作奖励信号,用于引导模型生成高质量的语言输出,使人工智能系统能够以更加人性化的方式学习和做出决策。
RLHF论文:Deep Reinforcement Learning from Human Preferences
RLHF 是一种基于强化学习的算法,通过结合人类专家的知识和经验来优化智能体的学习效果,核心思想是结合智能体自主学习和人类专家反馈两种不同的策略,不断优化智能体的行为。
RLHF整体训练框架分为三个阶段:预训练语言模型(LM)、收集数据并训练奖励模型、通过强化学习微调LM。
第1阶段:预训练语言模型(LM)
上图显示了预训练语言模型的内部工作原理以及用RLHF进一步微调的可选路径。
首先,我们使用经典的预训练目标训练一个语言模型,这里可以用额外的文本或者条件对这个 LM 进行微调,这些语言模型往往见过大量的[Prompt,Text]对,输入一个Prompt(提示),模型往往能输出一段还不错的文本。
第2阶段:收集数据并训练奖励模型
上图展示了奖励模型的工作过程。
RLHF的最重要任务是生成一个奖励模型(RM),它可以根据人的偏好为输入文本分配一个标量奖励。奖励模型可以是端到端的语言模型或模块化系统,并使用提示对数据集进行训练。
具体来说,首先使用语言模型针对任务指令生成一定数量的候选输出。随后,邀请标注员对于输出文本进行偏好标注,这个标注过程可以采用多种形式,其中最常用的是对候选文本进行排序标注,这样可以有效减少多个标注员之间的不一致情况。进一步,使用人工标注的偏好数据进行奖励模型的训练,使其能够建模人类偏好。在InstructGPT中,标注员将模型生成的输出按照最佳到最差的顺序进行排序,并据此训练奖励模型来预测这个排序。
第3阶段:通过强化学习微调LM
接下来是最后一步:利用 RM 输出的奖励,用强化学习方式微调优化 LM。
上图展示了奖励模型微调的工作原理。
在这一步骤中,语言模型对齐被转化为一个强化学习问题。具体来说,待对齐语言模型担任策略实施者的角色(称为策略模型),策略意思是机器已经学会用来实现其目标的做法,在这种情况下,也即是奖励的最大化。根据形成的奖励模型,确定给定提示和响应对的标量奖励值。然后再将奖励反馈给模型,从而改进策略。2017年,舒尔曼等人引入了近端策略优化(Proximal Policy Optimization,PPO),这种方法可以用来在模型生成响应时更新策略。