• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

直播回顾 | 人类反馈的强化学习

武飞扬头像
小牛翻译云平台
帮助5

学新通

2023年7月27日18:30,由东北大学自然语言处理实验室主办,小牛翻译协办的生成式大语言模型技术分享系列直播第七期顺利举行。本次报告由来自东北大学自然语言处理实验室的王成龙博士,为大家带来了《基于人类反馈的强化学习》分享。

学新通

本次报告继续为大家带来生成式大语言模型关键技术细节的相关分享,由王成龙博士介绍“基于人类反馈的强化学习生成模型”,强化学习人类反馈(Reinforcement Learning Human Feedback, RLHF)技术被誉为大语言模型背后的“功臣”,成为了目前生成模型的新兴训练范式。王成龙博士首先介绍了RLHF技术的提出背景,包括生成式模型训练的不足、强化学习的基础框架等等,然后讲述了RLHF的发展历程,包括相关方法的摸索尝试和主流方法的技术细节,最后总结了RLHF是如何、为何为大模型带来显著的性能提升,并阐明了该技术目前存在的问题及挑战。

在报告分享后的Q&A环节,王成龙博士与各平台的网友就大语言模型相关技术问题进行了广泛讨论,以下是本环节的问题和解答:

Q1:如何评价RLHF在大语言模型上的训练效果?

A1:一般训练效果的评价,可以人工评价的角度上来去看,比如在训练后是否能避免之前模型产生的一些错误;不过如果从RLHF应用的意义上来讲的话,其实RLHF在大语言模型的一个训练效果的话,如果单单从学习人类偏好的一个角度上来说的话,其实如果我们把reward来去定义成我们想要优化的一种目标。这种目标如果在有监督学习的情况下,它是无法刻画的。我感觉RLHF应用,以及它的一个意义还是非常大,因为它能够实现我们有监督实现不了的。如果不从这个角度来说的话,它的一个实验效果可能和有监督的一个情况下也是类似的。就是不断地去加深这个模型对这个数据的一个理解或者是拟合。当然网上也有很多人去讨论RLHF这个技术或者是这个流程在大语言模型上这个应用的一个必要性,是有没有必要?有些人从一个数据增强类的角度上来讲,比如我们在InstructGPT第一步的时候,我们标注很多有监督的数据来去训练它,但这个标注的成本还是非常大的。是不是也是有一种可能就是做数据增强会弥补第一步我们标注的一个不足。当然在网上也有很多讨论,但是从强化学习本身具有的优势来说,比如可以优化长期目标(序列级别的好与坏),或者是优化一个不可微分的奖励(比如人类反馈),RLHF在大语言模型应用还是非常有意义的。

Q2:深度强化学习中DQN和Actor-Critic的算法的区别是什么?

A2:其实DQN前期的话就是我们最开始RL提出来之后,它应该叫做Q-learning,在最开始的时候本质上就是根据一个Q-table智能体来做决策,其实DQN和报告里面讲述的PPO应该所属于两类。因为PPO是基于policy来去做的,也就是我们的Model-based,基于模型来去选择。像DQN这个算法的话,其实是基于价值来去做的,就是我们所说的Model-free,没有Model,只需要去做一个Q函数。Q函数是给我们的每个action做一个评估,告诉我们应该去选哪个action。但是Q函数吐出来的应该是一个Q值,它和PPO里面的reward还不太一样。Q值其实描述的是在当前的一个决策下,对未来回报的一个影响。就是比如我们有两个决策A和B,你选择A的话,预测一个Q值,描述的是我们未来所有奖励的一个总和。Q-table是做了一个tab表,在面对一个状态或者是一个决策的时候,可以去查表看哪个状态和表对应,它是有一列的数。当然它也有一定的优化方法来去调整这个表。然后查完表之后,选择一个最大的。DQN里面的N就是network,就是相当于引入了深度学习的一个方法。这个Q-table的应用在一些场景下还是比较受限的,比如决策空间非常大的一个情况。这个表无限大,我们怎么办?我们是不是能去拿一个神经网络来去刻画这个表,也就引起了DQN。就是用一个模型来去代替这个表,然后我们输入的时候把一个状态和一个行为来去输入,然后这个表就可以预测一个Q函数,供我们来去选择。然后Actor-Critic是什么意思呢?它有点类似于Q值的预测和policy-base方法的一个结合。actor相当于一个policy,然后critic相当于一个评价模型。其实critic完全也可以作为一个Q函数,当然也可以作为报告里面讲的这个Reward Model。其实在最开始的时候给大家介绍的就是刚开始08年提出来一个方法,是不是能用人类的专业知识去直接指导智能体的学习,它其实用的也是Actor-Critic的框架。讲那么多感觉Actor-Critic还是比较复杂,而且感觉好像似乎很有用的一个样子,但是为什么OpenAI没有去用。Actor-Critic看似非常的work,非常的好。但是在实际的训练中,Actor在训练,Critic也在训练,就会导致一种现象,Actor不断地从一个变化的网络的一个计算结果中来去学习。这样会导致很不稳定,就是我们可能训练起来比较复杂,可能相对于PPO训练的一个稳定性稍微差一点。这当然这也是在某种场景上来去说的。当然,可能OpenAI本身在强化学习领域研究的一个积累,因为相当于PPO是他们团队最早提出来的。因为当时做InstructGPT的作者也是PPO的一个作者。对强化学习的积累可能也是比较丰富,因此,也有限尝试用PPO来去解决大模型从人类反馈中进行学习的问题。

