查看原文
其他

中秋佳节,用 AI 为家人定制一首诗

神经小兮 HyperAI超神经 2019-12-25

By 超神经


场景描述:也许每个人心中都有一个诗人梦,希望自己能够像古代文人墨客一样用精炼的诗句抒情达意。比如,在中秋佳节,为亲朋好友作诗一首送上祝福。但无奈作诗并不是想象中那么简单。不过,人工智能技术已经能够圆你的诗人梦了,华为诺亚方舟实验室最新推出的「乐府 AI」,只要给出主题,就能在几秒内生成一首诗。快来作诗吧!


关键词:AI 作诗  NLP GPT


作者:神经小兮编辑:神经星星


中秋节即将来临,这个团圆赏月的节日,激发了古今无数文人的情怀,留下了诸多隽永的诗句。


面对中秋花好月圆的良辰美景,古人能够吟出「海上生明月,天涯共此时的绝美诗句,而现在大多数人却只能无奈地,将无限感慨化为一句「啊,月亮好圆。


这大概就是「落霞与孤鹜齐飞,秋水共长天一色」和「好大一只鸟」之间的距离吧。


不过,不用难过,现在,AI 可以帮我们跨越这个距离,每个人都能轻松吟诗作对,成为诗人!


华为推出「乐府作诗」小程序


近日,华为 EI 体验空间小程序上线了一个新功能——乐府作诗。只要给出主题,选定字数与体裁(绝句或律诗),就能瞬间作出一首诗。


比如,输入「中秋」:

「赏月」:

「机器学习」:
「人工智能」:


如果不告诉你,你能看出这些诗是 AI  所写吗?


今年 6 月,华为诺亚方舟实验室就发表了论文《GPT-based Generation for Classical Chinese Poetry》,详细介绍了该模型的训练过程以及成果展示。
总的来说,这个诗歌生成模型背后的关键技术,在于强大的 GPT 模型。
GPT 是 OpenAI 提出的预训练自然语言模型,核心理念是先用无标签的文本去训练生成语言模型,然后再根据具体的任务通过有标签的数据对模型进行微调。


团队先用大规模中文新闻语料,训练出了中文 GPT 模型。然后用中国古典诗歌作为语料库,对其进行了微调,就得到了诗歌生成系统——乐府 AI。
除了绝句和律诗,诺亚方舟团队还用微调的方法训练它学会生成藏头诗


而且,为了让 AI 能够学习自己写诗,这个 GPT 模型没有进行任何设定,作诗所需要的字数、韵律、平仄、对仗知识,都没有设定,模型全靠自己从古诗数据中学会了这些。
和「乐府 AI」相比,学了多年语文,却依然写不出一句像样的诗的人类,真要自叹弗如了。


细数 AI 学作诗的历程


中国古典诗歌的生成,是自然语言生成领域中一个有趣的挑战。
与自由文本生成不同,中国古典诗歌在形式和内容上通常要满足一定的要求。比如字数、押韵、平仄以及对仗等。此外,内容上也要求整首诗的主题是一致且连贯的。
苏轼的《水调歌头》朗朗上口如今还被谱成歌曲传唱


此外,中国古典诗歌有很多形式,五言绝句、律诗,七言绝句、律诗,以及词牌如满江红、水调歌头等,还有对联。


因此,要用人工智能的方法产生中国古典诗歌是比较复杂的。华为诺亚方舟实验室的科学家,通过研究给定形式和特定主题的诗歌生成问题,提出了基于预训练模型 GPT 的诗歌生成方法。
方法具体细节为:「乐府 AI」以 Transfomer 为基础模型,基于 BERT 源代码,实现了自己的 GPT 模型。其 Transformer 大小的配置与 BERT-Base 相同,还采用了 BERT 中发布的标记化脚本和中文词汇。对于文本生成,他们实现了截断的 top-k 采样来生成不同的文本。
三首「乐府 AI」生成的诗歌,与一首诗歌真迹
总的来说,「乐府 AI」学作诗一共分为以下三个阶段:


第一阶段:数据处理


华为诺亚方舟实验室的 GPT 模型,以中文新闻语料库进行训练,数据训练主要分为预培训和微调两个阶段。为了进行微调,他们收集了公开的中国古典诗歌,然后将样本诗转换为格式化的序列。
数据训练过程


