一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個(gè)給NLP領(lǐng)域帶來(lái)革新的預(yù)訓(xùn)練語(yǔ)言大模型Bert

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:布爾NLPer ? 作者:布爾NLPer ? 2023-02-28 10:26 ? 次閱讀

引言

之前的文章和大家詳細(xì)的介紹了靜態(tài)的詞向量表示word2vec理論加實(shí)戰(zhàn),但是word2vec存在一個(gè)很大的問(wèn)題,由于是靜態(tài)詞向量所以無(wú)法表示一詞多義,對(duì)于每個(gè)詞只能有一個(gè)固定的向量表示,今天我們來(lái)介紹一個(gè)給NLP領(lǐng)域帶來(lái)革新的預(yù)訓(xùn)練語(yǔ)言大模型Bert,對(duì)比word2vec和Glove詞向量模型,Bert是一個(gè)動(dòng)態(tài)的詞向量語(yǔ)言模型,接下來(lái)將帶領(lǐng)大家一起來(lái)聊聊Bert的前世今生,感受一下Bert在自然語(yǔ)言處理領(lǐng)域的魅力吧。

1 預(yù)訓(xùn)練的演化史

NLP里面的Word Embedding預(yù)訓(xùn)練技術(shù)的演化史,從最初的靜態(tài)詞向量word2vec,到動(dòng)態(tài)預(yù)訓(xùn)練詞向量ELMO和GPT,再到今天的主角Bert預(yù)訓(xùn)練模型,這個(gè)演變過(guò)程也是整個(gè)NLP技術(shù)的發(fā)展歷程,Bert的橫空問(wèn)世直接刷新了NLP領(lǐng)域11項(xiàng)基本任務(wù)的最佳成績(jī),成為最受NLP算法工程師青睞的算法模型。

1.1 onehot編碼

one-hot編碼顧名思義,又稱(chēng)為獨(dú)熱編碼表示,之前的文章中有對(duì)onehot詞向量做詳細(xì)的介紹:

【NLP修煉系列之詞向量(一)】詳解one-hot編碼&實(shí)戰(zhàn)

1.2 word2vec詞向量

word2vec是一種靜態(tài)的詞向量表示,word2vec存在最大的問(wèn)題就是由于它是靜態(tài)詞向量表示導(dǎo)致不能表示一詞多義的情況,之前的文章有對(duì)word2vec原理和實(shí)戰(zhàn)做詳解,想了解的小伙伴可以回顧一下:

【NLP修煉系列之詞向量(二)】詳解Word2Vec原理篇

1.3 ELMO預(yù)訓(xùn)練模型

對(duì)比word2vec靜態(tài)詞向量的缺點(diǎn),為了解決這種靜態(tài)詞向量一詞多義問(wèn)題,2018年NAACL上發(fā)表了paper《Deep contextualized word representations》提出了ELMO預(yù)訓(xùn)練語(yǔ)言模型。

ELMO模型結(jié)構(gòu):

6d2436ae-b0ee-11ed-bfe3-dac502259ad0.png

ELMO的核心思想:使用兩層BiLSTM模型來(lái)學(xué)習(xí)文本深度學(xué)習(xí)層次表示,最后針對(duì)每個(gè)單詞輸出三個(gè)向量,針對(duì)于下游任務(wù)可以使用加權(quán)的方式來(lái)表征文本,一定程度上解決了一詞多義的問(wèn)題。

1.4 GPT預(yù)訓(xùn)練模型

GPT的全稱(chēng)是"Generative Pre-Traingng Transformer"的簡(jiǎn)稱(chēng),是一個(gè)生成式預(yù)訓(xùn)練模型,由論文《Deep contextualized word representations》提出。

GPT模型結(jié)構(gòu)圖:

6d469dca-b0ee-11ed-bfe3-dac502259ad0.png

