• 1
  • 2
  • 3
  • 4

首页 / 行业

权游结局烂尾,AI 能写得更好吗?

2019-06-10 09:08:00

权游结局烂尾,AI 能写得更好吗?

《权力的游戏》结局烂尾?

《权力的游戏》第八季崩盘,在一片“烂尾结局”的评价声中落下了帷幕。采访身边很多剧迷的观后感,一位同事给的评价只有一句话:“书是一本好书”。

近日,国外,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'门和时间步长的循环单元。

编码器利用字节对和位置嵌入处理输入,其中位置嵌入描述的是输入句子中“嵌入的单词”和“在何处嵌入”。相同的编码器将字节和位置嵌入转换为矢量编码,然后将该矢量编码输入解码器,解码器的任务是将编码转换为目标文本序列。 该输出和来自前一步骤的编码被馈送到下一个编码- 解码步骤,并且重复多次,以产生更好的文本序列。

而 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 赶快写完他的书。

好吗写得结局都在

  • 1
  • 2
  • 3
  • 4

最新内容

手机

相关内容