AI小说家不是人!语言模型竟能续写《红楼梦》?

87173653 2019-04-12

AI小说家不是人!语言模型竟能续写《红楼梦》?

自然语言处理(NLP)技术在2018年取得重大成就。算法模型界新的预训练自然语言处理模型在情绪分析、回答问题等一系列任务中取得了巨大突破。

2018年先后出现了像ELMo、BERT、BigBird这样的自然语言模型。虽然OpenAI GPT比BERT更早上线,但接受度上却被BERT狠狠碾压。究其二者的最大差异,GPT用的是单向语言模型,而BERT则是用双向语言模型做训练。

然而,倔强的OpenAI GPT仍采用单向语言模型,最终脱胎换骨。2019年2月,GPT 2.0惊艳亮相,写出了一篇关于独角兽的故事,以语言快速自动生成的特性,完成华丽丽的逆袭。它的新名字叫做OpenAI GPT-2.

AI小说家不是人!语言模型竟能续写《红楼梦》?

摘自https://blog.openai.com/better-language-models/

由图可见,系统在开始设定一个故事开头,后面的内容则基于GPT 2.0一个单词一个单词生成,再自动生成故事内容。其生成模式是:单词的连环预测,即如果你能预测一个句子中的下一个单词,你就能预测这个单词的下一个、下下一个......很快就能掌握很多单词。如果语言模型足够优秀,这些单词还能组成意思通顺的句子,然后组成连贯的段落。而这些段落则可以组成任何你想写的东西。

GPT-2不是一次基本算法的突破,而是一次参数累计的壮举。它拥有多达15亿个参数(这比原始GPT的参数多了15倍),并接受了来自800万个网站的文本训练。国内网友调侃,不知道GPT-2编起故事来会不会比高鹗还优秀,《红楼梦》可以考虑出个AI续写版。

如何理解一个拥有15亿参数的模型呢?或者视觉化会有所帮助。

AI小说家不是人!语言模型竟能续写《红楼梦》?

可视化GPT-2

由于担心恶意使用,OpenAI并没有发布完整的GPT-2模型,但他们还是发布了一个与原始GPT规模相当的缩小版本(拥有1.17亿个参数),已发布的新模型接收了更新更大的数据集训练。

虽然缩小版本没有完整版模型那么强大,但是它仍保留了一些语言生成的痕迹。让我们看一看视觉化能否帮助我们更好地了解这个模型。你可以通过Colab notebook或者直接从GitHub repo创建以下视觉化模型。

一个说明性的例子

让我们看一看GPT-2的缩小版模型是如何完成这个句子的:

船上的这只狗跑了(The dog on the ship ran)

AI小说家不是人!语言模型竟能续写《红楼梦》?

以下是这个模型生成的句子:

船上的这只狗跑掉了,然后被船员发现了。(The dog on the ship ranoff, and the dog was found by the crew.)

现在我们稍稍改变一下这个例子,将狗换成摩托车,看一看这个模型会生成什么样的句子:

船上的这辆摩托车奔驰着(The motor on the ship ran)

现在看一看模型生成后的句子:

船上的这辆摩托车以100英里每小时的速度奔驰着。(The motor on the ship ranat a speed of about 100 miles per hour.)

通过改变句子开头的一个单词,我们就能得到一个完全不一样的结果。这个模型似乎明白,跑着的狗和奔驰着的摩托车是两种完全不同的类型的“跑”(running)。

GPT-2是如何知道要密切关注狗和摩托车的区别,尤其是当这两个单词都出现在句子前端的时候呢?其实,GPT-2是基于实质为注意力模型的Transformer上运行的。该模型可以学习关注那些与当前任务最为相关且先出现的单词,然后预测这个句子中的下一个单词。

让我们看一看在“船上的这只狗跑了”(The dog on the ship ran)这句话中,GPT-2的关注点在哪里。

AI小说家不是人!语言模型竟能续写《红楼梦》?

从左到右看,这些线条反映了GPT-2在猜测一个句子中下一个单词时的关注点(颜色越深代表关注度越高)。因此,在猜测“跑”的下一个单词时,这个模型密切关注“狗”这个单词。这就说得通了,因为知道谁或什么在跑对于猜测后面的单词至关重要。

用语言学术语来说,在“船上的狗”这一名词短语中,该模型侧重于它的中心词(head)。GPT-2还体现了很多其他语言学属性,毕竟上述的注意力模式只是该模型144种注意力模式中的一种。GPT-2有12层transformer模型,每一层又有12个独立的注意力机制,称为“中心”(heads),因此最终让GPT-2拥有了12 x 12 = 144个不同的注意力模式。这里我们可视化所有的144种模式,重点谈谈刚刚讨论的那一个:

AI小说家不是人!语言模型竟能续写《红楼梦》?

GPT-2模型12层注意力模式(行)及12个中心的注意力模式(列)可视化,突出的为第4层/第3中心(零索引)

我们可以看到,这些模式有很多不同的形式。下面这个模式也非常有趣:

AI小说家不是人!语言模型竟能续写《红楼梦》?

这一层/中心将所有注意力都放在这个句子各个单词的前一个单词上。这也说得通,因为通常相邻的单词与预测的下一个单词最为相关。传统的n-gram语言模型也是基于这种直觉。

但是为什么很多注意力模式都和下面这个模式相似呢?

AI小说家不是人!语言模型竟能续写《红楼梦》?

在这一模式中,几乎所有注意力都集中在这个句子的第一个单词上,而其他单词的注意力大量减少。这似乎是一个无效的模式,表明注意力中心没有找到它寻找的任何语言现象。该模式似乎重新定义了第一个单词,即如果没有找到更好的关注对象,则关注第一个单词。

猫在_____中。(The Cat in the _____)

AI小说家不是人!语言模型竟能续写《红楼梦》?

让我们来看看GPT-2是如何完成永恒的经典-《戴帽子的猫》(Cat in the Hat)中的台词的:

“我们看见在一根风筝线上,挂着妈妈的新外衣!那件带着粉色、白色和......点点的裙子”!(Her gown with the dotsthat are pink, white and…)

看看GPT-2如何完成的这个句子:

那件带着粉色、白色和蓝色点点的裙子!(Her gown with the dotsthat are pink, white and blue.)

虽然原文是“红色”,但这样的颜色搭配也很不错。因此我们可以看到GPT-2并不是仅仅会简单的记忆。

GPT-2是如何知道此处应该填上一种颜色的呢?也许是因为下列注意力模式识别了逗号分隔开的两个单词所属的类别。

AI小说家不是人!语言模型竟能续写《红楼梦》?

为了判断“和”(and)后面填写什么单词,GPT-2关注了这个类别的前两个单词——粉色和白色(pink,white),然后它便知道应该选择一个与前两个单词类型一致的单词,在这里就是颜色。

关于名字GPT-2又能写出什么呢?

GPT-2似乎特别擅长仅仅根据一个名字来撰写简短的传记。

AI小说家不是人!语言模型竟能续写《红楼梦》?

让GPT-2根据提示“谁是...(你的名字)?”(Who is <your name>?)来生成文本是一项非常有趣的训练。这个提示一般会激发GPT-2撰写一篇简短的传记,可能是因为网页上文章的开头通常是作者的简介。

下面是一些GPT-2根据提示“谁是杰西维格?”(Who is Jesse Vig?)生成的自传。

“杰西维格是社交媒体营销专家和前社交媒体营销经理。他是VigMedia.com的联合创始人兼首席执行官,最近担任VigMedia.com的创始人兼首席执行官。”(Jesse Vig is a social mediamarketing expert and former social media marketing manager. He is theco-founder and CEO of VigMedia.com and recently the founder and CEO ofVigMedia.com)

写得不错!虽然在内容上有一些重复,但是故事很有个性,让人惊喜。下面是另一个创作:

“杰西维格是福音传教士詹姆斯维格的儿子。他于1964年移居美国,并成为密歇根大学的传教士,在密歇根大学执教18年,在2007年10月去世。”

(Jesse Vig is the son of anevangelical preacher named James Vig. He moved to the United States in 1964 andbecame a preacher at the University of Michigan, where he taught for 18 yearsuntil his death in October 2007.)

在这个例子上,GPT-2非常聪明,知道父亲和儿子姓氏相同。让我们看看在选择姓氏的时候,GPT-2的关注点在哪里:

AI小说家不是人!语言模型竟能续写《红楼梦》?

第11层/10中心

在判断詹姆斯(James)后面的单词时,该模式将注意力放在前面提到的“我”的姓氏上。(要注意的是,在这个模型中,维格的英文单词Vig被分解为“V”和“ig”,因为这个单词并不常见。)这种注意力模式似乎专门用于识别家庭姓名之间的关系。为了验证这一点,让我们稍稍改动一下文本:

“杰西维格是福音传教士詹姆斯的同事。”(Jesse Vig is the colleagueof an evangelical preacher named James…)

AI小说家不是人!语言模型竟能续写《红楼梦》?

第11层/10中心

现在由于詹姆士只是一名同事,该注意力模型就几乎忽略“我”的姓氏。

GPT-2似乎是根据从名字中感知种族和性别的信息以生成传记。我们需要进一步研究来查明这种模型内部是否存在偏见。

AI小说家不是人!语言模型竟能续写《红楼梦》?

未来是具有生成性的

就在去年,语言模型生成各种内容的能力已经大大提升,包括图像、视频、音频和文本,以至于我们无法相信自己的感觉来判断真假,而这仅仅是开始;这些技术会继续发展并相互融合。很快,当我们在thispersondoesnotexist.com上盯着那些生成出来的面孔时,他们会看着我们,讲述他们是如何被生成出来的,展现他们奇怪的“人造”个性。

大概最直接的危险就是混淆真实的事物与生成的事物。我们已经看过像人工智能生成的奥巴马和史蒂夫·布西密与詹妮弗·劳伦斯的结合体一类的视频。很快,这些深度换脸(deepfakes)技术会进入我们的个人生活。

因此,当你的妈妈打电话给你说她需要500美元汇到开曼群岛的时候,你得问问自己:这真的是我妈妈吗?还是只是一个语言生成人工智能程序借助我妈妈五年前在Facebook上发的视频所生成出来的虚拟人声呢?

未来已来。

AI小说家不是人!语言模型竟能续写《红楼梦》?

相关推荐