按照時間線幫你梳理10種預訓練模型

2021-02-13 深度學習衝鴨

關注「深度學習衝鴨」,一起學習一起衝鴨!

設為星標,第一時間獲取更多乾貨

https://zhuanlan.zhihu.com/p/151741265https://blog.csdn.net/weixin_37995835/article/details/106994820本文的主要目的是理清時間線,關注預訓練的發展過程,進行模型間的聯繫和對比,具體原理和細節請參考原論文和代碼,不再一一贅述。

ELMO  2018.03    華盛頓大學   

GPT     2018.06    OpenAI  

BERT   2018.10    Google 

XLNet  2019.6    CMU+google

ERNIE    2019.4     百度  

BERT-wwm  2019.6   哈工大+訊飛  

RoBERTa   2019.7.26   Facebook   

ERNIE2.0    2019.7.29     百度       

BERT-wwm-ext  2019.7.30   哈工大 +訊飛 

ALBERT   2019.10   Google   

『各模型之間的聯繫 』

傳統word2vec無法解決一詞多義,語義信息不夠豐富,誕生了ELMO

ELMO以lstm堆積,串行且提取特徵能力不夠,誕生了GPT

GPT 雖然用transformer堆積,但是是單向的,誕生了BERT

BERT雖然雙向,但是mask不適用於自編碼模型,誕生了XLNET

BERT中mask代替單個字符而非實體或短語,沒有考慮詞法結構/語法結構,誕生了ERNIE

為了mask掉中文的詞而非字,讓BERT更好的應用在中文任務,誕生了BERT-wwm

Bert訓練用更多的數據、訓練步數、更大的批次,mask機制變為動態的,誕生了RoBERTa

ERNIE的基礎上,用大量數據和先驗知識,進行多任務的持續學習,誕生了ERNIE2.0

BERT-wwm增加了訓練數據集、訓練步數,誕生了BERT-wwm-ext

BERT的其他改進模型基本考增加參數和訓練數據,考慮輕量化之後,誕生了ALBERT

「   1.ELMO    」「Embedding from Language Models"

特點:傳統的詞向量(如word2vec)是靜態的/上下文無關的,而ELMO解決了一詞多義;ELMO採用雙層雙向LSTM

缺點lstm是串行,訓練時間長;相比於transformer,特徵提取能力不夠(ELMO採用向量拼接)

使用分為兩階段:預訓練+應用於下遊任務,本質就是根據當前上下文對Word Embedding進行動態調整的過程:

1. 用語言模型進行預訓練

左邊的前向雙層LSTM是正方向編碼器,順序輸入待預測單詞w的上文;右邊則是反方向編碼器,逆序輸入w的下文

訓練好之後,輸入一個新句子s,每個單詞都得到三個Embedding:①單詞的Word Embedding   ②第一層關於單詞位置的Embedding   ②第二層帶有語義信息的Embedding(上述的三個Embedding   、LSTM網絡結果均為訓練結果)

2. 做下遊任務時,從預訓練網絡中提取對應單詞的網絡各層的Word Embedding作為新特徵補充到下遊任務中。 如QA任務:輸入Q/A句子,對三個Embedding分配權重,整合生成新的Embedding

「    2.GPT   」 「Generative Pre-Training」

依然兩段式:單向語言模型預訓練(無監督)+fine tuning應用到下遊任務(有監督)

自回歸模型

transformer的decoder裡面有三個子模塊,GPT只用了第一個和第三個子模塊,如下圖:

GPT只用了transformer的decoder模塊提取特徵,而不是Bi-LSTM;堆疊12個

單向(根據上文預測單詞,利用mask屏蔽下文)

    GPT中的mask如下圖所示,mask之後要進行softmax:    向GPT的網絡結構看齊,把任務的網絡結構改造成和 GPT的網絡結構是一樣的。做法如下:

對於分類問題,不用怎麼動,加上一個起始和終結符號即可;

對於句子關係判斷問題,比如 Entailment,兩個句子中間再加個分隔符即可;

