加入收藏 | 设为首页 | 会员中心 | 我要投稿 52刷机网 (https://www.52shuaji.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 4G频道 > 通讯 > 正文

Uber AI简单方法实现大规模语言模型的精细控制

发布时间:2019-12-11 10:48:08 所属栏目:通讯 来源:网络整理
导读:Uber AI简单方法实现大规模语言模型的精细控制

Uber AI简单方法实现大规模语言模型的精细控制

雷锋网 AI 科技评论按:OpenAI 的 GPT-2曾经掀起的「大规模语言模型到底水平多高、到底有没有危害」的口水仗慢慢冷下去了,而语言模型的实用性问题也越来越展现出来:如果很难控制一个语言模型的输出,那可能就很难找到它的实际应用,只能沦为刷分工具。

近期,Uber AI 研究院的一篇论文《Plug and Play Language Models: A Simple Approach To Controlled Text Generation》(https://arxiv.org/abs/1912.02164)中介绍了一种简单、高效的精细控制方法,可以轻松地让大规模语言模型生成指定的主题、风格的文本,而且还有很广泛的适用性。Uber AI 的研究人员们把它比喻为「让小老鼠控制一只猛犸象」。雷锋网(公众号:雷锋网) AI 科技评论把论文的解读博客编译如下。

Uber AI简单方法实现大规模语言模型的精细控制

一个实际的挑战:基于预训练模型的条件文本生成

2017年谷歌提出的基于注意力的 Transformer 网络架构为自然语言处理开辟了一个全新的时代。从此之后,基于 Transformer 改进的更大、更大的模型层出不穷,基于深度学习的自然语言处理方法也在各种各样的任务中取得越来越好的成绩。

随着 BERT、GPT-2 之类的大规模语言模型出现,NLP 研究者们通过实验表明了只需要用简单的目标函数在超大规模的无标注语料上训练,得到的语言模型就可以在语言建模任务(给定一组开头以后向后续写)中得到前所未有的流畅度,文本的自然、合理程度可以接近人类水平。

比如,给定一个开头「这里的食物不好吃」,一个语言模型(比如 GPT-2)能续写成这样的看上去相当合理的一段话「这里的食物不好吃,店员又懒又粗鲁。这食物真让人喜欢不起来,即便我的要求一点也不高。」

不过,虽然这些模型生成的句子体现出了拼写、语法、语言习惯等等复杂的语言知识,但想要具体地控制模型生成的内容仍然非常困难。换句话说,虽然模型有能力生成各种各样不同的句子,或者为一个给定的开头续写出很多不同的段落,但我们很难指定让模型生成某一种风格的、某一种话题的、某一种叙述逻辑的文字。比如,同样是以开头「这里的食物不好吃」进行续写,人类可以欲扬先抑,最后得到一个正面的结论,也可以挂羊头卖狗肉,话说到一半慢慢从讲食物变成讲政治的。想让语言模型做到这些就非常困难。

在这篇论文里,Uber AI 的研究人员们在这个问题上做出了一些突破。我们先看一个例子,他们用他们的方法要求模型生成一段正面的续写,效果是:「这里的食物很糟糕,但还有音乐、故事和魔力!Avenged Sevenfold 的摇滚音乐剧演得太精彩,以后在全世界都能看到。」文本表达的情感从负面转变成了正面,但还是挺连贯自然的。

在此之前,全世界的 NLP 研究人员们提出过各种各样的条件文本生成方式,包括,1,从一个预训练语言模型开始,做精细调节,以便让它始终都能生成某种特定风格的句子;2,从零开始训练一个大型条件生成模型;3,不改变这个大的语言模型,而是通过关键 n 元组替换的方式,调节已经生成的句子的风格。

Uber AI 这篇论文带来了一种全新的有控制的文本生成方式,他们称之为「the Plug and Play Language Model」(即插即用语言模型,PPLM)。通过 PPLM,用户可以向大型非条件性的生成模型中灵活地插入一个或多个属性模型,这些插入的模型可以代表不同的想要控制的属性。PPLM 的最大优点是不需要对语言模型做任何额外的改动(不需要重新训练或者精细调节),就让资源不足的研究人员也可以直接在预训练语言模型的基础上生成条件文本。

如何驾驭一头猛犸象

Uber AI简单方法实现大规模语言模型的精细控制

NLP 研究人员们目前开发的最大的、语言能力最强的语言模型都非常大,动辄有数十亿的参数,训练它们需要大量的计算资源(从零训练一个模型,租算力大概需要六万美元),而且训练这些模型还需要海量的文本数据,即便模型的代码是开源的,这些训练数据也通常不是开源的。在许多意义上,大规模语言模型就像猛犸象一样,它们聪明、有力,但是它们的行动又随意又笨重。

这样的语言模型带来的结果就是,除了那些有最充沛的资源和资金的研究人员之外,其它的研究人员和开发者都只能在无论如何都不理想的情境中三选一:1,直接使用公开的预训练模型(虽然有好的语言建模能力但无法完全匹配他们的需求);2,在小一些的数据集上对预训练模型做精细调节(但一旦出现灾难性遗忘,就会让模型的表现大幅下降);3,需求不符只能从零训练新模型,但预算有限,只能训练小得多的模型(表现也自然也会有明显差距)。

Uber AI 提出的 PPLM 就能在这样的困境面前起到很大帮助,需要符合自己需求、且表现优秀的语言模型的研究者和开发者,不再需要想办法训练自己的模型,只需要用几个小的属性模型控制大预训练模型的生成,就可以达到目标。一个属性模型可以只有预训练模型的百万分之一大,同时仍然有很强的引导能力,就像在猛犸象的头顶坐了一只小老鼠,就能够灵活地控制让猛犸象往哪里走。

控制一个语言模型的不成功方法

语言模型有几类,对应几种不同的分布。

首先有非条件性的语言模型,它的分布是 p(x),是所有文本上的一个概率分布。GPT-2 之类的非条件性的语言模型就是建模了这样的分布。这样的语言模型是通用的,可以为许多不同种类的话题生成流畅的文本。

其次,条件性语言模型的分布是 p(x|a),这就是我们的目标。在给定某种属性 a 之后,这种假想模型就可以生成带有这种属性的文本。

接下来,属性模型的分布是 p(a|x),它是根据给定的句子输入 x 计算句子带有属性 a 的概率。比如,经过属性模型计算,某个句子有10% 的可能性是正面情绪的,以及有85% 的可能性是关于政治的。属性模型可以很小、很容易训练,仅从直观上来看,判断某个句子是否含有某种属性就是个分类任务,要比写出这样的句子简单得多;尤其是,如果在语言模型学习的语言表征上训练这样的属性(识别)模型,OpenAI 的论文《Improving Language Understanding by Generative Pre-Training》就已经表明了可以轻松地训练一个表现优秀的小模型。在 Uber AI 的实验中,一个单层的、4000 个参数的属性模型就能在属性识别和文本生成引导中发挥很好的效果。

那么我们想要的条件性语言模型,也就是 p(x|a) 从哪里来呢?幸运的是,根据贝叶斯法则,这个模型可以用第一个和第三个模型表示出来,也就是:

p(x|a) ∝ p(a|x) p(x)

(编辑:52刷机网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读