第二阶段:模型训练


接着,他们在云服务上预训练了其 GPT 模型,包含一个新闻语料库,这一过程花费了 90 个小时。然后用 8 个 NVIDIA V100(16 GB)训练了 4 个阶段。


训练完成后,进行微调,将所有诗歌训练序列输入 transformer,并训练自动回归语言模型,以观察任何序列的概率最大化 X:


第三阶段:诗歌生成


训练完成后,便应用该模型,根据要求生成特定主题的诗歌。


他们首先将形式和主题转换为[形式,标识符 1,主题,标识符 2 ]的初始序列,然后将初始序列给到模型,并对主体字段逐个进行解码。


在解码过程中,并不需要硬约束来保证形式的正确性。相反,该模型能够在解码时,自动分配逗号和句号的位置。当完成诗歌的生成时,会以「EOS」的 token 来结束这一过程。


「乐府 AI」不仅学会了作诗,还掌握了一个新技能——藏头诗。


对于藏头诗,他们依然采用同样的方法来训练。只不过,训练藏头诗模型时,他们将之前训练过程中的主题(如「静夜思」),用该诗歌的每句首字来替换(如「床疑举低」)。


 

AI 诗人带来的惊喜


通过该方法生成的结果,令团队感到惊讶。
他们发现模型学会了律诗的复杂配对规则,这一规则,即使对于母语为中文,并接受了正常教育的人来说,都很难掌握(相信很多同学也深有同感)。


在生成的绝句和律诗中,95% 以上都表现良好,不过在词牌方面稍有逊色。原因可能是,相对绝句和律诗来说,词牌的形式相对来说更加复杂,而且训练样本也远远不如前者多。


绝句和律诗都有成千上万的训练样本,而词牌只有 882 种,其中,只有 104 种的训练样本超过 100 个,即使是最大的样本,也仅包含 816 个。
系统根据「秋思」主题生成的各个体裁的诗歌


另外,在给定的主题中,通常生成结果都很好,但是对于某些主题,比如「机器翻译」,因为在训练语料库中很少出现,就不好生成诗歌。相反的,像「秋思」这类主题,就很容易生成。


团队介绍道,该方法比现有基于循环神经网络(RNN)的方法简单的多,并且可以产生更好的诗歌。

AI 学作诗,早已有之


有人说,中国是一个诗的国度。自古至今,文人墨客、文艺青年对于写诗都热情不减。而广大理工生,也不断用技术来表达其浪漫情怀。
2017 年 12 月,清华大学团队研发的诗歌机器人「九歌」亮相央视节目《机智过人》,作的诗给观众带来了巨大惊喜。


「九歌」就是基于深度学习,学习了超 80 万诗歌后学会了写诗。它具有多模态输入、多体裁多风格、人机交互创作模式等特点。


除了古诗,现代诗对于 AI 来说也似乎不在话下,比如微软小冰就出版过诗集,国外也有多种语言版本的 AI 诗歌生成工具。


AI 是真正会写诗,还是瞎凑?


AI 写诗,有人赞赏,有人批判。

微博网友对 AI 写诗的看法


上海诗词学会理事刘鲁宁曾表示,写诗拼速度,人类比不过电脑,但是自己用一天时间写的诗,电脑写一千首页比不过。理事邓婉莹也表示,AI 作诗的特点是「有诗无篇」。
相比起文人墨客,在文思泉涌之时的创作而言, AI 写的诗可以说是「没有感情的写手」,他们在大量的文字中,发现诗词的规律,并「拼凑」出完整但可能无意义的诗句。


但对于研究者们来说, AI 作诗更多是作为技术能力的展现,他们更看重 AI 作诗背后 NLP 技术的发展。
另外,对于普通人来说,AI 作诗工具也让每个人都可以去创作,用诗歌表达自己的感情,就是作为一个娱乐的工具,也是不错的。让我们也给 AI 一些时间,相信它会为这个世界带来更多惊喜。
—— 完 ——

扫描二维码,加入讨论群

获得更多优质数据集

回复「进群」自动入群

更多精彩内容(点击图片阅读)

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存