哎媽呀,淚奔了,哭的不要不要的!
再試試,輸入:
你有打火機么?
生成:
你有打火機么? 沒有啊!那你怎么點燃我的心的?
效果炸裂,這還只是一個AI情話功能。
要是再整首詩寫在小卡片上,女神的心能瞬間化成一江春水向東流。。。
AI藏頭詩實測效果展示
輸入:
吾愛秋香
生成:
吾慕斯人不以官,
愛閑能有幾人閑。
秋來莫作功名看,
香滿南山雪滿山。
一戰(zhàn)深藏功與名!
目前演示頁限制是七言絕句,如果是需要其它的七言律詩、五言絕句和五言律詩,可以通過代碼調(diào)用,效果也是妥妥的!
是不是著急了?我仿佛看到一群大老爺們兒向我殺來。
我這就把鏈接交出來,大家快來我們PaddleHub官網(wǎng)上體驗吧:
https://www.paddlepaddle.org.cn/hub/scene/aiwriting
這是怎么做到的?
這樣炸裂效果的背后,離不開頂尖的ERNIE-GEN 算法加持,什么?不知道ERNIE-GEN?ERNIE聽說過吧,NLP領(lǐng)域模型中的帶頭大哥,曾經(jī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ù),讓模型每次能夠生成一個語義完整的片段。在預(yù)訓(xùn)練和微調(diào)中通過填充式生成機制和噪聲感知機制來緩解曝光偏差問題。此外, ERNIE-GEN 采用多片段-多粒度目標文本采樣策略, 增強源文本和目標文本的關(guān)聯(lián)性,加強了編碼器和解碼器的交互。
更多詳情參考論文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)時首先通過加載ERNIE 1.0中文模型參數(shù)完成熱啟動,然后采用開發(fā)者在網(wǎng)絡(luò)上搜集到的情詩、情話數(shù)據(jù),基于ERNIE-GEN框架進行微調(diào)。與傳統(tǒng)的Seq2Seq做法相比,該模型實際使用效果具備更強的泛化能力,即使是微調(diào)使用的數(shù)據(jù)集中沒見過的詞匯或句子,模型也能夠理解。例如輸入“小編帶大家了解一下程序員情人節(jié)”,將會輸出:
實際上“程序員”“數(shù)據(jù)庫”這些詞是從未出現(xiàn)在情話數(shù)據(jù)集中的,但是得益于知識增強的語義表示模型ERNIE帶來的泛化能力,使模型仍然能夠領(lǐng)悟到二者之間的關(guān)系。同時ERNIE-GEN獨特的填充生成機制和噪聲感知生成的策略,使得微調(diào)后模型文本生成效果更加自然流暢,相比傳統(tǒng)的基于RNN結(jié)合Seq2Seq的生成做法,所需的訓(xùn)練數(shù)據(jù)量更小,而且文本生成效果更有內(nèi)涵。
正如模型輸出所言,希望在七夕這一天,我們的程序都能夠正常的工作,大家可以放心地過個愉快的情人節(jié)。
想知道怎么用嗎?
整個預(yù)訓(xùn)練模型只要求安裝PaddlePaddle 與 PaddleHub,諸位兄弟只需要了解基礎(chǔ) Python 就能跑得動。
飛槳PaddleHub的開發(fā)者提供了AI情話、AI藏頭詩、AI對聯(lián)、AI寫詩四種文本生成的示例代碼,通過 Notebook 文件,我們能更形象地了解模型使用的完整過程。AI Studio項目地址如下:
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”)
#準備輸入開頭數(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)
運行這個腳本后,我們就可以收貨了。
哎呀,甜度太高了,有點上頭
[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é),對你的思念太重,壓斷了電話線,燒壞了手機卡,掏盡了錢包袋,吃光了安眠藥,哎!可我還是思念你。’, ‘情人節(jié),對你的思念太重,壓斷了電話線,燒壞了手機卡,掏盡了錢包袋,吃光了安眠藥,哎!可我還是思念你,祝你情人節(jié)快樂!’, ‘情人節(jié),對你的思念太重,壓斷了電話線,燒壞了手機卡,掏盡了錢包袋,吃光了安眠藥,唉!可我還是思念你,祝你情人節(jié)快樂!’, ‘情人節(jié),對你的思念太重,壓斷了電話線,燒壞了手機卡,掏盡了錢包袋,吃光了安眠藥,哎!可是我還是思念你。’]
如果有服務(wù)化部署的需求,借助 PaddleHub,服務(wù)器端的部署也非常簡單,直接用一條命令行在服務(wù)器啟動模型就行了:
!hub serving start -m ernie_gen_lover_words -p 8866
是的,就是這么簡單,一行搞定服務(wù)器端!相比手動配置各種參數(shù)或者調(diào)用各種框架,PaddleHub的服務(wù)器端部署實在是太好用了。
只要在服務(wù)器端完成部署,剩下在客戶端調(diào)用就問題不大了。如下為客戶端向服務(wù)器端發(fā)送請求做推理的示例腳本,包括制定要推理的輸入文本、發(fā)送推理請求、返回并保存推理結(jié)果幾個部分。
import requests
import json
# 發(fā)送HTTP請求
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)
如下所示,運行腳本后就可以從服務(wù)器端拿到推理結(jié)果了。
飛槳的PaddleHub已經(jīng)幫我們做好了各種處理過程。相信只要有一些 Python 基礎(chǔ),在本地預(yù)測、以及部署到服務(wù)器端都是沒問題的。
更多預(yù)訓(xùn)練模型,馬上了解PaddleHub
大家看到的AI情話,包括之前疫情期間開源的口罩人臉檢測模型,都只是飛槳模型生態(tài)的冰山一角,更多的高質(zhì)量的預(yù)訓(xùn)練模型,歡迎登錄飛槳官網(wǎng)了解。
地址:https://www.paddlepaddle.org.cn/hublist
歡迎關(guān)注課程直播
飛槳模型生態(tài)的發(fā)展,離不開每一位開發(fā)者的貢獻,值得一提的是,我們本次的AI情話模型,也是開發(fā)者在AI Studio平臺基于ERNIE-GEN的代碼訓(xùn)練并貢獻到PaddleHub上的,我們也歡迎更多的開發(fā)者可以加入進來,一起把深度學(xué)習(xí)模型玩起來用起來,看看通過豐富的預(yù)訓(xùn)練模型還能構(gòu)造出哪些有趣的任務(wù)滿足七夕的需求吧。
同時我們相信還有很多技術(shù)達人想了解更多模型微調(diào)的技術(shù)細節(jié),為了滿足大家的需求,我們將于8月27日晚上19:00在【飛槳PaddlePaddle】B站賬號上開一場直播課為大家進行講解,敬請關(guān)注~