對文本相似性判斷問題,把兩個句子順序顛倒下做出兩個輸入即可,這是為了告訴模型句子順序不重要;

對於多項選擇問題,則多路輸入,每一路把文章和答案選項拼接作為輸入即可。從上圖可看出,這種改造還是很方便的,不同任務只需要在輸入部分施工即可。

效果:在 12 個任務裡,9 個達到了最好的效果,有些任務性能提升非常明顯。    OpenAI在之後又提出了GPT-2模型,論文為《Language Models are Unsupervised Multitask Learners》,結構與GPT-1相似(依然採用transformer的encoder),但是採用多任務預訓練+超大數據集+超大規模模型,所以有更好的性能表現,但是參數也增加了更多。    如上圖所示,第一組的規模和GPT一樣,第二組和BERT一樣,最後一個是GPT-2的參數量、層數和隱層大小。由於單向地用上文預測下一個單詞,GPT比BERT更適合做文本生成的任務。「   3.BERT   」 「Bidirectional Encoder Representations from Transformers"

雙向

用的是transformer的encoder(GPT用的是decoder,ELMO用的是Bi-LSTM)

多任務學習方式訓練:預測目標詞和預測下一句

Embedding

三個Embedding 求和而得,分別是:

a.Token Embeddings:詞向量,首單詞是[CLS]標誌,可用於分類任務

b.Segment Embeddings:用[SEP]標誌將句子分為兩段,因為預訓練不光做LM還要做以兩個句子為輸入的分類任務

c.Position Embeddings:和之前文章中的Transformer不同,不是三角函數而是學習出來的

預測目標詞Masked LM

隨機挑選一個句子中15%的詞,用上下文來預測。這15%中,80%用[mask]替換,10%隨機取一個詞替換,10%不變。用非監督學習的方法預測這些詞。

預測下一句 Next Sentence Prediction

選擇句子對A+B,其中50%的B是A的下一句,50%為語料庫中隨機選取

Batch Size:16 or 32

Learning Rate: 5e-5, 3e-5, 2e-5

Epochs:2, 3, 4

句子對分類任務

單句子分類任務

問答任務

單句子標註任務

tips』:可以嘗試用BERT框架去做以上四種任務的簡單實驗,便於掌握BERT結構

ELMO用Bi-LSTM,GPT用transformer的decoder,BERT用transformer的encoder

ELMO:雙向,GPT,單向,BERT:雙向

ELMO:解決一詞多義,GPT,特徵更豐富,BERT:雙向/多任務訓練/能捕捉更長距離的依賴

GPT:適合文本生成等任務(NLG任務),BERT:適合預測任務(NLU任務)

GPT-2,以及一些諸如 TransformerXL 和 XLNet 等後續出現的模型,本質上都是自回歸模型,而 BERT 則不然,雖然沒有使用自回歸機制,但 BERT 獲得了結合單詞前後的上下文信息的能力,從而取得了更好的效果。而其中XLNet雖然使用了自回歸,但引入了一種能夠同時兼顧前後的上下文信息的方法,即雙流自注意力。

「   4.XLNet   」XLNet是一個語言模型。和ELMO,GPT,BERT一脈相承,同時借鑑Transformer-XL,故稱XLNet(XL含義為衣服尺碼,意思是模型橫向更寬),其參數規模遠大於BERT

採用自回歸(AR , Autoregressive)模型替代自編碼(AE , Autoencoding )模型,解決bert中mask帶來的負面影響(預訓練和微調數據的不統一)

雙流注意力機制(新的分布計算方法,來實現目標位置感知)

引入transformer-XL

    該機制:1.預測當前的x時,只包含其位置信息,不包含內容信息 2.預測x後的其餘tokens時,包含x的內容信息    xlnet在長文本的閱讀理解類任務上性能提升更明顯,性能大幅超過Bert;XLNet的預訓練模式同時也天然符合序列生成任務,如文本摘要「    5.ERNIE   」「Enhanced Representation through Knowledge Integration」    這裡是指由百度提出的ERNIE。ERNIE是基於BERT做的優化,主要針對中文任務。ERNIE利用的仍然是 transformer 的encoder 部分,且結構一樣,但是並不共享權重,區別如下:

Transformer: 6 encoder layers, 512 hidden units, 8 attention heads

ERNIE Base: 12 encoder layers, 768 hidden units, 12 attention heads

ERNIE Large: 24 encoder layers,1024 hidden units, 16 attention heads

三種mask:字層面、短語層面、實體層面(引入外部知識,模型可獲得更可靠的語言表示)

用大量中文數據集、異質數據集

為適應多輪的貼吧數據,引入對話語言模型(DLM ,Dialogue Language Model)的任務

(ERNIE對mask機制的改進,為BERT-wwm、SpanBERT等提供了思路)

連續用大量的數據與先驗知識連續構建不同的預訓練任務(詞法級別,語法級別,語義級別)

不斷的用預訓練任務更新ERNIE 模型

第一階段,採用BERT的方式,字級別,即basic-level masking,隨機mask中文某字

第二階段,詞組級別的mask,即phrase-level masking,mask掉句子中一部分詞組(預測這些詞組的階段,詞組信息被編碼到詞向量中)

第三階段,實體級別的mask,即entity-level masking,如人名、機構名等(模型訓練完後,學到實體信息)先分析句子的實體,然後隨機mask

可以看到,BERT中只是mask了單個token,但在中文中多以短語或實體為單位,分成單字mask並不能很好地表達語義、句法等。所以ERNIE引入了三種mask方式。『DLM (Dialogue Language Model) task』:多輪對話的語料,三個句子的組合:[CLS]S1[SEP]S2[SEP]S3[SEP] ,形式為QRQ,QRR,QQR (Q:提問,R:回答  )。DLM還增加了任務來判斷這個多輪對話是真的還是假的。「  6.BERT-wwm  」    對BERT-base的改進:用[Mask]替換而非單字(中文的詞=詞語,英文的詞=word/字),如:

BERT-wwm使用的語料:中文維基+通用數據(百科、新聞、問答等數據,總詞數達5.4B)

BERT-wwm-ext使用的語料:中文維基

    不僅僅是連續mask實體詞和短語,而是連續mask所有能組成中文詞語的字。如果一個完整的詞的部分字被mask,則同屬該詞的其他部分也會被mask,即對組成同一個詞的漢字全部進行Mask,即為全詞Mask,即分詞後再mask。這樣做增加了語義信息。    (由於BERT-wwm是在BERT-base的基礎上訓練的,使用時可以無縫對接BERT,直接替換即可,不需要該文件。推薦使用在中文任務上。)「   7.RoBERTa   」「 a Robustly Optimized BERT Pretraining Approach」    RoBERTa在模型層面沒有改變BERT,改變的只是預訓練的方法。主要是在BERT的基礎上做精細化調參,可以看作是終極調參,最後性能不僅全面碾壓BERT,且在大部分任務上超越了XLNet。

訓練數據更多(160G),bert是16G

batch size更大(256到8000不等),訓練時間更長

訓練序列更長

不在使用NSP(Next Sentence Prediction)任務,移除了next predict loss

動態Masking,讓數據不重複

文本編碼採用更大的字節級別的BPE詞彙表(Byte-Pair Encoding)而Bert是字符級

BERT是靜態mask,在數據處理的過程進行;而RoBERTa採用動態mask,在每次輸入數據的時候進行(每個epoch每個sequence被MASK的方式不相同,提高隨機性)

SEGMENT-PAIR + NSP:輸入包含兩部分,每個部分是來自同一文檔或者不同文檔的 segment (segment 是連續的多個句子),這兩個segment 的token總數少於 512 。預訓練包含 MLM 任務和 NSP 任務。這是原始 BERT 的做法。

SENTENCE-PAIR + NSP:輸入也是包含兩部分,每個部分是來自同一個文檔或者不同文檔的單個句子,這兩個句子的token 總數少於 512 。由於這些輸入明顯少於512 個tokens,因此增加batch size的大小,以使 tokens 總數保持與SEGMENT-PAIR + NSP 相似。預訓練包含 MLM 任務和 NSP 任務。

