首页 > 其他分享 >一文理清受控文本生成发展脉络

一文理清受控文本生成发展脉络

时间:2022-12-11 10:02:38浏览次数:66  
标签:受控 基于 脉络 训练 可控 模型 生成 理清 文本

写文章之前先带你们断一下句哦 **“一文理清/受控文本生成/发展脉络”**。


可控文本生成

这个是填坑的,看过带你了解自然语言处理文本生成方向的应该知道我举了个聊天机器人的例子。没看过也没事,继续往下看就行了。

image.png

还是这个例子,你朋友说他焦虑,如果你们俩都是大叔,你可以跟他说:来根烟缓缓。但是如果对方打开青少年模式,你肯定不能这样讲。“来根烟缓缓”就变成了毒数据。

也就是说在一些情况下某些回答是合理的,但是另一些情况下,同样的回答可能就不合理了。我们就要对控制回复过程中的情绪、角色、语气等等,也就是为了控制对话过程的合理性,生成对话内容的时候就用到了可控文本生成(Controllable Text Generation)。

除了我前边说的是这几个,我们还可以想到:

  • 在生成故事的时候我们要考虑故事线和故事结局发展方向。

  • 用文本生成做数据增广的时候,我们要确定生成的数据在不同的域上分布是均匀的。

  • 在人工智能伦理方面,要避免生成有误导性或者争议性的东西,比如性别歧视,种族歧视等等。

  • ……

可控文本生成任务发展之初

其实这个任务很早之前就有了,但是以前都是基于规则的,哪来什么可控不可控的。但是随着深度学习的发展,这个任务才有了真正的进展。

基于序列模型和特征嵌入

早期的方法是基于一些序列模型和特征嵌入的。

image.png

1603.06155.pdf (arxiv.org)

这篇文章做的主要工作是控制对话生成,通过一个基于任务的模型来确保模型对话过程中的一致性问题。

  • 先是用一个说话人模型(speaker model)将角色进行编码,获得其分布式嵌入。以此捕获任务特征信息,比如说话风格啊,对话背景啊之类的。

  • 再使用对话双方二元模型(dyadic speaker-addressee model)捕获对话者之间交互的属性。

通过上边两个模型,就可以提高模型在对话中的人格一致性,这就是基于特征嵌入

image.png

1707.02633.pdf (arxiv.org)

这个文章是使用RNN模型来控制生成内容,主要是控制文本风格去写影评(所以是真的打算拿来当水军是吗。)

基于深度生成模型

之后就是大量基于生成模型的文章,比如基于VAEs的,基于GANs的,基于能量模型的。了解的人可能知道,GANs、VAEs这些不都是图像那边的模型吗?怎么都拿来做受控文本了?这就可以拓宽迁移思路了。以下是放了是三个文章,第一个是基于VAE的,让你知道图像到文本的迁移是要考虑连续分布到离散分布的;第二个是基于GAN的,在这里是学了生成器和鉴别器的思路;第三个就是基于能量模型的,这块超出我知识范围了,感兴趣的可以自己去看。

小结

基于深度学习的方法能够以数据为驱动进行端到端学习,学习到文本语言特征的低维密集向量表示。这样既可以缓解数据稀疏性问题,又能防止手工特征偏见问题。所以基于深度学习的方法具有很大的潜力。

大模型时代下的可控生成

虽然随着深度学习的发展可控文本生成取得了一定的进展,但是我们要知道,深度学习的真正的崛起很大一部分是依赖于大数据集的。因此大数据集(尤其是有标签数据集)这一点对于监督学习和一些交叉领域的文本生成还是一项挑战。

17年transformer出来了,18年开始大型预训练模型(large-scale pretrained Language models,PLMs)开始发展起来了。这些预训练模型可以依靠无标签数据进行训练,也就是借助transformer使用无监督方法学习,这样就可以使用大量无标签语料了。这些预训练模型的出现又解决了我刚才提到的问题。

因为使用了大量语料,大型预训练模型可以从数据中获得大量的语义和句法知识。大模型的强大之处在于,我们只需要对其进行微调就可以获得SOTA性能。当然现在还出现了zero-shot,你不需要微调也可以获得很好的结果。

大模型的发展对文本生成有什么影响?

在自然语言生成方面,预训练模型从大量语料中进行学习,因为语料集足够大,比如很多大模型训练都是从社交媒体爬上亿数据,因此预训练模型可以从很大程度上建模自然语言的分布,从而自然就能生成高质量文本。

但是预训练模型已经好强大了,甚至不需要任何外部知识就可以生成具有特定约束的文本了,那我们受控生成岂不是没有用武之地了?

不是的嗷。