Q3:目前有什么比较好用的大模型RLHF的训练开源工具?

A3:开源工具的话,像国内的话LLaMA Efficient Tuning还是比较优秀的,比较完善的,包括SFT的训练、Reward Model的训练和PPO的训练都做的比较完善,大家用起来也比较方便。然后也是一个不错的开源工作,专门针对于大语言模型来去做强化学习训练的话,国外的开源的有一套trl,做大语言模型强化学习方面做的还比较全,而且也是能直接套用现在的一些主流的预训练语言模型来去做。

Q4:强化学习和反馈神经网络有什么区别?

A4:强化学习和反馈神经网络其实我感觉它是两种概念吧,强化学习更倾向于是一种训练的方法。就是比如像有监督学习,半监督学习等等这种训练的一个方法。反馈神经网络更倾向于是一种网络结构的设计。就比如咱们CNN、RNN、LSTM这种网络的设计。虽然反馈神经网络和RLHF都带一个反馈,但他俩表述的含义还不太一样。传统的神经网络每个神经元的输出可能直接传到下一个神经元,或者比如图神经网络,可能传到后一个神经元。但是反馈神经网络的输出可以反馈给它自身,然后让它自身去进行计算,然后更好地去建模一些问题,或者提升模型的拟合能力。基于人类反馈的强化学习里面的反馈描述的是一种人类的一种评价。就比如我们接收到一个什么样的一个决策,然后进行反馈,更多的是描述一种奖惩的概念。

Q5:为什么强化学习应用在序列生成过程中需要进行采样?

A5:采样的话可以看一下PPO实际的训练。其实PPO的训练理论上是最大化奖励的总和。奖励的总和可以看一下E值如果拆分的话,就是一个P值,相当于一个y值,P括号y然后加和它的r,把这个期望如果化简的话。但是我们要面临的一个问题就是如果在序列生成的一个情况下,y值描述所有生成的可能性,这个可能性还是非常非常大的。因此我们想去刻画这个东西还是非常的困难,甚至不可能。因此我们是不是可以采样部分的序列,连续近似它的一个生成空间来去进行计算,或者进行优化policy。当然像传统的训练方法,如果抛开PPO不讲的话,大家可以去了解一下之前有一个MRT,最小风险训练。当时提出是在机器翻译来去训练的,那篇论文描述这个问题还是非常好的。就是说我们的一个生成空间非常非常大,因此我们是不是能去采样出来部分的一个序列来去近似我们的一个生成空间,然后来去更新我们的policy。如果在实际采样的过程中,采样非常非常非常多的话,其实在后部的一个情况下,可能它大部分生成的序列都是没有用的,可能就是千篇一律的,都是非常差,可能也对更新没有太大作用。当然采样的过程也是非常有讲究的。可能你使用top-k采样,或者beam search采样,或者top-p采样,或者是diversity beam search采样,在我们研究的过程中根据不同的采样方法,它的优化效果还是不一样的。源头就是因为根据不同采样策略采样出来的样本可能对你的优化作用还是不一样的。如果采样出来的一个样本是非常非常差的话,或者非常非常一致的话,可能对优化的益处并不是很大。反而在强化学习里面还是不是很容易训练的,原因就是如果采样出来一些比较坏的样本,它会达到一个什么样的效果呢?它也许会把你的policy,就是你训练的一个模型带到一个非常非常差的一个状态。导致你这个model再怎么训,性能就是起不来了。大家如果实际过程中真正做RLHF,或者做序列生成上RL的训练,在这一块还是非常要注意的,采样的步骤还是非常重要的,采样出来什么样本还是非常重要的。我们团队也做出来一些工作,在最近也会放到网上给大家去参考。动态采样就是如果我们摒弃掉一些不必要的采样,虽然在一定程度上减少了一些更新的次数,减少了一些优化的次数。但是我们拿到的效果也许会变好。当然我们也是从RL传统的一些理论来去解释它,比如探索与开采的平衡问题,就是当模型非常好的一个情况下,过度的开采可能对模型是有害的。当然模型可能不太好的情况下,更多的开采可能会帮助模型能达到一个更好的效果。

