理科生文藝起來,可能真沒文科生什么事了。
不信?你看下這首七言絕句:
有網(wǎng)友讀完之后表示:
真????啊,押韻,意境,內(nèi)涵都很贊。
不僅能夠?qū)懺姡€能作詞,比如這首滿江紅:
而且,還能寫藏頭詩:
你能想象,這是完全不懂寫詩的理工生的杰作嗎?
但它就是。
這些詩來自華為諾亞方舟實驗室新推出的寫詩AI“樂府”。
問世之處便引發(fā)了不少關(guān)注。
對于它的作品,有人稱贊:
蘊(yùn)意豐富的詩,工整不乏意趣,程序做的實在牛逼,給開發(fā)人員點贊
還有人“搞事情”,表示:
一聲塞雁江南去,幾處家書海北連。莫道征鴻無淚落,年年辛苦到燕然。要說這個 AI 寫的沒有北大中文系平均水平好我是不信的。
甚至有人說“李白看了會沉默,杜甫看了會流淚”。
當(dāng)然,也有人指出問題:
很工整,不過感覺目前大多還是syntax層面的,沒有到semantics層面。稍微欠缺些靈魂。
也有“真相帝”出來發(fā)聲:
辛棄疾的流水散文式用典,老杜的沉郁頓挫拗救法,都是AI比較難學(xué)會的。問題不是AI太厲害,而是讀者已經(jīng)看不出格律詩里面比較精密的手法了…
對于這些問題,華為諾亞方舟實驗室語音語義首席科學(xué)家劉群也在微博進(jìn)行了答疑,披露了不少這只AI背后的故事:
其實我們也不懂詩,我們也沒有用詩的規(guī)矩去訓(xùn)練這個系統(tǒng),完全是系統(tǒng)自己學(xué)到的。
那么,這一AI到底是如何學(xué)的?論文已經(jīng)公布。
與自由生成文本不同,生成中國的古詩詞是一個挑戰(zhàn),通常需要滿足形式和內(nèi)容兩個方面的要求。
中國的古詩詞有各種各樣的形式,比如五絕、七絕、五律、七律、滿江紅、西江月、水調(diào)歌頭等各種詞牌以及對聯(lián),每一種都有相應(yīng)的字?jǐn)?shù)、押韻、平仄、對仗等規(guī)定;
內(nèi)容方面雖然簡單,但要求更加難以琢磨:一首詩要圍繞著一個主題展開,內(nèi)容上還要具有連貫性。
華為提出的“樂府”系統(tǒng),與當(dāng)前大多數(shù)解決方案不同,不需要任何人工設(shè)定規(guī)則或者特性,也沒有設(shè)計任何額外的神經(jīng)元組件。
整個研究中,需要做的就是把訓(xùn)練用的詩詞序列化為格式化的文本序列,作為訓(xùn)練數(shù)據(jù)。
然后通過對語言模型token的抽樣,生成滿足形式和內(nèi)容要求的詩詞,比如絕句、律詩、詞,以及對聯(lián)等等。
而且,他們還提出并實現(xiàn)了一種對模型進(jìn)行微調(diào)以生成藏頭詩的方法。
這背后的能量來自GPT,一個由OpenAI提出的預(yù)訓(xùn)練自然語言模型,核心理念是先用無標(biāo)簽的文本去訓(xùn)練生成語言模型,然后再根據(jù)具體的任務(wù)通過有標(biāo)簽的數(shù)據(jù)對模型進(jìn)行微調(diào)。
樂府AI是首個基于GPT打造的作詩系統(tǒng),而且與谷歌提出的BERT息息相關(guān)。
整體的GPT模型是在BERT的源代碼基礎(chǔ)上實現(xiàn)的,Transformer大小的配置與BERT-Base相同,也采用了BERT中發(fā)布的tokenization 腳本和中文 vocab。
具體來說,訓(xùn)練詩歌生成模型的過程如下:
整個模型訓(xùn)練過程一共有兩個階段: 預(yù)訓(xùn)練和微調(diào)。
華為的這個GPT模型,是用一個中文新聞?wù)Z料庫進(jìn)行預(yù)訓(xùn)練的,然后通過收集了公開可得的中國古詩詞進(jìn)行微調(diào)。
如上圖所示,首先將示例詩歌轉(zhuǎn)換為格式化序列。序列包括三個主要部分:格式、主題和詩體,中間用標(biāo)識符分開。
在對聯(lián)中,因為沒有主題,就上句為主題,第二行為正文。所以,在生成對聯(lián)的時候,就成了給出上聯(lián),生成下聯(lián)的模式,也符合了“對對子”的習(xí)慣。
整體的數(shù)據(jù)集規(guī)模并不小,預(yù)訓(xùn)練用的中文新聞?wù)Z料庫,有2.35億句子。微調(diào)用的數(shù)據(jù)集有25萬絕句和律師,2萬首詞以及70萬對對聯(lián)。
預(yù)訓(xùn)練是在華為云上完成的,使用8塊英偉達(dá)V100(16G) GPU訓(xùn)練了4個echo,一共耗費了90個小時。
微調(diào)的過程是將所有詩歌序列輸入Transformer,并訓(xùn)練一個自回歸語言模型。目標(biāo)是觀測任何序列的概率最大化:
微調(diào)的過程,不需要特別長的時間,如果訓(xùn)練過長,這個模型就在生成過程中,就會傾向于從語料庫中直接用原始句子了。
訓(xùn)練完成后,先將要生成的詩歌的格式和主題轉(zhuǎn)化為一個初始序列,然后將初始序列輸入到模型中,然后對詩體部分的剩余字段按token進(jìn)行解碼。
在解碼過程中,并不使用硬約束來保證格式的正確性,而是讓模型自動為特定位置分配逗號和句號,在識別到token為“EOS”的時候,解碼過程結(jié)束。
而且,采用截斷 top-k 抽樣策略來獲得不同的詩歌,而不是束搜索。具體是每次采樣一個Token時,首先選擇具有 top-k 最大概率的Token,然后從 top-k Token中采樣一個特定的token。
他們說,即使采用截短的 top-k 抽樣策略,生成的詩歌仍然是正確的形式。
論文中介紹稱,訓(xùn)練藏頭詩的方法也是這樣,只是在格式化序列的時候方法有所不同:用每一行中第一個字符的組合來代替一首詩的原始主題:“五言絕句(格式)床疑舉低(藏頭詩)床前明月光,疑…月,低頭思故鄉(xiāng)?!?/p>
效果如何,華為也在論文中進(jìn)行了充分的展示,比如下面這四首“江上田家”,只有一首是唐朝詩人寫的,其他三首都是來自樂府AI。
從上到下,ABCD,你能辨別出來哪個是真跡嗎?(答案在文末揭曉)
中國古詩詞生成AI,華為“樂府”并不是第一個,也不是最后一個。
在此之前,就有清華大學(xué)孫茂松團(tuán)隊提出的“九歌”。
根據(jù)官方介紹,這一系統(tǒng)的采用深度學(xué)習(xí)技術(shù),結(jié)合多個為詩歌生成專門設(shè)計的模型,基于超過80萬首人類詩人創(chuàng)作的詩歌進(jìn)行訓(xùn)練學(xué)習(xí),具有多模態(tài)輸入、多體裁多風(fēng)格、人機(jī)交互創(chuàng)作模式等特點。
近日,也有人基于中文版的語料訓(xùn)練出了中文版的GPT-2,并將其用于詩歌生成。
就在“樂府”上線的這一天,還有北京大學(xué)、國防科大等機(jī)構(gòu)聯(lián)合發(fā)布了新的作詩模型,基于無監(jiān)督機(jī)器翻譯的方法,使用基于分段的填充和強(qiáng)化學(xué)習(xí)根據(jù)白話文生成七言律詩。
那么,哪一個更強(qiáng)呢?
因為中文版GPT-2和北京大學(xué)聯(lián)隊的系統(tǒng)還沒有開放體驗,參與這場“華山論劍”的就只有華為“樂府”和清華“九歌”兩個選手。
第一輪:主題“夏日”,七言絕句
清華九歌賦詩一首:
華為樂府賦詩是這樣的:
兩個AI都有瑕疵的地方,清華九歌一張嘴就開始說“秋來”,華為樂府也提到了“四月”,并沒有特別的意思,顯然都與夏日有些出入。
但相比之下,華為樂府的夏日元素也更多一些,比如荷香,夏陰等等。
第二輪:主題“長夜”,五言絕句
來自清華九歌的詩是這樣的:
不須愁獨坐,相對倍凄然?這個意境Emmm……婚姻要破裂了?
華為樂府的作品:
直觀上來看,意境刻畫不錯,但沖擊力有所不足。
這一輪,兩個AI表現(xiàn)都不錯,而且都有相應(yīng)的意境體現(xiàn)出來。相對來說, 清華九歌的情感層次更豐富一些。
第三輪,藏頭詩“神經(jīng)網(wǎng)絡(luò)”,七言絕句
清華九歌作品是這樣的:
從押韻和意境來看,都還不錯。華為樂府給出了這樣一首詩:
同樣,這首藏頭詩也能夠展現(xiàn)幾分意境。
這一輪,兩只AI都能較確切地完成任務(wù),給出了具有幾分意境的詩詞。
至此,經(jīng)過三輪比拼,整體上來說,高下難分。其差別,在于雙方的實現(xiàn)方式。
清華九歌,基于多個為詩歌生成專門設(shè)計的模型,相對來說比較復(fù)雜,在詩歌的格式上,控制比較嚴(yán)格,雖然嚴(yán)肅但作詩速度的確比較慢。
而華為的樂府,只是基于GPT,按照劉群的話來說,他們也不懂詩歌,并沒有用詩的規(guī)矩去訓(xùn)練這個系統(tǒng),完全是系統(tǒng)自己學(xué)到的,生成詩歌的時候速度很快。
對于樂府AI生成的詩歌水平,劉群也頗為謙虛:
我們找過懂詩的人看,說韻律平仄并不完全符合規(guī)矩,只是外行讀起來還比較順口而已。
至于兩種方式孰優(yōu)孰劣,也不妨參考下那句老話:文無第一。
華為諾亞方舟實驗室成立于2012年,隸屬于華為2012實驗室。
諾亞方舟為名,也能體現(xiàn)出這一實驗室在華為內(nèi)部的重要性。此前,任正非也提到過,希望這些實驗室能夠成為華為的“諾亞方舟”。
目前,這一實驗室在深圳、香港、北京、上海、西安、北美和歐洲等城市設(shè)有分部。研究方向包括計算機(jī)視覺、自然語言處理、搜索推薦、決策推理、人機(jī)交互、AI理論、高速計算等。
關(guān)于樂府AI,華為也在論文中標(biāo)注說明,這是他們在研究GPT時的一個副產(chǎn)品。目前,華為樂府AI已經(jīng)在小程序EI體驗空間上線。
支持五言絕句、七言絕句、五言律詩和七言律詩,以及藏頭詩模式。作詞、對對子還沒有上線。
最后,附上一首樂府生成的七言律詩人工智能。
? ? ? ?
對了,答案選C。
相關(guān)傳送門:
樂府AI論文
GPT-based Generation for Classical Chinese Poetry
https://arxiv.org/pdf/1907.00151.pdf
清華九歌作詩網(wǎng)站:
http://118.190.162.99:8080/
— 完 —