GPT的核心思想:通過(guò)二段式的訓(xùn)練,第一個(gè)階段是利用語(yǔ)言模型進(jìn)行預(yù)訓(xùn)練(無(wú)監(jiān)督形式),第二階段通過(guò) Fine-tuning 的模式解決下游任務(wù)(監(jiān)督模式下)。

6d6330c0-b0ee-11ed-bfe3-dac502259ad0.png

圖(左)文章中使用的 Transformer 架構(gòu)和訓(xùn)練目標(biāo)。(右)用于微調(diào)不同任務(wù)的輸入轉(zhuǎn)換,將所有結(jié)構(gòu)化輸入轉(zhuǎn)換為令牌序列,由預(yù)訓(xùn)練模型處理,然后是線性+softmax 層。

GPT和ELMO模型一樣都是兩階段的預(yù)訓(xùn)練模型,但是不同的是,GPT特征抽取器不是用的RNN,而是用的transformer,它的特征抽取能力要強(qiáng)于RNN,其次GPT的預(yù)訓(xùn)練雖然仍然是以語(yǔ)言模型作為目標(biāo)任務(wù),但是采用的是自回歸模型,單向的transformer結(jié)構(gòu),只會(huì)根據(jù)上文信息來(lái)表示W(wǎng)ord Embedding,是一個(gè)生成式模型。

1.4 Bert預(yù)訓(xùn)練模型

BERT和ELMO、GPT有密切關(guān)系,三者直接有著共同點(diǎn)和不同點(diǎn),先給出模型結(jié)構(gòu),后面我們?cè)敿?xì)的介紹一下今天的主角Bert預(yù)訓(xùn)練語(yǔ)言模型。

6d816a04-b0ee-11ed-bfe3-dac502259ad0.png

總結(jié)一下預(yù)訓(xùn)練的幾個(gè)演變模型的關(guān)系:

one-hot編碼是離散的向量表示,離散編碼存在諸多的問(wèn)題,例如無(wú)法衡量相似數(shù)據(jù)之間的相似關(guān)系等。

word2vec是靜態(tài)的的詞向量表示,靜態(tài)詞向量之前也說(shuō)明了存在著很多的問(wèn)題,其中最大的缺點(diǎn)就是不能解決一詞多義的問(wèn)題。

相比較word2vec而言ELMO,Bert,GPT都是動(dòng)態(tài)的詞向量表示,其中ELMO不僅使用了詞向量表示詞,還加入了句法特征向量和語(yǔ)義特征向量三層embedding組合來(lái)表示詞,ELMO主要特點(diǎn)是使用了LSTM的特征提取器,自左到右和自右到左雙向的使用上下文來(lái)語(yǔ)義表示,如果ELMO將LSTM改成Transformer特征提取器就變成了Bert結(jié)構(gòu)了。

GPT使用的特征提取器是Transformer,但是是自左到右單向僅僅使用上文語(yǔ)義的自回歸生成模型,如果GPT也是使用自左到右和自右到左的雙向提取上下文語(yǔ)義就變成了Bert結(jié)構(gòu)了。

那么這么看來(lái)Bert的結(jié)構(gòu)就比較清晰了,Bert綜合了以上左右模型的“優(yōu)點(diǎn)”吧,動(dòng)態(tài)的詞向量語(yǔ)義表示,使用了強(qiáng)大的Transformer特征提取器,同時(shí)是自左到右和自右到左雙向的使用上下文來(lái)語(yǔ)義表示,可以說(shuō)Bert是集大成者。

6da9862e-b0ee-11ed-bfe3-dac502259ad0.png

2 Bert概述

Bert全稱(chēng)是“Bidirectional Encoder Representations from Transformers”,Bert是一種預(yù)訓(xùn)練語(yǔ)言模型(pre-trained language model, PLM)。Google團(tuán)隊(duì)在2018年發(fā)表文章《BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding》提出了Bert預(yù)訓(xùn)練語(yǔ)言模型,可以說(shuō)Bert的出現(xiàn)轟動(dòng)了整個(gè)NLP領(lǐng)域,自然語(yǔ)言處理領(lǐng)域開(kāi)始進(jìn)入一個(gè)新的階段。

