可控文本生成简单介绍

目录

一、概要

二、模型介绍

2.1 CTRL模型

2.2 PPLM模型


一、概要

除了作为预训练模型用于语言表示、条件式生成等下游任务,语言模型的另一个重要的功能是“写作” ,或定向文本生成。单纯的语言模型(如GPT-2、GPT-3等)可以根据文章的开头,逐渐生成后续内容。但是,其缺点在于无法控制生成文章的具体内容,或者“方向” ,因此实用性较弱。如何更好地控制文章的内容(如风格、主题、领域)以生成更有价值的文章,是一个充满挑战的问题。本文将简单介绍用于可控文本生成的两种模型。

二、模型介绍

2.1 CTRL模型

(1) CTRL。 CTRL(Conditional Transformer Language Model) 模型则是为了更好地控制文章的内容这一目的而设计的。CTRL模型可以根据指定的领域、 风格、主题、实体和实体关系等属性生成相应的文本。例如,需要生成 一段关于“刀”(Knife)且具有“恐怖”(Horror)色彩的文本,只
需要以“Horror A knife ”作为前缀(Prompt),便可以生成以下文本:
Horror A knife handle pulled through the open hole in the front.I jumped when the knife hit.\n\nEyes widened in horror.Her scream was the only sound I heard besides her sobs.\n\nThe spider touched her feet as it started to dig into the top of her arch.The creature's tears began to flow.\n\nThe spider looked up to her and looked back at me with eyes filled with burning tears.My heart started to race…
CTRL模型从结构上仍然是一个基于Transformer的自回归语言模型。它之所以能够实现可控文本生成,其核心思想是从海量无标注数据中定位文章所在的领域或其他属性,并作为控制代码(Control codes)放在输入文本的头部,以指导后续文本的生成。原文作者发现,CTRL模型还可以根据不同控制代码的组合生成更具针对性的文本,尽管这种组合没有出现在训练中。上面的例子即为“Horror ”与“Knife ”两种属性的组合。
如果将每种风格、领域或主题等属性下的生成任务看成一个个独立的任务,那么CTRL模型的训练过程实际上也是一个多任务学习的过程。
与T5、GPT-3模型类似,为了使用一套模型参数完成多项任务,模型需要具备较大的容量或规模。CTRL也是一个体量巨大的模型,它具有约16亿个参数,48层Transformer编码层,16个自注意力头。
从头训练这样一个大体量的条件语言模型无疑代价很高。那么,能否直接利用已有的通用预训练生成模型,如GPT-2,直接生成属性可控的文本呢?为了解决这个问题下面引入了PPLM模型。

2.2 PPLM模型

(2) PPLM。 PPLM(Plug-and-Play Language Model)模型 提供了一种无须重新训练,且即插即用的方法实现可控的文本生成。其核心思想是,对于预训练语言模型(GPT-2)以及目标属性a(例如情感、 主题等),利用当前的生成结果是否满足属性a(即条件概率P (a|x))对生成进行修正,使其朝着满足该属性的方向变化。这里x表示当前生成的文本,P (a|x)可由已训练好的属性分类器计算得到。 具体修正过程可分为以下三个步骤:
  • 前向过程:包括语言模型以及属性判别(即P (a|x)的计 算);
  • 反向过程:利用属性判别模型回传的梯度,更新语言模型内部的历史状态,使得实际预测更接近目标属性;
  • 重采样:根据新的概率分布,重新采样下一个生成的词。
这样一来,就能够使文本朝着属性判别器满意的方向生成。同时,为了保证生成文本的流利性,还需要控制修正后的语言模型尽量与原预训练语言模型接近。因此,PPLM模型在更新语言模型内部状态时,加入了一项KL散度损失,以最小化修正前语言模型与修正后语言模型预测概率分布之间的KL散度。

附录:

作者的其他文章:

UniLM模型简单介绍_云隐雾匿的博客-CSDN博客

BART模型简单介绍_云隐雾匿的博客-CSDN博客

GPT-3模型简单介绍_云隐雾匿的博客-CSDN博客

扫描二维码关注公众号,回复: 15375037 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_45684362/article/details/130252502