FULL-SENTENCES:輸入只有一部分(而不是兩部分),來自同一個文檔或者不同文檔的連續多個句子,token 總數不超過 512 。輸入可能跨越文檔邊界,如果跨文檔,則在上一個文檔末尾添加文檔邊界token 。預訓練不包含 NSP 任務。

DOC-SENTENCES:輸入只有一部分(而不是兩部分),輸入的構造類似於FULL-SENTENCES,只是不需要跨越文檔邊界,其輸入來自同一個文檔的連續句子,token 總數不超過 512 。在文檔末尾附近採樣的輸入可以短於 512個tokens, 因此在這些情況下動態增加batch size大小以達到與 FULL-SENTENCES 相同的tokens總數。預訓練不包含 NSP 任務.

「   8.ERNIE2.0   」    ERNIE2.0是ERNIE的升級版。百度ERNIE2.0 的出現直接刷新了GLUE Benchmark。    對ERNIE的優化:多任務訓練(逐次增加7大任務)    引入Task Embedding,區別不同的任務。訓練方法:先訓練任務1,保存模型;加載模型,訓練任務1、任務2;以此類推,直到訓練完7個任務。相當於遞進式的學習,如ERNIE 1.0 突破完形填空ERNIE 2.0 突破選擇題,句子排序題等不斷遞進更新。效果:在ERNIE1.0的基礎上有全面的提升,尤其是在閱讀理解任務上「   9.BERT-wwm-ext   」    BERT-wwm-ext 是一個中文預訓練語言模型,BERT-wwm的升級版。BERT-wwm-ext採用了與BERT以及BERT-wwm一樣的模型結構,同屬base模型,由12層Transformers構成。其實就是增加數據量和訓練次數來提升效果。

數據 :DRCD,中國臺灣臺達研究院發布的數據集

BERT-wwm-ext帶來非常顯著的性能提升:

「   10.ALBERT   」    ALBERT也是採用和BERT一樣的Transformer的encoder結果,激活函數使用的也是GELU。但ALBERT用了全新的參數共享機制,參數量相比BERT來說少了很多(小10倍+)。簡單來說,就是:參數更少,效果更好。

提出了兩種減少內存的方法(因式分解、參數共享)

改進了BERT中的NSP的預訓練任務,提升了訓練速度

提升了模型效果

對Embedding進行因式分解

跨層參數共享(性能輕微降低,參數大量減少)

句間連貫性損失(SOP)

    BERT中及XLNet和RoBERTa中,詞嵌入大小 E 和隱藏層大小 H 相等的,H =E=768;而ALBERT認為,詞嵌入學習單個詞的信息,而隱藏層輸出包含上下文信息,應該 H>>E。所以ALBERT的詞向量的維度小於encoder輸出值維度。而且由於詞典較大,詞嵌入維度太大會導致,反向傳播時更新的內容稀疏。由於上述兩個原因,ALBER用了因式分解的方法降低參數量。    先把one-hot向量映射到一個低維度的空間,大小為E,然後再映射到一個高維度的空間(相當於兩次線性變換),從而把參數量從O(V×H)O(V×H)O(V×H)降低到了O(V×E+E×H)O(V×E+E×H) O(V×E+E×H)。實驗效果如下:(E=128時最佳)    Transformer中共享參數有:只共享全連接層;只共享attention層。ALBERT結合上述兩種,全連接層與attention層都進行參數共享。是減少參數的更主要的方法。參數減少很多,同時性能提升。如下圖:    除了訓練速度加快,網絡震蕩幅度也變小了(參數共享可以穩定網絡參數):3.句間連貫性損失(SOP,sentence-order prediction 句子順序預測)    【NSP 任務】正樣本:同一個文檔的兩個連續句子;負樣本:兩個連續句子交換順序    【SOP 任務】正樣本:同一個文檔的兩個連續句子;負樣本:不同文檔的句子    SOP能解決NSP的任務,但是NSP並不能解決SOP的任務。此任務的效果提升為一個點,如下圖:    在降低參數量的兩個方式中,參數共享的貢獻遠遠大於因式分解。減少總運算量,是一個複雜艱巨的任務,ALBERT在訓練時速度確實提升了,但在預測時仍然和BERT一樣。

