2023.4.2 第二十次周报

本文介绍了通过强化学习和多任务学习来生成对话提示,以此控制预训练模型如GPT-3的情感和话题响应,提高了模型的鲁棒性和泛化能力。研究中采用了PPO算法优化策略,并在不同对话模型上展示出优于基线模型的表现。
摘要由CSDN通过智能技术生成


前言

This week, I learned an NLP article 《Learning to Generate Prompts for Dialogue Generation through Reinforcement Learning》, which is about the current hot ChatGPT, and which puts forward some relatively novel ideas, pre-processing with emotional and scene analysis, and then training with reinforcement learning, so as to improve the robustness of the model. At the same time, I also learned the PPO algorithm, which is widely used in reinforcement learning, and mastered the characteristics and advantages of this model.

一、论文阅读《Learning to Generate Prompts for Dialogue Generation through Reinforcement Learning》

论文地址:原文
National Taiwan University,李宏毅团队的一篇文章。
在这里插入图片描述
通过这一幅图其实就可以知道本论文在介绍什么模型:模型先对输入进行了一次情感或者场景分析,把分析出来的结果和输入结合,然后提炼出对应的提示词(prompt),接着把提示词和输入相结合,传输给对话机器人,从而得出想要的结果,其结果也是可以通过奖励函数不断优化的。
下面开始正文部分!

Abstract

大量文献表明,基于提示的学习是一种利用预先训练好的大型语言模型的有效方法。最近的研究也展示了通过插入适当的提示来控制聊天机器人输出的可能性。基于梯度的方法通常用于干扰提示。然而,有些语言模型甚至还没有向公众开放。在这项工作中,我们首先探索了提示(prompt)和强化学习(RL)的结合,在不访问任何模型参数的情况下引导模型的生成。其次,为了减少训练工作量,增强对未见任务的泛化能力,采用多任务学习,使模型更好地学习泛化新任务。实验结果表明,我们提出的方法可以成功地控制一些最先进的(SOTA)对话模型,而不需要访问它们的参数。此外,该模型展示了比基线模型更少的步骤快速适应不可见任务的强大能力。

Introduction

基于提示的学习是一种利用超大预训练语言模型的有效方法。与传统的监督学习不同,基于提示的学习不能直接预测标签。为了使用预训练的语言模型来执行预测任务,将构造一个描述下游任务的提示模板。

通过修改作为输入前缀添加的提示符来控制生成。使用基于梯度的方法更新用于生成提示的参数。目标是生成提示,通过一个触发器引导整体消极的参数和积极的参数达到一个平衡的位置(to induce negative biases for one demographic and positive biases for another demographic and equalized biases between demographics with universal triggers不知道该怎么翻译)。

然而,一些语言模型的参数尚未公开。例如,强大的GPT-3模型不是开源的,这使得研究人员无法访问其参数或应用基于梯度的方法。考虑到这些,我们提出了一个新的框架,将RL和基于提示的学习结合起来,在不访问其参数的情况下引导任何现成模型的输出。如图1所示,我们可以为每个任务生成不同的提示,并将其与原始输入句子连接起来。然后将修改后的句子作为会话模型的输入从而影响相应的结果。
在这里插入图片描述

论文贡献

•提出了一个新颖的框架,使用强化学习来引导现成的对话模型,在不访问任何参数的情况下用情感和特定主题进行回复。

•提出的框架不仅可以增强对不可见任务的泛化能力,还可以有效地减少对不可见任务的训练步骤。

•进一步进行了人类试验,并将我们的框架应用于最先进的GPT3,并成功控制了它产生的响应。

Method

Framework

它由两个模型组成,一个提示生成器和一个对话模型。提示生成器将原句子和一个可控因素作为输入,生成与该可控因素相关的提示。提示语与原句连接,形成会话模型的输入句。生成器的目标是产生提示,引导对话模型的响应,使输出与可控因素相关。

Conversational Model

会话模型用C表示,它可以是任意的聊天机器人,我们可以访问也可以不访问它的参数。这意味着C可以是任何具有固定参数的现成模型,甚至只是一个API。这是因为我们用RL训练提示生成器,不需要修改或反向传播C的参数。

论文的实验使用了三款对话机器人:The DialoGPT,The Blenderbot,The GPT-3。

Prompt Generator

提示生成器G使用DialoGPT 模型进行初始化。我们将可控因子与原始输入句子拼接,构造G的输入,表示如下:在这里插入图片描述
其中c为可控因素,x为原始输入句子。当可控因素是情绪时,c的一些可能选择是快乐、悲伤等。当可控因素是话题时,c可以变成运动,音乐等。

然后生成器G以s为输入,生成提示符p = G(s)。

