作者 | Chintan Trivedi
译者 | 刘畅,责编 | Jane
出品 | AI科技大本营(ID:rgznai100)
前言
《权力的游戏》结局烂尾?
《权力的游戏》第八季崩盘,在一片“烂尾结局”的评价声中落下了帷幕。采访身边很多剧迷的观后感,一位同事给的评价只有一句话:“书是一本好书”。
近日,国外,Medium 平台一位作者也分享了他的感受:
“权力的游戏”第8季的故事情节,因为其匆忙而不尽如人意的结局,让数百万名粉丝(包括作者)十分失望。大部分人都在呼吁重写该剧的最后一季,而其他人为了让自己舒心,则想出他们自己版本的结局。大家都在等待GRRM完成他的书,希望他能塑造一个更令人难以置信的角色,但这可能需要很多年。
作为一名技术人,任何问题都会忍不住想一下:技术能不能搞一下?
如果让 AI 学习 GRRM 的写作风格,然后写一个结局如何?
AI 能写得更好吗?
随后,作者便用年初 OpenAI 提出的 GPT-2 文本生成模型实践操作了一波。模型学习的是《冰与火之歌》(A Song of Ice and Fire)原著,输出三大反派人物(the Night King, Cersei Lannister and Daenerys Targaryen)的结局。
接下来的内容,我们会先简单一下 GPT-2,详细的介绍可以参考我们以前给大家推送的文章;然后介绍一下作者训练模型的方法;最后根据模型生成结果进行总结与反思。文章没有涉及非常详细的技术细节,而是从方法上帮助大家整体把握,后续无论是增加数据集,还是结合自己需求做调整,思路都可以借鉴,对技术细节没有进行详细说明。
GPT-2(生成预训练的迁移模型)
在现有的 AI 语言模型中,GPT-2 是一种达到了 SOTA 效果的文本生成模型。他能生成类似人类语言的连贯性语句,并且可以长期关注某个主题。 相比于其他语言模型,GPT-2 两个较大改进在于:
大量数据:研究人员抓取了 800 万个网页,制作了一个 40GB 的文本语料库,用于进行无监督的训练。它涵盖了各种各样的主题,这就是为什么预先训练的模型非常适合迁移到特定领域,比如这次我们用到的原著 GoT。
大量计算:Transformer 模型结构中使用了 15 亿个参数。不过,出于安全考虑,他们发布了仅包含 3.45 亿个参数的较小版本。这次的模型也是使用这个版本。
迁移模型
GPT-2 使用的是 Transformer 网络架构,而不是序列建模传统模型 RNN、LSTM 等网络。不同之处在于 Transformer 使用基于注意力机制的解码/编码器,而不是拥有'memory'门和时间步长的循环单元。
编码器利用字节对和位置嵌入处理输入,其中位置嵌入描述的是输入句子中“嵌入的单词”和“在何处嵌入”。相同的编码器将字节和位置嵌入转换为矢量编码,然后将该矢量编码输入解码器,解码器的任务是将编码转换为目标文本序列。 该输出和来自前一步骤的编码被馈送到下一个编码- 解码步骤,并且重复多次,以产生更好的文本序列。
下面的链接文章详细的解释了这个模型架构:
https://blog.floydhub.com/the-transformer-in-pytorch/
而 GPT-2 就可以经过训练,预测给定输入句子中的下一个单词。如果模型可以相当准确地预测下一个单词,那么模型可能具备理解输入单词上下文含义的能力。如果不理解文本,语言模型只能预测符合语法规则的单词,而生成的文本可能不会符合语义规则。不同于机器翻译任务中的 seq2seq 模型,GPT-2 仅使用预训练模型 Transformer 中的解码器来生成后续文本,在文本生成期间并不需要编码器。
训练模型
数据:作者从《冰与火之歌》的 5 本书中摘录,组合文本数据用于训练。
模型:预训练 GPT-2 模型包含 345M 参数。
时间:该模型在 Google Colab 的 K80 GPU 上训练了大约12个小时。
在训练过程中,作者意外发现,预训练模型很擅长撰写《权利的游戏》里的角色特征,可能与在初始训练期已经接触过这些内容有关。想让模型撰写的内容更贴近 GRRM 的风格,需要继续利用 GoT 数据集。
结果与分析
先在原剧结局中,找出一些令大家感到失望的情节,然后再尝试用训练好的 GPT-2 模型生成结果,详细结果大家可以看下面的视频介绍,后面会对一些文本输出做部分介绍。
以下是视频格式的输出,后面是相同的文本输出。
https://youtu.be/_vSov4sldsQ
下面分析一下选取的 3 个场景
失望场景 1:重写 Night King 虎头蛇尾的结局
根据 GPT-2,Hodor还活着并赶来救营 Bran,这真是一个转折点! 或者可能是 Hodor的灵魂进入了 Bran 的身体。不过之后,也不知道这个模型想说些什么。
Lightbringer 是杀死 Night King的剑。如果 Night King 的冰剑原来是 Lightbringer 并且最终会杀死他,那会有多酷?!
就算编剧忘了,不过 GPT-2 还记得关于 Azor Ahai 的预言,还围绕 Lightbringer 做了不少展开。
这里有个地方很有意思,不是因为故事写得精彩,而是因为模型居然知道 the dragon 实际上是“Other”(也就是书中的 White Walker)。将所有这些细节正确地放在一个段落中,真的太奇妙了。神奇的是,这个模型已经完全了解有关人物的这些细节!
失望场景 2:Cersei Lannister 在没有任何计划或适当的战斗的情况下倒下
嗯,好吧,这个生成的剧本完全是垃圾。 但作者还是保留了它,然后再试了一次!
这次稍微好一些! 虽然模型输出的某些细节错了,特别是关于 Mad King,但”Jaime试图在那一刻给予 Cersei 力量的想法“还挺不错的。 也许在这个时候使用某种野路子会给她的故事情节带来一些正义感。 两个疯狂的女王,激烈战斗,毁坏城市的剩余部分。 这也不失为一个更好的结局,表明为什么 Iron Throne 的战争是不好的。
失望场景 3:Daenerys 急速转弯的结局
总是吃喝的好时光?我听说 King's Landing 有一家很好的咖啡店,Dany 可以尝试(如果它还没有被烧掉)
这段真是挺垃圾的,让我们再试一次。
这段也没有多大意义。两次下来,似乎模型坚持 Dany 想要将 King's Landing 的人们从暴君手中解放出来。
总结
虽然尝试为这些故事情节生成更多的样本,但没有哪个能在故事背景下讲得通。尽管生成的故事文本不够好,不过也能看出来模型清晰地描述了角色特征和技能。,并且在模型输出结果中也体现了彼此之间的关联。此外,作者认为 OpenAI 提出的 GPT-2 研究工作,也体现了近来 NLP 领域取得的一些进展。
同时,我们和作者一样,都很好奇在最大的 GPT-2 模型上训练会取得怎样的结果?毕竟模型训练数据也不是十分充分,感兴趣的小伙伴们可以把原著所有的文本数据加入到最大的 GPT-2 模型训练中,看看是有更多惊喜还是惊吓?
而无论是编剧的结局,还是 AI 改写的结局,其实大家心目中的 Perfect Ending 还是要等 GRRM 赶快写完他的书。
【End】
6月29-30日,2019以太坊技术及应用大会特邀以太坊创始人V神与以太坊基金会核心成员,以及海内外知名专家齐聚北京,聚焦前沿技术,把握时代机遇,深耕行业应用,共话以太坊2.0新生态。扫码,即享优惠购票!
人工智能学习路线+实战训练
https://edu.csdn.net/topic/ai30?utm_source=csdn_bw
热 文 推 荐
☞华为的前半生
百度只能靠 AI 续命了?
@程序员,2019 年软件开发新趋势必知!
代码有温度 科技需向善
☞惊!为拯救美国落伍的 STEM 教育,纷纷出手教老师编程?!
高考倒数 2 天!程序员惊现最燃表白!
被5月GitHub Top20榜单惊呆了! 原来区块链大佬都在做这个...
边缘计算将吞掉云计算!
B站超全分享!2万人收藏的免费计算机科学速成课
谷歌开源张量网络库TensorNetwork,GPU处理提升100倍!
☞“是!互联网从此没有 BAT!”
你点的每个“在看”,我都认真当成了喜欢