站长之家
站长之家
2019-09-09 08:43
+关注

华为推出AI诗人“乐府”:唐诗宋词都不在话下

华为 AI诗人 华为乐府

声明:本文来自于微信公众号 本文来源于微信公众号量子位(ID:QbitAI),作者:乾明,授权站长之家转载发布。

理科生文艺起来,可能真没文科生什么事了。

不信?你看下这首七言绝句:

华为 AI诗人 华为乐府

有网友读完之后表示:

真啊,押韵,意境,内涵都很赞。

不仅能够写诗,还能作词,比如这首满江红:

华为 AI诗人 华为乐府

而且,还能写藏头诗:

华为 AI诗人 华为乐府

你能想象,这是完全不懂写诗的理工生的杰作吗?

但它就是。

这些诗来自华为诺亚方舟实验室新推出的写诗AI“乐府”。

问世之处便引发了不少关注。

对于它的作品,有人称赞:

蕴意丰富的诗,工整不乏意趣,程序做的实在牛逼,给开发人员点赞

还有人“搞事情”,表示:

一声塞雁江南去,几处家书海北连。莫道征鸿无泪落,年年辛苦到燕然。要说这个 AI 写的没有北大中文系平均水平好我是不信的。

华为 AI诗人 华为乐府

甚至有人说“李白看了会沉默,杜甫看了会流泪”。

华为 AI诗人 华为乐府

当然,也有人指出问题:

很工整,不过感觉目前大多还是syntax层面的,没有到semantics层面。稍微欠缺些灵魂。

也有“真相帝”出来发声:

辛弃疾的流水散文式用典,老杜的沉郁顿挫拗救法,都是AI比较难学会的。问题不是AI太厉害,而是读者已经看不出格律诗里面比较精密的手法了…

华为 AI诗人 华为乐府

对于这些问题,华为诺亚方舟实验室语音语义首席科学家刘群也在微博进行了答疑,披露了不少这只AI背后的故事:

其实我们也不懂诗,我们也没有用诗的规矩去训练这个系统,完全是系统自己学到的。

那么,这一AI到底是如何学的?论文已经公布。

华为 AI诗人 华为乐府

理工男の文艺源自GPT

与自由生成文本不同,生成中国的古诗词是一个挑战,通常需要满足形式和内容两个方面的要求。

中国的古诗词有各种各样的形式,比如五绝、七绝、五律、七律、满江红、西江月、水调歌头等各种词牌以及对联,每一种都有相应的字数、押韵、平仄、对仗等规定;

内容方面虽然简单,但要求更加难以琢磨:一首诗要围绕着一个主题展开,内容上还要具有连贯性。

华为提出的“乐府”系统,与当前大多数解决方案不同,不需要任何人工设定规则或者特性,也没有设计任何额外的神经元组件。

华为 AI诗人 华为乐府

整个研究中,需要做的就是把训练用的诗词序列化为格式化的文本序列,作为训练数据。

然后通过对语言模型token的抽样,生成满足形式和内容要求的诗词,比如绝句、律诗、词,以及对联等等。

而且,他们还提出并实现了一种对模型进行微调以生成藏头诗的方法。

这背后的能量来自GPT,一个由OpenAI提出的预训练自然语言模型,核心理念是先用无标签的文本去训练生成语言模型,然后再根据具体的任务通过有标签的数据对模型进行微调。

乐府AI是首个基于GPT打造的作诗系统,而且与谷歌提出的BERT息息相关。

整体的GPT模型是在BERT的源代码基础上实现的,Transformer大小的配置与BERT-Base相同,也采用了BERT中发布的tokenization 脚本和中文 vocab。

具体来说,训练诗歌生成模型的过程如下:

华为 AI诗人 华为乐府

整个模型训练过程一共有两个阶段: 预训练和微调。

华为的这个GPT模型,是用一个中文新闻语料库进行预训练的,然后通过收集了公开可得的中国古诗词进行微调。

如上图所示,首先将示例诗歌转换为格式化序列。序列包括三个主要部分:格式、主题和诗体,中间用标识符分开。

在对联中,因为没有主题,就上句为主题,第二行为正文。所以,在生成对联的时候,就成了给出上联,生成下联的模式,也符合了“对对子”的习惯。

华为 AI诗人 华为乐府

整体的数据集规模并不小,预训练用的中文新闻语料库,有2. 35 亿句子。微调用的数据集有 25 万绝句和律师, 2 万首词以及 70 万对对联。

预训练是在华为云上完成的,使用 8 块英伟达V100(16G) GPU训练了 4 个echo,一共耗费了 90 个小时。

微调的过程是将所有诗歌序列输入Transformer,并训练一个自回归语言模型。目标是观测任何序列的概率最大化:

华为 AI诗人 华为乐府

微调的过程,不需要特别长的时间,如果训练过长,这个模型就在生成过程中,就会倾向于从语料库中直接用原始句子了。

训练完成后,先将要生成的诗歌的格式和主题转化为一个初始序列,然后将初始序列输入到模型中,然后对诗体部分的剩余字段按token进行解码。

在解码过程中,并不使用硬约束来保证格式的正确性,而是让模型自动为特定位置分配逗号和句号,在识别到token为“EOS”的时候,解码过程结束。

而且,采用截断 top-k 抽样策略来获得不同的诗歌,而不是束搜索。具体是每次采样一个Token时,首先选择具有 top-k 最大概率的Token,然后从 top-k Token中采样一个特定的token。

他们说,即使采用截短的 top-k 抽样策略,生成的诗歌仍然是正确的形式。

免责声明:本文来自站长之家合作媒体,不代表站长之家的观点和立场。
华为
17779篇文章
查看
猜你喜欢
最新趣闻
最新推荐