Uber AI简单方法实现大规模语言模型的精细控制
|
不过,虽然这种方式让我们可以方便地计算概率(「这个句子符不符合我们想要的样子」),但我们很难从这种表达中采样。我们可以先尝试常见的拒绝采样或者重要性采样,从 p(x) 分布开始逐一采样筛选—— 这种做法理论上可行,但实际操作起来,要么会得到有偏倚的结果,要么运行速度非常慢。想用这种方式生成一个谈政治的句子,大概会是这样的状况: 从 p(x) 中采样得到一个句子 x 把句子 x 输入 p(a|x) 计算它是否是关于政治的 如果不是,重复第一步 显然,这就是从随机生成的句子里把关于政治的句子挑出来而已,由于 p(x) 覆盖了大量不同的话题,运气不好的话可能很久都无法得到关于政治的句子。对于越长的句子,生成满足要求的整句话也越难(需要越好的运气),花费的时间会指数级增加。这简直像「无数多的猴子在无数多的打字机上随机地打字,并持续无限长的时间,那么在某个时候他们必然会打出莎士比亚的诗集」,理论上正确,但无法用在实践中。 用梯度控制大规模语言模型 PPLM 解决这个问题的方式是,他们用属性模型通过梯度控制大语言模型。他们逼近实现了 1996 年的论文《Exponential convergence of Langevin distributions and their discrete approximations》中的更高效的 Metropolis-adjusted Langevin 采样器,而且参考了 Plug-and-Play Generative Networks (PPGN,arxiv.org/abs/1612.00005)中在一对神经网络上的实现方式。这样一来,PPLM 生成一个样本就变成了这样的简单的三步: 给定一个部分生成的句子,计算 log(p(x)) 、log(p(a|x)),以及两者关于语言模型的隐层表征的梯度。只需要对属性模型和语言模型都做一次高效的前馈传播和反馈传播,这几个值都可以计算出来。 根据计算出的梯度,在反馈传播中,根据属性模型的梯度更新语言模型的隐层表征,向着增加 log(p(a|x)) 和 log(p(x)) 的方向移动一小步,也就是增加了生成的文本带有想要的属性的概率 由于上一步更新,语言模型的分布被改变,然后采样一个词
在每个时间步中,这个过程都会进行一次,也就是说表征了以往的值的隐层变量会被一次又一次地更新。 直观上讲,随着 PPLM 生成一个个词,它的文本表征也逐渐向着更有可能符合属性要求的方向发生变化(高 log(p(a|x)) ),同时也保持了语言模型本来的语言流畅度(在第二步中保持高 log(p(x),避免语言模型本来的表达能力被破坏)。 Uber AI 的研究人员们也对 PPLM 做了一些相关的说明: 首先,PPLM 的这种控制模式是可以调节的:对隐层文本表征的每一步变化的强度可以调节;当变化强度设为 0 的时候,这就是原本的语言模型。 其次,PPLM 假设原有的基础语言模型是自回归的,许多现代的语言模型都符合这个要求。实际上,如果语言模型是基于 Transformer 架构的,上面的这个方法就可以有高效的实现,因为以往的预测值只能通过 Transformer 的以往的键和值对未来的预测产生影响,和其它的激活值都无关,所以在前向传播中只有张量需要更新和传递。 以及,PPLM 中的采样器的实现,和上面提到的《Exponential convergence of Langevin distributions and their discrete approximations》以及 PPGN,arxiv.org/abs/1612.00005 中的实现有一些重要的不同,感兴趣的研究人员可以阅读论文原文具体了解 最后,Uber AI 这项研究中选用的基础语言模型是 345M 参数的 GPT-2,但对于其他的自回归语言模型也是有效的。 词袋属性模型 Uber AI 的研究人员们首先尝试了最简单的一类属性模型,词袋模型(Bag-of-words),计算方式也就是直白的「符合主题的似然度等于词袋中每个词单独的似然度的和」,换句话说就是含有越多词袋中的词,就认为句子符合属性的可能性越高。 在这个实验中,他们想要生成太空主题的文本,词袋中含有「planet、galaxy、space、universe」等等词汇。即便给定不同的开头,模型生成的几组结果都达到了预期效果。
同一主题、不同开头实验 在下一个实验中,他们用同样的开头、不同内容的词袋模型尝试生成不同的主题。我们可以看到,生成的文本带有词袋中的词的概率提升的同时,不在词袋中、但有相关性的词汇的出现概率也增加了。这是因为,PPLM 中更新文本表征的方式是向着目标方向的连贯自然的迁移,作者们也通过对照实验说明这种做法的效果比直接提升想要的关键词的出现频率的效果更好。
同一开头、不同主题实验 在苛刻的条件下,PPLM 的表现如何呢?这组实验中,给定和目标话题完全不相关的开头,比如「以各种动物/食物开头,主题是政治」。即便是这样奇怪的开头,PPLM 也能生成合理的句子。
有挑战性的开头和主题 判别器属性模型 词袋模型固然是一个简单直观的话题表征方式,但对于一些更复杂、深层次的属性,比如正面和负面情绪,我们总还是需要更复杂一些的模型的。这种时候我们就可以使用在标注数据集上训练出的分类模型。 Uber AI 的研究人员们设计的分类模型把原本的语言模型中提取出的嵌入表征作为输入,用一个单层分类器结构预测类别标签。这个模型中含有的参数可以不超过 5000 个,相比于语言模型的规模可谓不值一提。 这样得到的 PPLM-Discrim 模型生成正面和负面情感的文本效果如下图
多个属性模型联合使用 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |





