T5 PEGASUS:开源一个中文生成式预训练模型
?PaperWeekly 原創(chuàng) ·?作者|蘇劍林
單位|追一科技
研究方向|NLP、神經(jīng)網(wǎng)絡(luò)
去年在文章那個屠榜的T5模型,現(xiàn)在可以在中文上玩玩了中我們介紹了 Google 的多國語言版 T5 模型(mT5),并給出了用 mT5 進行中文文本生成任務(wù)的例子。誠然,mT5 做中文生成任務(wù)也是一個可用的方案,但缺乏完全由中文語料訓(xùn)練出來模型總感覺有點別扭,于是決心要搞一個出來。
經(jīng)過反復(fù)斟酌測試,我們決定以 mT5 為基礎(chǔ)架構(gòu)和初始權(quán)重,先結(jié)合中文的特點完善 Tokenizer,然后模仿 PEGASUS [1] 來構(gòu)建預(yù)訓(xùn)練任務(wù),從而訓(xùn)練一版新的 T5 模型,這就是本文所開源的 T5 PEGASUS。
Tokenizer
首先,這里介紹我們對 Tokenizer 的完善工作。mT5 使用的 Tokenizer 是 sentencepiece [2] ,這是一個 C++ 所寫的分詞庫,具有高效輕便的特點,但是很遺憾,對于中文來說它并不是特別友好,主要體現(xiàn)為:
1. sentencepiece 會把某些全角符號強制轉(zhuǎn)化為半角符號,這在某些情況下是難以接受的,而且還可能影響任務(wù)的評測結(jié)果;
2. sentencepiece 內(nèi)置的算法雖然有能力分出中文詞來,但對于中文分詞來說其實還是不夠智能的;
3. sentencepiece 用 C++ 寫的,雖然開源了,但對于用慣 Python 的人來說 C++ 就相當于黑箱,難以閱讀源碼,改起來也不容易。
這些特點讓我們決定將 Tokenizer 切換回 BERT 的 Tokenizer。但直接替換原始版本的中文 BERT 的 Tokenizer 是不夠的,一來是我們之前的工作《提速不掉點:基于詞顆粒度的中文 WoBERT》[3] 已經(jīng)表明以詞為單位來做生成模型能獲得更好的效果。
二來哪怕只看字中文 BERT 的 vocab.txt 也是很不完善的,漏了一些常見的標點符號(如雙引號)和中文字(比如“琊”等)。為此,我們選擇給 BERT 的 tokenizer 加入分詞功能,并進一步完善 vocab.txt。
具體來說,我們往原始中文 BERT 的 token_dict 里邊加入結(jié)巴分詞的前 20 萬個詞,然后修改 Tokenizer 的邏輯,使得它能夠切分出詞來,這些改動都已經(jīng)內(nèi)置在 bert4keras 中了,直接調(diào)用就行。接著,我們用這個修改后的 Tokenizer 去遍歷切分我們準備的預(yù)訓(xùn)練語料,統(tǒng)計各個 token 的頻數(shù),最后只保留最高頻的 5 萬個 token,得到一個規(guī)模為 5 萬的 vocab.txt 來構(gòu)建我們最終的 Tokenizer。
除了用這個新 Tokenizer 來訓(xùn)練 T5 PEGASUS 外,我們還用它來重新訓(xùn)練了一版 WoBERT 模型(WoBERT+),也歡迎讀者嘗試。
https://github.com/ZhuiyiTechnology/WoBERT
預(yù)訓(xùn)練任務(wù)
對于預(yù)訓(xùn)練任務(wù),我們希望更加接近自然語言生成(而不是像 T5 那樣的只預(yù)測挖空部分),并且盡可能具有實用價值。為此,我們關(guān)注到了 PEGASUS,來自論文《PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization》[4]。
PEGASUS 在其論文稱是專門為摘要定制的預(yù)訓(xùn)練模型,但在我們看來,它也可以作為通用的生成式預(yù)訓(xùn)練任務(wù)。PEGASUS 的大體思路是通過最長公共子序列的方式該摘要類似的數(shù)據(jù)對,T5 PEGASUS 并沒有完全復(fù)現(xiàn) PEGASUS 的做法,只是借鑒了 PEGASUS 的思路做語料構(gòu)建。
▲ T5 PEGASUS的訓(xùn)練數(shù)據(jù)示例
具體來說,假設(shè)一個文檔有 n 個句子,我們從中挑出大約 n/4 個句子(可以不連續(xù)),使得這 n/4 個句子拼起來的文本,跟剩下的 3n/4 個句子拼起來的文本,最長公共子序列盡可能長,然后我們將 3n/4 個句子拼起來的文本視為原文,n/4 個句子拼起來的文本視為摘要,這樣就構(gòu)成了一個“(原文, 摘要)”的偽摘要數(shù)據(jù)對了,就用這些數(shù)據(jù)對去訓(xùn)練 Seq2Seq 模型即可。
注意,如果文檔里沒有重復(fù)句子的話,那么原文跟摘要的句子是不會有交集的,所以這樣的生成任務(wù)并非是原文的簡單復(fù)制,因此還是有一定難度的。
搜索算法則是通過如下的貪心算法逐步搜索至滿足長度要求:
1. 先找出 1 個句子,使得它跟生成的 n-1 個句子的最長公共子序列最長;
2. 假設(shè)已經(jīng)找到了 k 個句子,那么繼續(xù)找第 k+1 個句子,使得這 k+1 個句子拼起來的文本,跟剩下的 n-k-1 個句子拼起來的文本的最長公共子序列最長。
參數(shù)與配置
目前開源的 T5 PEGASUS 是 base 版,總參數(shù)量為 2.75 億,訓(xùn)練時最大長度為512,batch_size [5] 為 96,學習率為 ,使用 6 張 3090 訓(xùn)練了 100 萬步,訓(xùn)練時間約 13 天,數(shù)據(jù)是 30 多 G 的精處理通用語料,訓(xùn)練 acc 約 47%,訓(xùn)練 loss 約 2.97。模型使用 bert4keras 進行編寫、訓(xùn)練和測試。
Github地址:https://github.com/ZhuiyiTechnology/t5-pegasus
實驗與評測
在 CSL 和 LCSTS 兩個文本生成任務(wù)上,T5 PEGASUS 是我們已知的所有模型中的 SOTA:
更重要的是,T5 PEGASUS 有著非常出色的小樣本學習能力:哪怕樣本標注樣本降低到 10 個,T5 PEGASUS 依然可以微調(diào)出一個摘要(標題)生成模型出來,性能顯著超過其他模型。在 LCSTS上,T5 PEGASUS 具有類似的小樣本學習效果,只不過非 T5 PEGASUS 模型效果實在太差了,所以就沒有把表格整理在此了。?小樣本演示
下面是標注樣本數(shù)為 10 個時訓(xùn)練出來的模型生成效果演示:?
輸入:針對以超立方體網(wǎng)絡(luò)為藍本的多處理機系統(tǒng)的可靠性和容錯能力的精準度量問題,結(jié)合多處理機系統(tǒng)遭受計算機病毒攻擊時常常發(fā)生結(jié)構(gòu)性故障的特點,研究了 n 維超立方體網(wǎng)絡(luò)的結(jié)構(gòu)連通性和子結(jié)構(gòu)連通性評價問題。首先,使用構(gòu)造 n 維超立方體網(wǎng)絡(luò)的 3 路結(jié)構(gòu)割的方法得到其 3 路結(jié)構(gòu)連通度的一個上界;然后,使用構(gòu)造 n 維超立方體網(wǎng)絡(luò)的 3 路子結(jié)構(gòu)集的等價變換或約簡變換的方法,得到其 3 路結(jié)構(gòu)子連通度的一個下界;最后,利用任意網(wǎng)絡(luò)的 3 路結(jié)構(gòu)連通度不小于 3 路子結(jié)構(gòu)連通度的性質(zhì),證實了超立方體網(wǎng)絡(luò)的 3 路結(jié)構(gòu)連通度和子結(jié)構(gòu)連通度均為該超立方體網(wǎng)絡(luò)維數(shù)?
標題:超立方體網(wǎng)絡(luò)的3路結(jié)構(gòu)連通度及子結(jié)構(gòu)連通度
預(yù)測:基于n維超立方體網(wǎng)絡(luò)結(jié)構(gòu)連通性和子結(jié)構(gòu)連通性評價研究
輸入:針對傳統(tǒng)無線體域網(wǎng)(WBAN)預(yù)測模型對感知數(shù)據(jù)預(yù)測精度低、計算量大、能耗高的問題,提出一種基于懲罰誤差矩陣的自適應(yīng)三次指數(shù)平滑算法。首先在感知節(jié)點與路由節(jié)點之間建立輕量級預(yù)測模型,其次采用地毯式搜索方式對預(yù)測模型進行參數(shù)優(yōu)化處理,最后采用懲罰誤差矩陣對預(yù)測模型參數(shù)作進一步的細粒化處理。實驗結(jié)果表明,與 Zig Bee 協(xié)議相比,在 1000 時隙范圍內(nèi),所提方法可節(jié)省 12% 左右的能量;而采用懲罰誤差矩陣與地毯式搜索方式相比,預(yù)測精度提高了 3.306%。所提方法在有效降低計算復(fù)雜度的同時能進一步降低 WBAN 的能耗。
標題:基于懲罰誤差矩陣的同步預(yù)測無線體域網(wǎng)節(jié)能方法
預(yù)測:基于懲罰誤差矩陣的自適應(yīng)三次指數(shù)平滑算法
輸入:針對車聯(lián)網(wǎng)(IoV)環(huán)境下消息傳輸效率低下、網(wǎng)絡(luò)資源開銷較大等諸多問題,提出一種適用于城市交通場景下基于車輛節(jié)點認知交互的路由算法。首先,依據(jù)信任理論提出節(jié)點認知交互度的概念,并在此基礎(chǔ)上對車聯(lián)網(wǎng)中的車輛節(jié)點進行分類,賦予它們不同的認知交互度初值;同時還引入車輛節(jié)點交互時間、交互頻率、車輛節(jié)點物理間隔距離、間隔跳數(shù)以及消息生存時間等影響因子,進而構(gòu)建了車輛節(jié)點認知交互評估模型。基于該模型計算并更新節(jié)點的認知交互度,并通過比較對應(yīng)車輛節(jié)點間的認知交互度值來選取認知交互度相對較高的鄰居節(jié)點作為中繼節(jié)點進行消息轉(zhuǎn)。
標題:車聯(lián)網(wǎng)環(huán)境下基于節(jié)點認知交互的路由算法
預(yù)測:基于車輛節(jié)點認知交互的路由算法
輸入:針對近場源波達方向(DOA)和距離的聯(lián)合估計問題,提出一種近場迭代自適應(yīng)算法(NF-IAA)。首先通過劃分二維網(wǎng)格表示出近場區(qū)域內(nèi)信源所有可能的位置,每個位置都看作存在一個潛在的信源入射到陣列上,表示出陣列輸出的數(shù)據(jù)模型;然后通過循環(huán)迭代利用上一次譜估計的結(jié)果構(gòu)建信號的協(xié)方差矩陣,將協(xié)方差矩陣的逆作為加權(quán)矩陣估計出每個位置對應(yīng)的潛在信源能量;最后繪制出三維能量譜圖,由于只有真實存在的信源能量不為 0,因此譜峰對應(yīng)的位置即為真實存在信源的位置。仿真實驗表明在 10 個快拍條件下,NF-IAA的DOA 分辨概率達到了 9。
標題:基于迭代自適應(yīng)方法的近場源二維參數(shù)聯(lián)合估計
預(yù)測:基于nf-iaa的近場迭代自適應(yīng)算法
輸入:針對現(xiàn)有的軟件眾包工人選擇機制對工人間協(xié)同開發(fā)考慮不足的問題,在競標模式的基礎(chǔ)上提出一種基于活躍時間分組的軟件眾包工人選擇機制。首先,基于活躍時間將眾包工人劃分為多個協(xié)同開發(fā)組;然后,根據(jù)組內(nèi)工人開發(fā)能力和協(xié)同因子計算協(xié)同工作組權(quán)重;最后,選定權(quán)重最大的協(xié)同工作組為最優(yōu)工作組,并根據(jù)模塊復(fù)雜度為每個任務(wù)模塊從該組內(nèi)選擇最適合的工人。實驗結(jié)果表明,該機制相比能力優(yōu)先選擇方法在工人平均能力上僅有 0.57% 的差距, 同時因為保證了工人間的協(xié)同而使項目風險平均降低了 32%,能有效指導(dǎo)需多人協(xié)同進行的眾包軟件任務(wù)的工。
標題:基于活躍時間分組的軟件眾包工人選擇機制
預(yù)測:基于活躍時間分組的軟件眾包工人選擇機制?
可以看到哪怕標注樣本很少,但依然能夠得到可讀性較好的生成結(jié)果,這得益于 PEGASUS 式的偽摘要預(yù)訓(xùn)練與下游任務(wù)是很貼近的。?
簡單的總結(jié) ?
本文主要分享了我們的中文生成式預(yù)訓(xùn)練模型 T5 PEGASUS,它以 mT5 為基礎(chǔ),在中文語料上使用 PEGASUS 式的偽摘要預(yù)訓(xùn)練,最終有著不錯的文本生成表現(xiàn),尤其是出色的小樣本學習能力,歡迎有文本生成需求的讀者使用。
參考文獻
[1] https://arxiv.org/abs/1912.08777
[2] https://github.com/google/sentencepiece
[3] https://kexue.fm/archives/7758
[4] https://arxiv.org/abs/1912.08777
[5] https://kexue.fm/archives/bert4keras
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學習心得或技術(shù)干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創(chuàng)作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發(fā),請在投稿時提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認每篇文章都是首發(fā),均會添加“原創(chuàng)”標志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發(fā)送?
? 請留下即時聯(lián)系方式(微信或手機),以便我們在編輯發(fā)布時和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的T5 PEGASUS:开源一个中文生成式预训练模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银联在线支付怎么开通
- 下一篇: 胶囊网络全新升级!引入自注意力机制的Ef