Bert和ELMO,GPT都一樣是兩階段的任務(wù)(預(yù)訓(xùn)練+微調(diào)):

預(yù)訓(xùn)練階段(pre-training):模型將使用大量的無(wú)標(biāo)簽數(shù)據(jù)訓(xùn)練。

微調(diào)階段(fine-tuning):BERT模型將用預(yù)訓(xùn)練模型初始化所有參數(shù),這些參數(shù)將針對(duì)于下游任務(wù),比如文本分類(lèi),序列標(biāo)注任務(wù)等,微調(diào)階段需要使用有標(biāo)簽的數(shù)據(jù)進(jìn)行模型訓(xùn)練,不同的下游任務(wù)可以訓(xùn)練出不同的模型,但是每次都會(huì)使用同一個(gè)預(yù)訓(xùn)練模型進(jìn)行初始化。

6dc8c674-b0ee-11ed-bfe3-dac502259ad0.png

2.1 BERT的結(jié)構(gòu)

Bert是基于Transformer實(shí)現(xiàn)的,主要是Transformer的Encoder部分,完整架構(gòu)如下:

6ddd3f00-b0ee-11ed-bfe3-dac502259ad0.png

論文中提到的Bert主要有兩種大小,bert-base和bert-large兩個(gè)size,base版一共有110M參數(shù),large版有340M的參數(shù),總之Bert有上億的參數(shù)量。

BERT_BASE:L=12,H=768,A=12,TotalParameters=110M.

BERT_LARGE:L=24,H=1024,A=16,TotalParameters=340M.

其中 L:Transformer blocks 層數(shù);H:hidden size;A:the number of self-attention heads

2.2 Bert的輸入輸出形式

Bert的Embedding層由3個(gè)子層求和得到,分別是詞向量層Token Embedings,句子層Segment Embeddings以及位置編碼層Position Embeddings。

6dfab422-b0ee-11ed-bfe3-dac502259ad0.png

Embedding的組成:

Token Embeddings字向量:用來(lái)表征不同的詞,以及特殊的tokens,第一個(gè)單詞是CLS標(biāo)志,主要用于之后的分類(lèi)任務(wù)。

Segment Embeddings文本向量:用來(lái)區(qū)別兩個(gè)句子,來(lái)表征這個(gè)詞是屬于哪一個(gè)句子,作用于兩個(gè)句子為輸入的分類(lèi)任務(wù)。

Position Embeddings位置向量:由于出現(xiàn)在文本不同位置的字/詞所攜帶的語(yǔ)義信息存在差異,對(duì)不同位置的字/詞分別附加一個(gè)不同的向量以作區(qū)分,是隨機(jī)初始化訓(xùn)練出來(lái)的結(jié)果。

Bert輸出:

主要輸出各字對(duì)應(yīng)的融合全文語(yǔ)義信息后的向量表示。

3 Bert的預(yù)訓(xùn)練方式

預(yù)訓(xùn)練:預(yù)訓(xùn)練是通過(guò)大量無(wú)標(biāo)注的語(yǔ)言文本進(jìn)行語(yǔ)言模型的訓(xùn)練,得到一套模型參數(shù),利用這套參數(shù)對(duì)模型進(jìn)行初始化,再根據(jù)具體任務(wù)在現(xiàn)有語(yǔ)言模型的基礎(chǔ)上進(jìn)行精調(diào)。

預(yù)訓(xùn)練主要分為兩大分支,一支是自編碼語(yǔ)言模型(Autoencoder Language Model),自回歸語(yǔ)言模型(Autoregressive Language Model)。

