為了在8月25日這天給鋼鐵直男們助攻一個(gè)浪漫優(yōu)雅的七夕節(jié),飛槳的研發(fā)人員也是蠻拼的!為了給開發(fā)者謀福利,加班加點(diǎn)在PaddleHub上線了AI情話和情詩模型!
話不多說,咱們直接看效果!
AI情話實(shí)測(cè)效果展示
輸入:
你問我多喜歡你
生成
你問我多喜歡你,
我也說不出來,
我心里明白,
我寧愿跟你吵架也不愿意去愛別人。
哎媽呀,淚奔了,哭的不要不要的!
再試試,輸入:
你有打火機(jī)么?
生成:
你有打火機(jī)么? 沒有啊!那你怎么點(diǎn)燃我的心的?
效果炸裂,這還只是一個(gè)AI情話功能。
要是再整首詩寫在小卡片上,女神的心能瞬間化成一江春水向東流。。。
AI藏頭詩實(shí)測(cè)效果展示
輸入:
吾愛秋香
生成:
吾慕斯人不以官,
愛閑能有幾人閑。
秋來莫作功名看,
香滿南山雪滿山。
一戰(zhàn)深藏功與名!
目前演示頁限制是七言絕句,如果是需要其它的七言律詩、五言絕句和五言律詩,可以通過代碼調(diào)用,效果也是妥妥的!
是不是著急了?我仿佛看到一群大老爺們兒向我殺來。
我這就把鏈接交出來,大家快來我們PaddleHub官網(wǎng)上體驗(yàn)吧:
https://www.paddlepaddle.org.cn/hub/scene/aiwriting
這是怎么做到的?
這樣炸裂效果的背后,離不開頂尖的ERNIE-GEN 算法加持,什么?不知道ERNIE-GEN?ERNIE聽說過吧,NLP領(lǐng)域模型中的帶頭大哥,曾經(jīng)斬獲多項(xiàng)大獎(jiǎng)!后來經(jīng)過不斷研發(fā),ERNIE又衍生出了很多其它模型或組件,形成了ERNIE家族!ERNIE-GEN就是其中優(yōu)秀一員。
熱心的說明:下面是講技術(shù)的環(huán)節(jié),想了解怎么用的小伙伴可以快速往下滑
ERNIE-GEN是面向生成任務(wù)的預(yù)訓(xùn)練-微調(diào)框架,首次在預(yù)訓(xùn)練階段加入span-by-span 生成任務(wù),讓模型每次能夠生成一個(gè)語義完整的片段。在預(yù)訓(xùn)練和微調(diào)中通過填充式生成機(jī)制和噪聲感知機(jī)制來緩解曝光偏差問題。此外, ERNIE-GEN 采用多片段-多粒度目標(biāo)文本采樣策略, 增強(qiáng)源文本和目標(biāo)文本的關(guān)聯(lián)性,加強(qiáng)了編碼器和解碼器的交互。
更多詳情參考論文ERNIE-GEN:An Enhanced Multi-Flow Pre-training and Fine-tuning Framework for Natural Language Generation
這些由ERNIE-GEN算法衍生出的AI情話(ernie_gen_lover_words)、AI藏頭詩(ernie_gen_acrostic_poetry)等模型在微調(diào)時(shí)首先通過加載ERNIE 1.0中文模型參數(shù)完成熱啟動(dòng),然后采用開發(fā)者在網(wǎng)絡(luò)上搜集到的情詩、情話數(shù)據(jù),基于ERNIE-GEN框架進(jìn)行微調(diào)。與傳統(tǒng)的Seq2Seq做法相比,該模型實(shí)際使用效果具備更強(qiáng)的泛化能力,即使是微調(diào)使用的數(shù)據(jù)集中沒見過的詞匯或句子,模型也能夠理解。例如輸入“小編帶大家了解一下程序員情人節(jié)”,將會(huì)輸出:
實(shí)際上“程序員”“數(shù)據(jù)庫”這些詞是從未出現(xiàn)在情話數(shù)據(jù)集中的,但是得益于知識(shí)增強(qiáng)的語義表示模型ERNIE帶來的泛化能力,使模型仍然能夠領(lǐng)悟到二者之間的關(guān)系。同時(shí)ERNIE-GEN獨(dú)特的填充生成機(jī)制和噪聲感知生成的策略,使得微調(diào)后模型文本生成效果更加自然流暢,相比傳統(tǒng)的基于RNN結(jié)合Seq2Seq的生成做法,所需的訓(xùn)練數(shù)據(jù)量更小,而且文本生成效果更有內(nèi)涵。
正如模型輸出所言,希望在七夕這一天,我們的程序都能夠正常的工作,大家可以放心地過個(gè)愉快的情人節(jié)。
想知道怎么用嗎?
整個(gè)預(yù)訓(xùn)練模型只要求安裝PaddlePaddle 與 PaddleHub,諸位兄弟只需要了解基礎(chǔ) Python 就能跑得動(dòng)。
飛槳PaddleHub的開發(fā)者提供了AI情話、AI藏頭詩、AI對(duì)聯(lián)、AI寫詩四種文本生成的示例代碼,通過 Notebook 文件,我們能更形象地了解模型使用的完整過程。AI Studio項(xiàng)目地址如下:
https://aistudio.baidu.com/aistudio/projectdetail/746002
以下為調(diào)用AI情話預(yù)訓(xùn)練模型的代碼,
import paddlehub as hub
#導(dǎo)入預(yù)訓(xùn)練模型
module = hub.Module(name="ernie_gen_lover_words")
#準(zhǔn)備輸入開頭數(shù)據(jù)
test_texts = ['情人節(jié)']
#執(zhí)行文本生成
results = module.generate(texts=test_texts, use_gpu=True, beam_width=5)
#打印輸出結(jié)果
for result in results:
print(result)
運(yùn)行這個(gè)腳本后,我們就可以收貨了。
哎呀,甜度太高了,有點(diǎn)上頭
[2020-08-21 20:58:08,095] [ INFO] - Installing ernie_gen_lover_words module
[2020-08-21 20:58:08,097] [ INFO] - Module ernie_gen_lover_words already installed in /home/aistudio/.paddlehub/modules/ernie_gen_lover_words
['情人節(jié),我愿做一條魚,任你紅燒、白煮、清蒸,然后躺在你溫柔的胃里。', '情人節(jié),對(duì)你的思念太重,壓斷了電話線,燒壞了手機(jī)卡,掏盡了錢包袋,吃光了安眠藥,哎!可我還是思念你。', '情人節(jié),對(duì)你的思念太重,壓斷了電話線,燒壞了手機(jī)卡,掏盡了錢包袋,吃光了安眠藥,哎!可我還是思念你,祝你情人節(jié)快樂!', '情人節(jié),對(duì)你的思念太重,壓斷了電話線,燒壞了手機(jī)卡,掏盡了錢包袋,吃光了安眠藥,唉!可我還是思念你,祝你情人節(jié)快樂!', '情人節(jié),對(duì)你的思念太重,壓斷了電話線,燒壞了手機(jī)卡,掏盡了錢包袋,吃光了安眠藥,哎!可是我還是思念你。']
如果有服務(wù)化部署的需求,借助 PaddleHub,服務(wù)器端的部署也非常簡(jiǎn)單,直接用一條命令行在服務(wù)器啟動(dòng)模型就行了:
!hub serving start -m ernie_gen_lover_words -p 8866
是的,就是這么簡(jiǎn)單,一行搞定服務(wù)器端!相比手動(dòng)配置各種參數(shù)或者調(diào)用各種框架,PaddleHub的服務(wù)器端部署實(shí)在是太好用了。
只要在服務(wù)器端完成部署,剩下在客戶端調(diào)用就問題不大了。如下為客戶端向服務(wù)器端發(fā)送請(qǐng)求做推理的示例腳本,包括制定要推理的輸入文本、發(fā)送推理請(qǐng)求、返回并保存推理結(jié)果幾個(gè)部分。
import requests
import json
# 發(fā)送HTTP請(qǐng)求
data = {'texts':['情人節(jié)'],
'use_gpu':False, 'beam_width':5}
headers = {"Content-type": "application/json"}
url = "http://127.0.0.1:8866/predict/ernie_gen_lover_words"
r = requests.post(url=url, headers=headers, data=json.dumps(data))
# 保存結(jié)果
results = r.json()["results"]
for result in results:
print(result)
如下所示,運(yùn)行腳本后就可以從服務(wù)器端拿到推理結(jié)果了。
飛槳的PaddleHub已經(jīng)幫我們做好了各種處理過程。相信只要有一些 Python 基礎(chǔ),在本地預(yù)測(cè)、以及部署到服務(wù)器端都是沒問題的。
更多預(yù)訓(xùn)練模型,馬上了解PaddleHub
大家看到的AI情話,包括之前疫情期間開源的口罩人臉檢測(cè)模型,都只是飛槳模型生態(tài)的冰山一角,更多的高質(zhì)量的預(yù)訓(xùn)練模型,歡迎登錄飛槳官網(wǎng)了解。
地址:https://www.paddlepaddle.org.cn/hublist
歡迎關(guān)注課程直播
飛槳模型生態(tài)的發(fā)展,離不開每一位開發(fā)者的貢獻(xiàn),值得一提的是,我們本次的AI情話模型,也是開發(fā)者在AI Studio平臺(tái)基于ERNIE-GEN的代碼訓(xùn)練并貢獻(xiàn)到PaddleHub上的,我們也歡迎更多的開發(fā)者可以加入進(jìn)來,一起把深度學(xué)習(xí)模型玩起來用起來,看看通過豐富的預(yù)訓(xùn)練模型還能構(gòu)造出哪些有趣的任務(wù)滿足七夕的需求吧。
同時(shí)我們相信還有很多技術(shù)達(dá)人想了解更多模型微調(diào)的技術(shù)細(xì)節(jié),為了滿足大家的需求,我們將于8月27日晚上19:00在【飛槳PaddlePaddle】B站賬號(hào)上開一場(chǎng)直播課為大家進(jìn)行講解,敬請(qǐng)關(guān)注~