ELMO:

https://arxiv.org/pdf/1802.05365.pdf

GPT:

https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/languageunsupervised/language_understanding_paper.pdf

BERT:

https://arxiv.org/pdf/1810.04805.pdf

XLNet:

https://arxiv.org/pdf/1906.08237.pdf

ERNIE:

https://arxiv.org/pdf/1904.09223.pdf

ELMO:

https://github.com/allenai/allennlp

GPT:

https://github.com/openai/gpt-2

BERT:

https://github.com/guotong1988/BERT-tensorflow

XLNet:

https://github.com/zihangdai/xlnet

ERNIE:

https://github.com/PaddlePaddle/ERNIE

BERT-wwm:

https://github.com/ymcui/Chinese-BERT-wwm

RoBERTa:https://github.com/brightmart/roberta_zh(中文)

https://github.com/pytorch/fairseq(英文)

ERNIE2.0:https://github.com/PaddlePaddle/ERNIE

BERT-wwm-ext:

https://drive.google.com/file/d/1buMLEjdtrXE2c4G1rpsNGWEx7lUQ0RHi/view

ALBERT:

https://github.com/brightmart/albert_zhhttps://www.cnblogs.com/zhaopAC/p/11219600.htmlhttps://baijiahao.baidu.com/s?id=1652093322137148754&wfr=spider&for=pchttps://blog.csdn.net/ljp1919/article/details/100666563https://zhuanlan.zhihu.com/p/76912493https://www.cnblogs.com/yifanrensheng/p/13167796.htmlhttps://zhuanlan.zhihu.com/p/70257427https://www.jiqizhixin.com/articles/2020-04-283https://blog.csdn.net/u012526436/article/details/101924049https://www.sohu.com/a/330319491_657157https://www.cnblogs.com/yifanrensheng/p/13167796.html


!重磅!【深度學習衝鴨技術交流二群】微信交流群已成立

額外贈送福利資源!南京大學《模式識別》PPT,2020最新版《神經網絡與深度學習》中文版pdf,李航老師《統計學習方法》(第2版)課件分享,周志華《機器學習》西瓜書手推筆記(V2.8)

獲取方式:進入群後點開群公告即可領取下載連結