?自回歸語(yǔ)言模型:?是根據(jù)上文內(nèi)容預(yù)測(cè)下一個(gè)可能的單詞,就是常說(shuō)的自左向右的語(yǔ)言模型任務(wù),或者反過(guò)來(lái)也行,就是根據(jù)下文預(yù)測(cè)前面的單詞。GPT 就是典型的自回歸語(yǔ)言模型。

自編碼語(yǔ)言模型:是對(duì)輸入的句子隨機(jī)Mask其中的單詞,然后預(yù)訓(xùn)練過(guò)程的主要任務(wù)之一是根據(jù)上下文單詞來(lái)預(yù)測(cè)這些被Mask掉的單詞,那些被Mask掉的單詞就是在輸入側(cè)加入的噪音。BERT就是典型的自編碼類(lèi)語(yǔ)言模型。

3.1 MLM掩碼語(yǔ)言模型(Mask Language Model)

因?yàn)锽ert就是采用自編碼的預(yù)訓(xùn)練模型,MLM就是我們理解的完形填空的問(wèn)題,隨機(jī)掩蓋掉每一個(gè)句子中15%的詞,用其上下文來(lái)去預(yù)測(cè)掩蓋的詞,但是在下游任務(wù)做微調(diào)的過(guò)程中不會(huì)出現(xiàn)mask情況,為了解決這一問(wèn)題論文中提到了一些替換策略:

80%的時(shí)間是采用[mask],mydogishairy→mydogis[MASK]

10%的時(shí)間是隨機(jī)取一個(gè)詞來(lái)代替mask的詞,mydogishairy->mydogisapple

10%的時(shí)間保持不變,mydogishairy->mydogishairy

3.2 NSP預(yù)訓(xùn)練任務(wù) (Next Sentence Prediction)

NSP任務(wù)主要是判斷兩個(gè)句子的關(guān)系,判斷兩個(gè)句子是否是前后句關(guān)系,然后用一些特殊的tokens做區(qū)分(在句子開(kāi)頭加一個(gè) [CLS],在兩句話之間和句末加 [SEP])。輸入形式是,開(kāi)頭是一個(gè)特殊符號(hào)[CLS],然后兩個(gè)句子之間用[SEP]隔斷。

正樣例:50%的句子B是真是的A后面的句子。

負(fù)樣例:50%的句子B是從語(yǔ)料中隨機(jī)選取的句子。

4 Bert的微調(diào)

Bert的4個(gè)經(jīng)典任務(wù):句子(文本)對(duì)匹配、句子(文本)分類(lèi)、問(wèn)答系統(tǒng)、序列標(biāo)注。

6e1a50ca-b0ee-11ed-bfe3-dac502259ad0.png

(1)句對(duì)分類(lèi)(Sentence Pair Classification tasks)

預(yù)測(cè)下一句、語(yǔ)義相似度等任務(wù),輸入是兩個(gè)句子A和B,中間用[SEP]分隔,最終得到的class label就表示是否下一句或者是否是語(yǔ)義相似的。

(2)單句分類(lèi)(Single Sentence Classification tasks)

文本分類(lèi)、情感分析等。輸入就是一個(gè)單獨(dú)的句子,最終的class label就是表示句子屬于哪一類(lèi)。

(3)文本問(wèn)答(Question Answering tasks)

問(wèn)答任務(wù),輸入是一個(gè)問(wèn)題和問(wèn)題對(duì)應(yīng)的段落,用[SEP]分隔,這里輸出的結(jié)果就不是某個(gè)class label而是答案在給定段落的開(kāi)始和終止位置,主要用于閱讀理解任務(wù)。

(4)序列標(biāo)注任務(wù)(Single Sentence Tagging Tasks)

常見(jiàn)的命名實(shí)體識(shí)別任務(wù),輸入就是一個(gè)單獨(dú)的句子,輸出是句子中每個(gè)token對(duì)應(yīng)的類(lèi)別標(biāo)注。

5 總結(jié)