Q6:大语言模型的语义、语法检验有哪些方法?

A6:这个问题我没太理解,但是我猜测是不是想把一些语法知识或者语义知识融入到一个Reward Model里面,或者融入到一个判别里面来去优化对应的生成。我印象中好像是有一些工作来去做的。基于强化学习这种范式的情况下,我们去优化生成的语句或者语义。因为在有监督的一个情况下,其实它追求的优化目标是最大化每一个生成目标词的概率。其实不管是什么语义和语法,当然之前在机器翻译里面有一篇文章,好像是Beyond Blue,大家可以去留意一下,他在机器强化学习的框架下,做了一个reward的设计。这个reward的设计可能更偏向于语义的描述,从而来直接可以优化译文语义。当然也在一些数据集上或者特定领域上达到一些不错的效果。感兴趣的伙伴可以去看一下Beyond Blue,当然在除了机器翻译以外的话,像摘要或者对话任务上,我记得也有一些文章去做一些reward设计工程。是不是能去设计一些更好的reward函数,或者是训练一些更好的reward模型,来去帮助序列生成一些更高质量的内容。

Q7:SFT和RLHF的区别。

A7:可以看一下这一页PPO的一个公式是这样的。然后SFT的话,其实它就是一个有监督训练,相当于在生成每一个词的时候,就会把它的一个维度映射到一个词表大小的空间。然后每一个词表大小就对应选择当前词的一个概率,然后相当于它用cross entropy方法来去构造一个损失函数。它的目标是在每一步生成词的时候,最大化目标生成词的概率。比如“我要去上学”,我们给它一个这样的词语,然后比如“我要 去”已经输入到里面了,然后预测“上学”的时候,也就是预测第三个词的时候,相当于生成了一个词表的大小。目标就是把“上学”这个词的概率一直的最大化。然后就在训练中不断这样,从而它达到了一个什么样的效果呢?就是可以很好地根据上文来去预测下一个词。但是在强化学习目标的情况下,如果我们以PPO为例,目标并不是去最大化目标生成词的概率,它要最大化奖励的期望。其实如果我们把这个E给化简,这个期望给化简的话,其实就相当于一个P(y),然后乘以r。然后如果这个r值越来越大的话,大家可以想一下,相当于我们经过反向传播的话,相当于把y整体的序列级别的概率最大化了。其实这个E值如果化简开的话,其实就相当于是一个智能空间内的一个就是   这样的来去做的。实际上它其实相当于一方面就是SFT和RLHF的区别,它们总体的训练模式还是不一样的。另一方面,它们的训练目标还是不一样的,这个训练目标可能就是RLHF可能偏向于r值期望的训练。

Q8:如果要在大模型上进行RLHF的话,有什么数据集可以训练一个reward 吗?

A8:如果现在训reward的话也有对应的一个数据集。好像是huggingface里面大家搜一下RLHF应该会有对应的comparison数据。它里面有中文,还有英文,它的数据集的构造其实是有一个问题,然后产生了两个答案,他会给你说哪个好、哪个坏,相当于避免了人工进行标注,然后可以直接进行训练。然后根据rank loss来进行训练。训练完之后,我们就拿到了一个Reward Model。数据集是使用GPT-4来去做标注的,可能我们训练完之后,Reward Model的作用是啥呢?就是大语言模型可能生成了偏向于GPT-4的答案,可能它给你的奖励越高。当然如果想去做一些垂直领域上的应用或者特定数据集上的应用,咱们也可以进行标注。类似于InstructGPT这样标。其实在我来看,如果在成本充足的情况下,咱们也可以去直接去标对应的分数。可能更方便Reward Model拟合得更加好。如果在成本有限的情况下,也可以模仿InstructGPT标注的方法,两两去标注大小,来去用rank loss训练Reward Model。

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhackb
系列文章
更多 icon
同类精品
更多 icon
继续加载