發(fā)布asp.net網(wǎng)站到虛擬主機(jī)口碑營銷的案例及分析
NLP之ERNIE:ERNIE的簡介、安裝和使用方法、案例應(yīng)用之詳細(xì)攻略
目錄
相關(guān)論文
《ERNIE: Enhanced Representation through Knowledge Integration》翻譯與解讀
Abstract
5、Conclusion
ERNIE的簡介
1、開源Roadmap
2022.8.18,圖文跨模態(tài)預(yù)訓(xùn)練模型ERNIE-ViL 2.0 (base)?正式開源
2022.5.20,最新開源ERNIE 3.0系列預(yù)訓(xùn)練模型:
2021.12.3,多語言預(yù)訓(xùn)練模型ERNIE-M?正式開源
2021.5.20,ERNIE 最新開源四大預(yù)訓(xùn)練模型:
2020.9.24,ERNIE-ViL?技術(shù)發(fā)布! (點(diǎn)擊進(jìn)入)
2020.5.20,ERNIE-GEN?模型正式開源! (點(diǎn)擊進(jìn)入)
2019.7.7 發(fā)布ERNIE 2.0
2019.3.16 發(fā)布ERNIE 1.0
2、預(yù)訓(xùn)練模型介紹
3、數(shù)據(jù)集下載
4、模型效果評(píng)估
評(píng)估數(shù)據(jù)集
CLUE 評(píng)測(cè)結(jié)果:
具體評(píng)測(cè)方式
下游任務(wù)的固定超參配置
ERNIE模型Grid Search 最優(yōu)超參
ERNIE的安裝和使用方法
1、安裝環(huán)境依賴
2、安裝Ernie套件
3、以文本分類任務(wù)為例,來快速上手ERNIE大模型的使用
下載模型
準(zhǔn)備數(shù)據(jù)
配置訓(xùn)練json文件
啟動(dòng)訓(xùn)練
配置預(yù)測(cè)json文件
4、啟動(dòng)預(yù)測(cè)
ERNIE的案例應(yīng)用
1、基礎(chǔ)用法
文本分類(文本分類)
文本匹配(文本匹配)
序列標(biāo)注(序列標(biāo)注)
信息抽取(信息抽取)
文本生成(文本生成)
圖文匹配(圖文匹配)
數(shù)據(jù)蒸餾(數(shù)據(jù)蒸餾)
工具使用(工具使用)
相關(guān)論文
《ERNIE: Enhanced Representation through Knowledge Integration》翻譯與解讀
地址 | 論文地址:https://arxiv.org/abs/1904.09223 |
時(shí)間 | 2019年4月19日 |
作者 | Yu Sun, Shuohuan Wang, Yukun Li, Shikun Feng, Xuyi Chen, Han Zhang, Xin Tian, Danxiang Zhu, Hao Tian, Hua Wu Baidu |
總結(jié) | 此論文提出了一種新的語言表示模型ERNIE(通過知識(shí)增強(qiáng)的語言表示),主要解決傳統(tǒng)語言模型忽略語句中的先驗(yàn)知識(shí)信息的問題。 背景痛點(diǎn): >> 傳統(tǒng)語言模型如BERT等主要通過預(yù)測(cè)遮蔽詞得到語義信息,但忽略了語句中的實(shí)體和短語等先驗(yàn)知識(shí)。 >> 無法利用實(shí)體和關(guān)系等外部知識(shí)來指導(dǎo)詞向量學(xué)習(xí),難以獲得堅(jiān)實(shí)的語義語言表示。 具體解決方案: >> ERNIE采用知識(shí)遮蔽策略,不僅實(shí)現(xiàn)詞級(jí)遮蔽,還實(shí)施短語級(jí)和實(shí)體級(jí)的遮蔽策略。 >> 短語和實(shí)體作為一個(gè)整體進(jìn)行遮蔽和預(yù)測(cè),強(qiáng)化模型學(xué)習(xí)短語和實(shí)體內(nèi)隱含的語法和語義信息。 >> 避免直接添加知識(shí)嵌入,而是通過多階段遮蔽任務(wù)隱式學(xué)習(xí)知識(shí),有更好的泛化能力。 核心特點(diǎn): >> 充分利用語句里面實(shí)體和關(guān)系等外部知識(shí) >> 隱式學(xué)習(xí)知識(shí)而不是直接使用知識(shí)向量 >> 語義表示能力更強(qiáng),知識(shí)推理能力更好 優(yōu)勢(shì): >> 在5個(gè)典型中文自然語言處理任務(wù)上均突破狀態(tài)端,取得新的最優(yōu)結(jié)果 >> 閉環(huán)測(cè)試表明知識(shí)推理能力更強(qiáng) >> 代碼和預(yù)訓(xùn)練模型公開提供 綜上,ERNIE通過知識(shí)遮蔽策略有效地將語句知識(shí)集成到語言模型訓(xùn)練中,解決了傳統(tǒng)模型忽略知識(shí)信息的問題,顯著提升了語言表示質(zhì)量和模型效果。 |
Abstract
We present a novel language representation model enhanced by knowledge called ERNIE (Enhanced Representation through kNowl-edge IntEgration). Inspired by the mask-ing strategy of BERT (Devlin et al., 2018), ERNIE is designed to learn language represen-tation enhanced by knowledge masking strate-gies, which includes entity-level masking and phrase-level masking. Entity-level strategy masks entities which are usually composed of multiple words. Phrase-level strategy masks the whole phrase which is composed of several words standing together as a conceptual unit. Experimental results show that ERNIE outper-forms other baseline methods, achieving new state-of-the-art results on five Chinese natu-ral language processing tasks including nat-ural language inference, semantic similarity, named entity recognition, sentiment analysis and question answering. We also demonstrate that ERNIE has more powerful knowledge in-ference capacity on a cloze test. | 我們提出了一種由知識(shí)增強(qiáng)的新型語言表示模型,稱為ERNIE(Enhanced Representation through kNowl-edge IntEgration)。受到BERT(Devlin等人,2018)的掩碼策略啟發(fā),ERNIE旨在通過知識(shí)掩碼策略學(xué)習(xí)語言表示,其中包括實(shí)體級(jí)別的掩碼和短語級(jí)別的掩碼。實(shí)體級(jí)別的策略掩蓋了通常由多個(gè)詞組成的實(shí)體。短語級(jí)別的策略掩蓋了整個(gè)短語,該短語由幾個(gè)詞一起作為一個(gè)概念單元。實(shí)驗(yàn)結(jié)果表明,ERNIE在五個(gè)中文自然語言處理任務(wù)上表現(xiàn)優(yōu)異,包括自然語言推理、語義相似性、命名實(shí)體識(shí)別、情感分析和問答,取得了新的最先進(jìn)成果。我們還展示了ERNIE在填空測(cè)試中具有更強(qiáng)大的知識(shí)推理能力。 |
5、Conclusion
In this paper, we presents a novel method to inte-grate knowledge into pre-training language model. Experiments on 5 Chinese language processing tasks show that our method outperforms BERT over all of these tasks. We also confirmed that both the knowledge integration and pre-training on het-erogeneous data enable the model to obtain better language representation. In future we will integrate other types of knowl-edge into semantic representation models, such as using syntactic parsing or weak supervised signals from other tasks. In addition We will also validate this idea in other languages. | 在本文中,我們提出了一種將知識(shí)整合到預(yù)訓(xùn)練語言模型中的新方法。對(duì)5個(gè)中文語言處理任務(wù)的實(shí)驗(yàn)證明,我們的方法在所有這些任務(wù)上優(yōu)于BERT。我們還確認(rèn)了知識(shí)整合和在異構(gòu)數(shù)據(jù)上的預(yù)訓(xùn)練使模型能夠獲得更好的語言表示。 在未來,我們將將其他類型的知識(shí)整合到語義表示模型中,例如使用句法解析或來自其他任務(wù)的弱監(jiān)督信號(hào)。此外,我們還將在其他語言中驗(yàn)證這個(gè)想法。 |
ERNIE的簡介
文心大模型ERNIE是百度發(fā)布的產(chǎn)業(yè)級(jí)知識(shí)增強(qiáng)大模型,涵蓋了NLP大模型和跨模態(tài)大模型。2019年3月,開源了國內(nèi)首個(gè)開源預(yù)訓(xùn)練模型文心ERNIE 1.0,此后在語言與跨模態(tài)的理解和生成等領(lǐng)域取得一系列技術(shù)突破,并對(duì)外開源與開放了系列模型,助力大模型研究與產(chǎn)業(yè)化應(yīng)用發(fā)展。提醒: ERNIE老版本代碼已經(jīng)遷移至repro分支,歡迎使用我們?nèi)律?jí)的基于動(dòng)靜結(jié)合的新版ERNIE套件進(jìn)行開發(fā)。另外,也歡迎上EasyDL、BML體驗(yàn)更豐富的功能。
GitHub地址:GitHub - PaddlePaddle/ERNIE: Official implementations for various pre-training models of ERNIE-family, covering topics of Language Understanding & Generation, Multimodal Understanding & Generation, and beyond.
GitHub地址02:GitHub - thunlp/ERNIE: Source code and dataset for ACL 2019 paper "ERNIE: Enhanced Language Representation with Informative Entities"
1、開源Roadmap
2022.8.18,圖文跨模態(tài)預(yù)訓(xùn)練模型ERNIE-ViL 2.0 (base)
?正式開源
2022.5.20,最新開源ERNIE 3.0系列預(yù)訓(xùn)練模型:
- 74M輕量級(jí)通用模型ERNIE 3.0 Medium
- 280M參數(shù)重量級(jí)通用模型ERNIE 3.0 XBase
- 110M參數(shù)通用模型ERNIE 3.0 Base
- 新增語音-語言跨模態(tài)模型ERNIE-SAT?正式開源
- 新增ERNIE-Gen(中文)預(yù)訓(xùn)練模型,支持多類主流生成任務(wù):主要包括摘要、問題生成、對(duì)話、問答
- 動(dòng)靜結(jié)合的文心ERNIE開發(fā)套件:基于飛槳?jiǎng)討B(tài)圖功能,支持文心ERNIE模型動(dòng)態(tài)圖訓(xùn)練。您僅需要在模型訓(xùn)練開啟前,修改一個(gè)參數(shù)配置,即可實(shí)現(xiàn)模型訓(xùn)練的動(dòng)靜切換。
- 將文本預(yù)處理、預(yù)訓(xùn)練模型、網(wǎng)絡(luò)搭建、模型評(píng)估、上線部署等NLP開發(fā)流程規(guī)范封裝。
- 支持NLP常用任務(wù):文本分類、文本匹配、序列標(biāo)注、信息抽取、文本生成、數(shù)據(jù)蒸餾等。
- 提供數(shù)據(jù)清洗、數(shù)據(jù)增強(qiáng)、分詞、格式轉(zhuǎn)換、大小寫轉(zhuǎn)換等數(shù)據(jù)預(yù)處理工具。
2021.12.3,多語言預(yù)訓(xùn)練模型ERNIE-M
?正式開源
2021.5.20,ERNIE 最新開源四大預(yù)訓(xùn)練模型:
- 語言與視覺一體的預(yù)訓(xùn)練模型
ERNIE-UNIMO
?正式開源 - 融合場(chǎng)景圖知識(shí)的跨模態(tài)預(yù)訓(xùn)練模型教程
ERNIE-ViL
?正式開源 - 超長文本雙向建模預(yù)訓(xùn)練模型
ERNIE-Doc
?正式開源 - 多粒度語言知識(shí)模型
ERNIE-Gram
?正式開源
2020.9.24,ERNIE-ViL
?技術(shù)發(fā)布! (點(diǎn)擊進(jìn)入)
- 五項(xiàng)視覺-語言下游任務(wù)取得最好效果,視覺常識(shí)推理榜單取得第一。
- 面向視覺-語言知識(shí)增強(qiáng)的預(yù)訓(xùn)練框架,首次在視覺-語言預(yù)訓(xùn)練引入結(jié)構(gòu)化的知識(shí)。
- 利用場(chǎng)景圖中的知識(shí),構(gòu)建了物體、屬性和關(guān)系預(yù)測(cè)任務(wù),精細(xì)刻畫模態(tài)間細(xì)粒度語義對(duì)齊。
2020.5.20,ERNIE-GEN
?模型正式開源! (點(diǎn)擊進(jìn)入)
- 精巧的 Mulit-Flow Attention 實(shí)現(xiàn)框架。
- 提出填充式生成機(jī)制和噪聲感知機(jī)制來緩解曝光偏差問題。
- 首次在預(yù)訓(xùn)練階段加入span-by-span 生成任務(wù),讓模型每次能夠生成一個(gè)語義完整的片段。
- 最強(qiáng)文本生成預(yù)訓(xùn)練模型正式開源,相關(guān)工作已被?
IJCAI-2020
?收錄。- 首次把 ERNIE 預(yù)訓(xùn)練技術(shù)能力擴(kuò)展至文本生成領(lǐng)域,在多個(gè)典型任務(wù)上取得最佳。
- 您現(xiàn)在即可下載論文報(bào)告的所有模型(包含?base/large/large-430G)。
- 2020.4.30 發(fā)布ERNIESage, 一種新型圖神經(jīng)網(wǎng)絡(luò)模型,采用ERNIE做為aggreagtor. 由PGL實(shí)現(xiàn)。
- 2020.3.27?在SemEval2020五項(xiàng)子任務(wù)上奪冠。
- 2019.12.26?GLUE榜第一名。
- 2019.11.6 發(fā)布ERNIE Tiny。
2019.7.7 發(fā)布ERNIE 2.0
2019.3.16 發(fā)布ERNIE 1.0
2、預(yù)訓(xùn)練模型介紹
- 參考預(yù)訓(xùn)練模型原理介紹:模型介紹
- 預(yù)訓(xùn)練模型下載:進(jìn)入./applications/models_hub目錄下,下載示例:
#進(jìn)入預(yù)訓(xùn)練模型下載目錄
cd ./applications/models_hub
#下載ERNIE3.0 base模型
sh downlaod_ernie_3.0_base_ch.sh
- 更多開源模型,見Research
3、數(shù)據(jù)集下載
CLUE數(shù)據(jù)集
DuIE2.0數(shù)據(jù)集
MSRA_NER數(shù)據(jù)集
4、模型效果評(píng)估
評(píng)估數(shù)據(jù)集
- 分類和匹配采用CLUE數(shù)據(jù)集。
CLUE 評(píng)測(cè)結(jié)果:
配置 | 模型 | CLUEWSC2020 | IFLYTEK | TNEWS | AFQMC | CMNLI | CSL | OCNLI | 平均值 |
---|---|---|---|---|---|---|---|---|---|
24L1024H | RoBERTa-wwm-ext-large | 90.79 | 62.02 | 59.33 | 76.00 | 83.88 | 83.67 | 78.81 | 76.36 |
20L1024H | ERNIE 3.0-XBase | 91.12 | 62.22 | 60.34 | 76.95 | 84.98 | 84.27 | 82.07 | 77.42 |
12L768H | RoBERTa-wwm-ext-base | 88.55 | 61.22 | 58.08 | 74.75 | 81.66 | 81.63 | 77.25 | 74.73 |
12L768H | ERNIE 3.0-Base | 88.18 | 60.72 | 58.73 | 76.53 | 83.65 | 83.30 | 80.31 | 75.63 |
6L768H | RBT6, Chinese | 75.00 | 59.68 | 56.62 | 73.15 | 79.26 | 80.04 | 73.15 | 70.99 |
6L768H | ERNIE 3.0-Medium | 79.93 | 60.14 | 57.16 | 74.56 | 80.87 | 81.23 | 77.02 | 72.99 |
具體評(píng)測(cè)方式
- 以上所有任務(wù)均基于 Grid Search 方式進(jìn)行超參尋優(yōu)。分類任務(wù)訓(xùn)練每間隔 100 steps 評(píng)估驗(yàn)證集效果,取驗(yàn)證集最優(yōu)效果作為表格中的匯報(bào)指標(biāo)。
- 分類任務(wù) Grid Search 超參范圍: batch_size: 16, 32, 64; learning rates: 1e-5, 2e-5, 3e-5, 5e-5;因?yàn)?CLUEWSC2020 數(shù)據(jù)集較小,所以模型在該數(shù)據(jù)集上的效果對(duì) batch_size 較敏感,所以對(duì) CLUEWSC2020 評(píng)測(cè)時(shí)額外增加了 batch_size = 8 的超參搜索; 因?yàn)镃LUEWSC2020 和 IFLYTEK 數(shù)據(jù)集對(duì) dropout 概率值較為敏感,所以對(duì) CLUEWSC2020 和 IFLYTEK 數(shù)據(jù)集評(píng)測(cè)時(shí)增加dropout_prob = 0.0 的超參搜索。
下游任務(wù)的固定超參配置
分類和匹配任務(wù):
TASK | AFQMC | TNEWS | IFLYTEK | CMNLI | OCNLI | CLUEWSC2020 | CSL |
---|---|---|---|---|---|---|---|
epoch | 3 | 3 | 3 | 2 | 5 | 50 | 5 |
max_seq_length | 128 | 128 | 128 | 128 | 128 | 128 | 256 |
warmup_proportion | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 |
ERNIE模型Grid Search 最優(yōu)超參
Model | AFQMC | TNEWS | IFLYTEK | CMNLI | OCNLI | CLUEWSC2020 | CSL |
---|---|---|---|---|---|---|---|
ERNIE 3.0-Medium | bsz_32_lr_2e-05 | bsz_16_lr_3e-05 | bsz_16_lr_5e-05 | bsz_16_lr_1e-05/bsz_64_lr_2e-05 | bsz_64_lr_2e-05 | bsz_8_lr_2e-05 | bsz_32_lr_1e-05 |
ERNIE 3.0-Base | bsz_16_lr_2e-05 | bsz_64_lr_3e-05 | bsz_16_lr_5e-05 | bsz_16_lr_2e-05 | bsz_16_lr_2e-05 | bsz_8_lr_2e-05(drop_out _0.1) | bsz_16_lr_3e-05 |
ERNIE 3.0-XBase | bsz_16_lr_1e-05 | bsz_16_lr_2e-05 | bsz_16_lr_3e-05 | bsz_16_lr_1e-05 | bsz_32_lr_2e-05 | bsz_8_lr_2e-05 | bsz_64_lr_1e-05 |
ERNIE的安裝和使用方法
1、安裝環(huán)境依賴
環(huán)境安裝與配置:https://github.com/PaddlePaddle/ERNIE/blob/ernie-kit-open-v1.0/README_ENV.md
2、安裝Ernie套件
git clone https://github.com/PaddlePaddle/ERNIE.git
3、以文本分類任務(wù)為例,來快速上手ERNIE大模型的使用
下載模型
- 使用ERNIE3.0預(yù)訓(xùn)練模型進(jìn)行文本分類任務(wù)
- ERNNIE3.0預(yù)訓(xùn)練模型的下載與配置
# ernie_3.0 模型下載
# 進(jìn)入models_hub目錄
cd ./applications/models_hub
# 運(yùn)行下載腳本
sh download_ernie_3.0_base_ch.sh
準(zhǔn)備數(shù)據(jù)
- 文心各個(gè)任務(wù)的data目錄下自帶一些示例數(shù)據(jù),能夠?qū)崿F(xiàn)直接使用,方便快速熟悉文心的使用。
- 文本分類任務(wù)的數(shù)據(jù)
#進(jìn)入文本分類任務(wù)文件夾 cd ./applications/tasks/text_classification/ #查看文本分類任務(wù)自帶數(shù)據(jù)集 ls ./data
- 注:示例數(shù)據(jù)僅作為格式演示使用,在真正訓(xùn)練模型時(shí)請(qǐng)?zhí)鎿Q為真實(shí)數(shù)據(jù)。
配置訓(xùn)練json文件
- 其預(yù)置json文件在./examples/目錄下,使用ERNIE3.0預(yù)訓(xùn)練模型進(jìn)行訓(xùn)練的配置文件為的./examples/cls_ernie_fc_ch.json,在該json文件中對(duì)數(shù)據(jù)、模型、訓(xùn)練方式等邏輯進(jìn)行了配置。
#查看 ERNIE3.0預(yù)訓(xùn)練模型 訓(xùn)練文本分類任務(wù)的配置文件 cat ./examples/cls_ernie_fc_ch.json
啟動(dòng)訓(xùn)練
- 將數(shù)據(jù)集存放妥當(dāng),并配置好cls_ernie_fc_ch.json,我們就可以運(yùn)行模型訓(xùn)練的命令。
- 其中,單卡指令為
python run_trainer.py
,如下所示,使用基于ernie的中文文本分類模型在訓(xùn)練集上進(jìn)行本地模型訓(xùn)練。
# ernie 中文文本分類模型 # 基于json實(shí)現(xiàn)預(yù)置網(wǎng)絡(luò)訓(xùn)練。其調(diào)用了配置文件./examples/cls_ernie_fc_ch.json python run_trainer.py --param_path ./examples/cls_ernie_fc_ch.json
- 多卡指令為:
fleetrun --gpus=x,y run_trainer.py./examples/cls_ernie_fc_ch.json
- 訓(xùn)練運(yùn)行的日志會(huì)自動(dòng)保存在**./log/test.log**文件中。
- 訓(xùn)練中以及結(jié)束后產(chǎn)生的模型文件會(huì)默認(rèn)保存在./output/目錄下,其中save_inference_model/文件夾會(huì)保存用于預(yù)測(cè)的模型文件,save_checkpoint/?文件夾會(huì)保存用于熱啟動(dòng)的模型文件。
配置預(yù)測(cè)json文件
- 其預(yù)置json文件在./examples/目錄下,使用ERNIE2.0預(yù)訓(xùn)練模型訓(xùn)練的模型進(jìn)行預(yù)測(cè)的配置文件為的./examples/cls_ernie_fc_ch_infer.json
- 主要修改./examples/cls_ernie_fc_ch_infer.json文件的預(yù)測(cè)模型的輸入路徑、預(yù)測(cè)文件的輸入路徑、預(yù)測(cè)結(jié)果的輸出路徑,對(duì)應(yīng)修改配置如下:
{
"dataset_reader":{"train_reader":{"config":{"data_path":"./data/predict_data"}}},
"inference":{"inference_model_path":"./output/cls_ernie_fc_ch/save_inference_model/inference_step_251","output_path": "./output/predict_result.txt"}
}
4、啟動(dòng)預(yù)測(cè)
- 運(yùn)行run_infer.py ,選擇對(duì)應(yīng)的參數(shù)配置文件即可。如下所示:
python run_infer.py --param_path ./examples/cls_ernie_fc_ch_infer.json
- 預(yù)測(cè)過程中的日志自動(dòng)保存在./output/predict_result.txt文件中。