Bert模型取得這么驚人的效果的前提是用到了強(qiáng)大的Transformer特征提取器,其次是用到了雙向的上下文語(yǔ)義表示,BERT之后衍生了各類(lèi)改進(jìn)版BERT,其中改善訓(xùn)練方式、優(yōu)化模型結(jié)構(gòu)、模型小型化等方法去優(yōu)化Bert,比較典型的有Roberta,AlBert,distilBert等更好,更快,更小的模型。


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • GPT
    GPT
    +關(guān)注

    關(guān)注

    0

    文章

    368

    瀏覽量

    15862
  • ELMOS
    +關(guān)注

    關(guān)注

    8

    文章

    33

    瀏覽量

    29013
  • Transformer
    +關(guān)注

    關(guān)注

    0

    文章

    148

    瀏覽量

    6323
  • 自然語(yǔ)言處理
    +關(guān)注

    關(guān)注

    1

    文章

    625

    瀏覽量

    13923
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    490

    瀏覽量

    22415
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    2941

    瀏覽量

    3683

原文標(biāo)題:【NLP修煉系列之Bert(一)】Bert的前世今生-理論篇

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    文詳解知識(shí)增強(qiáng)的語(yǔ)言預(yù)訓(xùn)練模型

    ,在實(shí)際應(yīng)用場(chǎng)景中效果不好。為了解決這個(gè)問(wèn)題,將知識(shí)注入到PLMs中已經(jīng)成為個(gè)非?;钴S的研究領(lǐng)域。本次分享將介紹三篇知識(shí)增強(qiáng)的預(yù)訓(xùn)練
    的頭像 發(fā)表于 04-02 17:21 ?9984次閱讀

    【大語(yǔ)言模型:原理與工程實(shí)踐】大語(yǔ)言模型的基礎(chǔ)技術(shù)

    特定任務(wù)對(duì)模型進(jìn)行微調(diào)。這種方法的成功不僅是自然語(yǔ)言處理發(fā)展的個(gè)轉(zhuǎn)折點(diǎn),還為許多現(xiàn)實(shí)世界的應(yīng)用場(chǎng)帶來(lái)了前所未有的性能提升。從廣為人知的GP
    發(fā)表于 05-05 12:17

    【大語(yǔ)言模型:原理與工程實(shí)踐】大語(yǔ)言模型預(yù)訓(xùn)練

    訓(xùn)練數(shù)據(jù)時(shí),數(shù)量、質(zhì)量和多樣性三者缺不可。 數(shù)據(jù)的多樣性對(duì)于大語(yǔ)言模型至關(guān)重要,這主要體現(xiàn)在數(shù)據(jù)的類(lèi)別和來(lái)源兩個(gè)方面。豐富的數(shù)據(jù)類(lèi)別能夠
    發(fā)表于 05-07 17:10

    用圖解的方式,生動(dòng)易懂地講解了BERT和ELMo等模型

    最新的個(gè)里程碑是BERT的發(fā)布,這事件被描述為NLP新時(shí)代的開(kāi)始。BERT
    的頭像 發(fā)表于 12-16 10:17 ?1.1w次閱讀

    圖解BERT預(yù)訓(xùn)練模型!

    BERT的發(fā)布是這個(gè)領(lǐng)域發(fā)展的最新的里程碑之,這個(gè)事件標(biāo)志著NLP 新時(shí)代的開(kāi)始。BERT模型
    的頭像 發(fā)表于 11-24 10:08 ?3911次閱讀

    基于BERT的中文科技NLP預(yù)訓(xùn)練模型

    深度學(xué)習(xí)模型應(yīng)用于自然語(yǔ)言處理任務(wù)時(shí)依賴(lài)大型、高質(zhì)量的人工標(biāo)注數(shù)據(jù)集。為降低深度學(xué)習(xí)模型對(duì)大型數(shù)據(jù)集的依賴(lài),提出種基于BERT的中文科技自
    發(fā)表于 05-07 10:08 ?14次下載

    如何向大規(guī)模預(yù)訓(xùn)練語(yǔ)言模型中融入知識(shí)?

    本文關(guān)注于向大規(guī)模預(yù)訓(xùn)練語(yǔ)言模型(如RoBERTa、BERT等)中融入知識(shí)。
    的頭像 發(fā)表于 06-23 15:07 ?4528次閱讀
    如何向大規(guī)模<b class='flag-5'>預(yù)</b><b class='flag-5'>訓(xùn)練</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>模型</b>中融入知識(shí)?

    2021 OPPO開(kāi)發(fā)者大會(huì):NLP預(yù)訓(xùn)練模型

    2021 OPPO開(kāi)發(fā)者大會(huì):NLP預(yù)訓(xùn)練模型 2021 OPPO開(kāi)發(fā)者大會(huì)上介紹了融合知識(shí)的NLP預(yù)
    的頭像 發(fā)表于 10-27 14:18 ?1872次閱讀
    2021 OPPO開(kāi)發(fā)者大會(huì):<b class='flag-5'>NLP</b><b class='flag-5'>預(yù)</b><b class='flag-5'>訓(xùn)練</b>大<b class='flag-5'>模型</b>

    如何實(shí)現(xiàn)更綠色、經(jīng)濟(jì)的NLP預(yù)訓(xùn)練模型遷移

    NLP中,預(yù)訓(xùn)練模型Finetune是種非常常見(jiàn)的解決問(wèn)題的范式。利用在海量文本上預(yù)
    的頭像 發(fā)表于 03-21 15:33 ?2391次閱讀

    Multilingual多語(yǔ)言預(yù)訓(xùn)練語(yǔ)言模型的套路

    Facebook在Crosslingual language model pretraining(NIPS 2019)文中提出XLM預(yù)訓(xùn)練語(yǔ)言
    的頭像 發(fā)表于 05-05 15:23 ?3261次閱讀

    種基于亂序語(yǔ)言模型預(yù)訓(xùn)練模型-PERT

    由于亂序語(yǔ)言模型不使用[MASK]標(biāo)記,減輕了預(yù)訓(xùn)練任務(wù)與微調(diào)任務(wù)之間的gap,并由于預(yù)測(cè)空間大小為輸入序列長(zhǎng)度,使得計(jì)算效率高于掩碼語(yǔ)言
    的頭像 發(fā)表于 05-10 15:01 ?1717次閱讀

    NLP入門(mén)之Bert的前世今生

    對(duì)于每個(gè)詞只能有個(gè)固定的向量表示,今天我們來(lái)介紹個(gè)NLP
    發(fā)表于 02-22 10:29 ?1075次閱讀
    <b class='flag-5'>NLP</b>入門(mén)之<b class='flag-5'>Bert</b>的前世今生

    PyTorch教程-15.9。預(yù)訓(xùn)練 BERT 的數(shù)據(jù)集

    實(shí)驗(yàn)室在 SageMaker Studio Lab 中打開(kāi)筆記本 為了預(yù)訓(xùn)練第 15.8 節(jié)中實(shí)現(xiàn)的 BERT 模型,我們需要以理想的格式生成數(shù)據(jù)集,以促進(jìn)兩項(xiàng)
    的頭像 發(fā)表于 06-05 15:44 ?972次閱讀

    預(yù)訓(xùn)練模型的基本原理和應(yīng)用

    預(yù)訓(xùn)練模型(Pre-trained Model)是深度學(xué)習(xí)和機(jī)器學(xué)習(xí)領(lǐng)域中的個(gè)重要概念,尤其是
    的頭像 發(fā)表于 07-03 18:20 ?3921次閱讀

    語(yǔ)言模型預(yù)訓(xùn)練

    能力,逐漸成為NLP領(lǐng)域的研究熱點(diǎn)。大語(yǔ)言模型預(yù)訓(xùn)練是這
    的頭像 發(fā)表于 07-11 10:11 ?798次閱讀