最后,p将与原始输入句子x连接,形成对话C的输入。最终响应为C([p;我们根据C([p;x])。G会学会通过生成适当的提示来引导c的输出来最大化R。奖励函数R的确切定义取决于可控因素的类型。其中应用RL来更新模型的参数。

Reinforcement Learning

我们应用近端策略优化(PPO) (下面会详细学习PPO算法)作为我们的RL训练算法。奖励函数R的定义取决于可控因素。我们分别设计了不同的奖励函数。

Emotion

我们的目标是生成提示,引导对话模型以特定的情感做出回应。情感分类遵循设定。共有27种情绪类别,包括积极情绪和消极情绪。为了识别话语中所包含的情感,我们建立了一个基于bert的情感分类器B来确定响应所属于的情感类别。情绪奖励RE定义如下:在这里插入图片描述
情绪奖励RE是分类器b预测的概率I([p;X])是对话产生的反应,y是给定的情绪。

Topic

同样的,在话题中也用了类似的方法。
模型会诱导会话模型说出与特定主题相关的特定单词。为了鼓励对话用特定的词来回应,我们计算特定词在回应句中出现的频率,并将其用作奖励函数RW。我们期望对话将学会用包含与可控因素相关的词语的句子来回应。
综上所述,如果可控因素是情绪,则设R = RE;对于 lable因子为topic的情况,R = RW。

Multi-task Learning

我们发现,纯RL训练的奖励收敛得非常慢。为了使模型更快地适应新任务,我们将多任务学习应用到训练过程中。在训练过程中,我们针对每个可控因素随机选择几个任务,并一起优化这些任务的奖励。通过与多个任务联合训练,也可以隐式地利用层次关系。我们预计,该模型不仅能学习解决单个任务,而且还能获得更好的泛化能力。

Experiment

在实验部分,作者选择用EmpatheticDialogues作为情绪选择的库,选择GoEmotions(这些类别包括大量的积极、消极和模棱两可的情绪。情感类别的多样性使其适用于下游会话理解任务。此外,它是迄今为止最大的人类注释情感分类数据集。)作为场景词汇提取库。

使用了三款对话机器人:The DialoGPT,The Blenderbot,The GPT-3,进行对比实验。

变量的设置,包括了No Prompt,DialoGPT,Independent Prompt(不依赖上下文x的情况下生成提示符),Human Prompt。

评级方式包括:GPT,BLUE,人类评价等。

Discussion and Analysis

在这里插入图片描述
在这里插入图片描述
该模型在0次和10次shot scenarios下的可控因素和对话模型均优于基线模型。然而,我们也观察到,在训练500次后,基线模型往往超过了提出的模型。通过观察,我们可以推断,当数据足够时,多任务学习并不总是能带来更好的表现。

结果表明,我们提出的RL方法可以成功地引导GPT-3模型API。此外,多任务预训练模型在较少射击场景下也优于基线模型。也可以观察到同样的现象,多任务预训练的模型确实比基线获得了更高的奖励。此外,我们所提出的方法也保持了相当的连贯性、复杂性和多样性。

在场景和情绪的比较中发现,在两个可控因素中,所提模型的回报均高于基线。我们可以看到,一致性分数随着奖励的增加而降低。对于模型来说,一致性分数是一个可以接受的回报交换。此外,情感的连贯得分远高于话题的连贯得分。这是因为话题可控因素与句子的语境高度相关。为了提高奖励,模型被迫说出一些关于给定主题但与原始上下文无关的内容。

相比之下,情绪与语境相对不纠缠,因此在保持连贯性得分的同时提高奖励是有可能的。

Conclusion

在本文中,首先提出了一个用RL训练的提示生成器来引导现成模型的生成。其次,进一步提出了一种采用多任务学习概念的训练技术,以加快收敛速度,增强生成器对未见任务的泛化能力。在提出的方法中,我们为提示生成器设计了两个可控因素来生成可以引导聊天机器人的提示。一、目标是控制聊天机器人在各种情绪反应中的反应。另一个是让聊天机器人回复包含特定主题下的单词的回复。实验结果表明,该方法可以在不访问参数的情况下成功地引导包括DialoGPT、BlenderBot和GPT-3在内的SOTA模型。此外,多任务学习模型的收敛速度也比不进行多任务学习训练的模型快。

最后再提出了一些伦理问题,以及补救措施,相信这将是以后的研究对象。

二、Proximal Policy Optimization(PPO算法)

PPO算法是在Policy Gradient算法的基础上训练出来的,是策略梯度的一种改进算法。PPO的核心精神在于,通过一种被称之为Importance Sampling的方法,将Policy Gradient中On-policy的训练过程转化为Off-policy,即从在线学习转化为离线学习,某种意义上与基于值迭代算法中的Experience Replay有异曲同工之处。通过这个改进,训练速度与效果在实验上相较于Policy Gradient具有明显提升。

Policy Gradient

在这里插入图片描述
在这里插入图片描述

需要一个奖励机制,以确保过程T能得到一个想要得到的结果,R(T)表示。
在这里插入图片描述
以上就是Policy Gradient算法,但 也存在系列的问题,如 数据量大 ;数据利用不充分,许多数据用一次就被抛弃掉;奖励机制不完善,一般只有奖励没有惩罚,未能使算法尽可能的优化等。

于是人们提出了ppo算法,以处理这些问题。

baseline

用于解决奖励和惩罚关系的。
在这里插入图片描述

KL—divergence

用于解决数据量大,并且数据未能充分利用的问题。
On-policy 与 Off-policy在这里插入图片描述
用前面运行得到的数据代替当前的数据进行学习在这里插入图片描述
Gradient Update的求法:
在这里插入图片描述
其中还有很多没有完全提到,但其主要思想就是

  1. 用baseline reward代替 全部reward
  2. 用上一次的数据 代替当前的数据进行训练

总结

本周学习了一篇NLP的文章《Learning to Generate Prompts for Dialogue Generation through Reinforcement Learning》,是关于当前火热的ChatGPT的文章,其中提出一些比较新颖的想法,用情感和场景的分析提前预处理,再用强化学习进行训练,从而提升模型的鲁棒性。同时,我还学习了强化学习中使用度非常广的PPO算法,掌握其模型的特点和优点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值