相關焦點

  • 預訓練模型超全知識點梳理與面試必備高頻FAQ
    總的來看,預訓練模型PTMs的優勢包括:在龐大的無標註數據上進行預訓練可以獲取更通用的語言表示,並有利於下遊任務;為模型提供了一個更好的初始化參數,在目標任務上具備更好的泛化性能、並加速收斂;是一種有效的正則化手段,避免在小數據集上過擬合(一個隨機初始化的深層模型容易對小數據集過擬合);詞嵌入和分布式表示詞嵌入是自然語言處理
  • 預訓練模型綜述
    第 2 節按時間順序簡要概述了預訓練語言模型的整個發展歷史;第 3 節詳細介紹自然語言處理領域的經典預訓練模型;第 4 節小結了預訓練模型的優點和其對比分類;第 5 節對自然語言處理領域的預訓練語言模型的未來發展趨勢進行展望。2 預訓練模型發展歷史 早期的 PTMs 技術的目標是學習好的詞嵌入。
  • 8種優秀預訓練模型大盤點,NLP應用so easy!
    模型的作者已經設計出了基準模型,這樣我們就可以在自己的NLP數據集上使用該預訓練模型,而無需從頭開始構建模型來解決類似的問題儘管需要進行一些微調,但這為我們節省了大量的時間和計算資源在本文中展示了那些助你開始NLP之旅的頂級預訓練模型,以及該領域的最新研究成果。
  • 【NLP】預訓練模型綜述
    第 2 節按時間順序簡要概述了預訓練語言模型的整個發展歷史;第 3 節詳細介紹自然語言處理領域的經典預訓練模型;第 4 節小結了預訓練模型的優點和其對比分類;第 5 節對自然語言處理領域的預訓練語言模型的未來發展趨勢進行展望。2 預訓練模型發展歷史 早期的 PTMs 技術的目標是學習好的詞嵌入。
  • 復旦邱錫鵬教授:2020最新NLP預訓練模型綜述
    如:知識增強預訓練,多語言預訓練,多模態預訓練和模型壓縮等3、如何將PTMs學到的知識遷移到下遊的任務中。4、收集了目前關於PTMs的學習資料。5、指明PTMs未來的研究方向,如:局限、挑戰、建議。由於篇幅原因,本文主要針對前面兩點進行梳理,即「目前主流的預訓練模型」和「預訓練模型的分類體系」。
  • 機器學習|7種經典預訓練模型原理解析
    目前無論在CV領域還是NLP領域,預訓練都是一個很普遍和普適的方法。我們都知道深度學習的模型越龐大,模型參數越多,為了避免過擬合就需要相應大規模的數據集,但對於很多任務而言,樣本標註的成本昂貴。相反,大規模無標籤資料庫相對容易建立,為了充分利用這些無標記數據,我們可以先使用它們在其他一些任務上學習一個好的特徵表示,再用於訓練目標任務。
  • PTMs:NLP預訓練模型
    PTMs的發展經歷從淺層的詞嵌入到深層編碼兩個階段,按照這兩個主要的發展階段,我們歸納出PTMs兩大範式:「淺層詞嵌入」和「預訓練編碼器」。這一類「預訓練編碼器」範式的PTMs主要代表有ELMO[11]、GPT-1[12]、BERT[13]、XLNet[14]等。四、PTMs按照任務類型如何分類?PTMs按照任務類型可分為2大類:監督學習 和 無監督學習/自監督學習。
  • 乘風破浪的PTM:兩年來預訓練模型的技術進展
    預訓練模型技術本身有重大的改動或創新麼?或者,關於預訓練模型,目前有哪些相對明確的結論?根據目前的技術發展水準,如何根據現有結論,來打造最強的預訓練模型?  本文通過梳理現有技術文獻,試圖來回答上述一系列問題。本文的數據都客觀有出處,但是對數據的解讀,帶有嚴重的個人色彩,偏頗難免,還請謹慎參考。
  • 預訓練模型探索1
    本系列將對預訓練語言模型進行初步探索,本部分為第一部分,對預訓練模型的優點以及發展歷史進行簡要介紹。引言回顧近年來基於深度學習的NLP技術的重大事件,就不得不提到由ELMo/GPT/BERT帶來的預訓練模型熱潮。
  • CodeBERT: 面向程式語言和自然語言的預訓練模型
    為了進一步研究CodeBERT學到了哪些類型的知識,他們構造了第一個probing數據集,然後固定預訓練好的參數來對模型進行檢測。實驗結果顯示,CodeBERT比其他預訓練模型在probing上表現更好。
  • NLP集大成之預訓練模型綜述
    介紹預訓練模型的出現,將自然語言處理帶入了新紀元,本論文中就此綜合地介紹了自然語言的預訓練模型。預訓練模型主要有以下三個優點:可以從巨大的語料中學習表示,從而幫助到下遊任務;提供了一個很好的模型初始化結果,有著更好的泛化能力,並且能加速下遊任務的收斂。
  • 超讚,以QA形式對NLP預訓練模型進行的全面總結!
    PTMs的發展經歷從淺層的詞嵌入到深層編碼兩個階段,按照這兩個主要的發展階段,我們歸納出PTMs兩大範式:「淺層詞嵌入」和「預訓練編碼器」。預訓練編碼器第二類PTMs範式為預訓練編碼器,主要目的是通過一個預訓練的編碼器能夠輸出上下文相關的詞向量,解決一詞多義的問題。這一類預訓練編碼器輸出的向量稱之為「上下文相關的詞嵌入」。
  • RoBERTa中文預訓練模型:RoBERTa for Chinese
    本項目是用TensorFlow實現了在大規模中文上RoBERTa的預訓練,也會提供PyTorch的預訓練模型和加載方式。(roberta_l24_zh),使用30G文件訓練, 9月8日2、12層RoBERTa模型(roberta_l12_zh),使用30G文件訓練, 9月8日3、6層RoBERTa模型(roberta_l6_zh), 使用30G文件訓練, 9月8日4、PyTorch版本的模型(roberta_l6_zh_pytorch) 9月8日5、30G中文語料
  • 微軟統一預訓練語言模型UniLM 2.0解讀
    本文將就近年來基於Transformer的預訓練語言模型在NLU與NLG兩種不同訓練目標上的分化做簡單介紹,再研究UniLM 1.0如何有機地結合這兩種訓練目標,進而介紹UniLM 2.0在1.0的基礎上的變化和進步1   預訓練語言模型的分化預訓練語言模型(Pre-trained Language
  • COLING 2020 | 字符感知預訓練模型CharBERT
    基於預訓練模型的字符融合具有兩個挑戰:1)如何建模字符序列;2)如何融合字符與原有基於subword的計算。下遊任務精調NLP中絕大部分分類任務可以分成兩類:token-level分類(如序列標註)和sequence-level分類(如文本分類)。對於token-level的分類,我們將CharBERT兩個分支的表示拼接進行預測。對於sequence-level的分類,目前大部分預訓練模型使用『[CLS]』位做預測。
  • 中文預訓練模型ERNIE超詳細使用指南
    和BERT相比,ERNIE的使用更加簡單,在之前介紹過的BERT模型實戰之多文本分類(https://blog.csdn.net/Kaiyuan_sjtu/article/details/88709580)中,我們需要手動改寫一個適應自己任務的Processor,而對於ERNIE來說,簡單到只需要三步:3.1 準備工作對於最近大火的預訓練模型來說
  • 復旦大學邱錫鵬教授:NLP預訓練模型綜述
    而預訓練模型(Pre-trained Models, PTMs)的出現將NLP帶入一個新的時代,更「深」的模型和訓練技巧的增強也使得 PTMs 由「淺」變「深」,在多項任務都達到了 SOTA 性能。這一通過 PTMs 從未標註大規模數據集中提取表示的預訓練過程在很多 NLP 任務中都取得了很好的表現。預訓練的優點可以總結為以下三點:1 在大規模語料上通過預訓練學習通用語言表示對下遊任務很有幫助;2) 預訓練提供了更好的模型初始化參數,使得在目標任務上有更好的泛化性能和更快的收斂速度;3) 預訓練是一種有效的正則化方法,能夠避免在小數據集上過擬合。
  • Bart: Seq2Seq預訓練模型
    最近要開始使用Transformer去做一些事情了,特地把與此相關的知識點記錄下來,構建相關的、完整的知識結構體系,以下是要寫的文章,本文是這個系列的第十六篇:OverallTransformer最早出來是為了解決機器翻譯問題,因而Transformer
  • NLP中文預訓練模型泛化能力挑戰賽
    背景介紹中文預訓練模型的質量會影響以AI技術驅動的企業中核心業務算法的性能。比如智能客服問答,搜索推薦,安全風控,輿情分析,文字識別,信息抽取,智能打標等等,這些業務或產品都會或多或少依賴於預訓練模型提供的通用語言學知識來做遷移學習。因此打造高質量的預訓練模型是當前產業界和學術界的熱點。
  • BERT-預訓練的強大
    人的認知,往往基於數十年的生活積累,無論是Few Shot Learning還是Transfer Learning,都無法做到這一點,而與這一點最為相近的,便是預訓練。 一般來說,預訓練是指,模型通過大量的可用文本,圖像等,最大化P(X),其中,X為訓練樣本,模型的目標是讓所有樣本出現的概率儘可能達到最大。