预训练模型是基于神经网络的,神经网络是个黑盒,缺乏良好的可解释性和可控性。因此从这时候开始,可控文本生成的热点转向为如何提高基于大型预训练模型的生成模型的可解释性和可控性。

我个人的一些观点

在接触可控文本生成的过程中,我个人觉得在大型预训练模型方面还存在一个原因。

image.png

从17年Transformer出来以后,基于 Transformer 的预训练语言模型发展如火如荼。于是OpenAI那些人成功拿着Transformer做出了语言模型,那个时候GPT刚出来,惊为天人,在GPT之前,虽然图像领域已经有用ImageNet做的预训练模型了,但是NLP领域是没有像ImageNet那样大的有标签数据集的,因此迟迟没有出现预训练模型。但是GPT用无标签数据,做出来了预训练模型+微调的范式,所以说是惊为天人。

然后呢BERT就出来了,用更大的数据集更大的模型训练了语言模型。并且还在论文中写的“我们做了两个模型,一个bert base,一个bert large,做bert base的原因。就是要和GPT比较。这话一出来你能忍吗。所以GPT啪就做了一个GPT-2。用更更大的数据集做出来一个更更大的语言模型。从那之后NLP领域的预训练模型就有着越做越大的趋势。各家都开始搞大的预训练模型。不过这两年这个趋势已经收住了,大家发现大并不一定有效。开始专注于小而美的模型了。这里的小不是指把模型越做越小,而是模型体量适中,但是能取得更好的效果。

接着说预训练模型。虽然已经意识到模型越来越大也不一定有用,但是对于一些研究人员来说,即使是体量适中的模型,他们连微调的算力也承担不起。如果冻结部分模型去微调一部分,又会非常影响最后的生成效果。在不改变预训练模型架构的情况下,一些人就会想着怎么去从外部控制文本生成。

所以在我看来,这是大模型时代下可控文本生成发展的一个重要原因。仅仅是个人理解嗷

之后我大概率会单开一篇文章写大模型视角下的可控文本生成。

标签:受控,基于,脉络,训练,可控,模型,生成,理清,文本
From: https://blog.51cto.com/Lolitann/5928098

相关文章

  • 1分钟理清楚C++类模板和模板类区别
    1、定义区别    类模板和模板类主要关注点是后一个单词。类模板:主要描述的是模板,这个模板是类的模板。可以理解为一个通用的类,这个类中的数据成员,成员函数的形参类型......
  • DRF-Django Rest frameWork脉络笔记
    1.Web应用模式在开发Web应用中,有两种应用模式:前后端不分离前后端分离2.api接口为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接......
  • 如何让表达和写作逻辑严密条理清晰
    如何让表达和写作逻辑严密条理清晰很多时候我们写东西,或者说话会觉得自己表达凌乱,别人听完后不大清楚我们说了什么。注意,如果我们表达完后,别人正常听了后没有留下印象,不是......
  • Spring源码整体脉络
    BeanFactory:Spring顶层核心接口,使用了简单工厂模式,负责生产Bean。BeanDefinition:Spring顶层核心接口,封装了生产Bean的一切原料。从读取配置到扫描到注册bean,主要用到......
  • 一份vue面试知识点梳理清单
    写过自定义指令吗原理是什么指令本质上是装饰器,是vue对HTML元素的扩展,给HTML元素增加自定义功能。vue编译DOM时,会找到指令对象,执行指令的相关方法。自定义指令......
  • 何为受控组件(controlledcomponent) ?(必会)
    何为受控组件(controlledcomponent)?(必会)点击查看代码在HTML中,类似<input>,<textarea>和<select>这样的表单元素会维护自身的状态,并基于用户的输入来更新,当用户提......
  • react 受控组件与非受控组件
    概述React中的受控组件和非受控组件都是针对于表单数据而言的。React推荐使用受控组件来处理表单数据。在受控组件中,表单数据由React组件的state管理。在非受控组......
  • antd 中 清空Input组件中的值,不是通过form.setFiledValue的方式,非受控组件清空值
    今天看到一篇不错的文章关于antform不通过react的state设置非受控组件值的文章,转发记录一下:(以下为原文) 最近做了一个业务就是在输入框中处理防抖的业务,本来就可以,测试......
  • 一张图理清所有的RAW RGB YUV图像格式
    0.引言之前一直做着和camera有关的工作,所以常常会涉及到图像格式的问题。感觉接触的名字和种类很多,索性好好整理一下,分个类,也方便后面再整理。1.直接上结论直接......
  • PHP 存在不受控制的递归漏洞
    PHP存在不受控制的递归漏洞在PHP受影响版本内,phar解压缩器代码将递归解压缩“quines”gzip文件,从而导致无限循环。攻击者会利用此漏洞导致服务器资源耗尽。影响......