作者 | 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
<https://edu.csdn.net/topic/ai30?utm_source=csdn_bw>



 热 文 推 荐 

☞华为的前半生
<http://mp.weixin.qq.com/s?__biz=MjM5MjAwODM4MA==&mid=2650721944&idx=1&sn=39d67e921b4eabcdcdd71fa2c440d022&chksm=bea6bf4b89d1365d05670eccefe1b5611f55c4cab5e3e0d89f6084eafe36b71126d0274c245d&scene=21#wechat_redirect>

百度只能靠 AI 续命了? <https://blog.csdn.net/csdnnews/article/details/91349585>

@程序员,2019 年软件开发新趋势必知! <https://blog.csdn.net/csdnnews/article/details/91349589>

代码有温度 科技需向善 <https://blog.csdn.net/csdnnews/article/details/90990948>

☞惊!为拯救美国落伍的 STEM 教育,纷纷出手教老师编程?!
<http://mp.weixin.qq.com/s?__biz=Mzg3MDA4NDkxMQ==&mid=2247484023&idx=1&sn=1cb50696badd0fd4431305591aca8826&chksm=ce927a37f9e5f321c8bccc5f4624f1b3c0f1eaf8625a52b0788d40cd265580d247da298c4186&scene=21#wechat_redirect>

高考倒数 2 天!程序员惊现最燃表白! <https://blog.csdn.net/csdnsevenn/article/details/90984750>

被5月GitHub Top20榜单惊呆了! 原来区块链大佬都在做这个...
<https://blog.csdn.net/Blockchain_lemon/article/details/90994554>

边缘计算将吞掉云计算! <https://blog.csdn.net/FL63Zv9Zou86950w/article/details/90898532>

B站超全分享!2万人收藏的免费计算机科学速成课
<https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/90815792>

谷歌开源张量网络库TensorNetwork,GPU处理提升100倍!
<https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/90981925>

☞“是!互联网从此没有 BAT!”
<http://mp.weixin.qq.com/s?__biz=MzA5MjcxNjc2Ng==&mid=2650560116&idx=1&sn=f9e86fa3e7b15624177b29ef1a785be4&chksm=88601dc5bf1794d30fd595d413491da189584b44fd2b2e5e40c665e58760e162616585811647&scene=21#wechat_redirect>

你点的每个“在看”,我都认真当成了喜欢

友情链接
ioDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信