精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

谷歌BERT模型的主體結(jié)構(gòu)和創(chuàng)新點(diǎn)介紹 雙向語言模型的引入

DPVg_AI_era ? 來源:未知 ? 作者:工程師飛燕 ? 2018-10-21 09:38 ? 次閱讀

近日,谷歌AI團(tuán)隊(duì)新發(fā)布的BERT模型,在NLP業(yè)內(nèi)引起巨大反響,認(rèn)為是NLP領(lǐng)域里程碑式的進(jìn)步。BERT的創(chuàng)新點(diǎn)在哪里?潘晟鋒對(duì)這篇論文進(jìn)行了深度解讀。

最近谷歌研究人員通過新的BERT模型在11項(xiàng)NLP任務(wù)中奪得STOA結(jié)果,這在自然語言處理學(xué)界以及工業(yè)界都引起了不小的熱議。

作者通過在33億文本的語料上訓(xùn)練語言模型,再分別在不同的下游任務(wù)上微調(diào),這樣的模型在不同的任務(wù)均得到了目前為止最好的結(jié)果,并且有一些結(jié)果相比此前的最佳成績(jī)得到了幅度不小的提升。

作者的這一研究其實(shí)是今年深度學(xué)習(xí)在自然語言處理中一個(gè)新熱點(diǎn)方向的延續(xù),故事還得從更早一點(diǎn)說起。

谷歌BERT模型的主體結(jié)構(gòu)和創(chuàng)新點(diǎn)介紹 雙向語言模型的引入

BERT的“前任”們

早在2015年的時(shí)候,微軟研究院的何凱明和他的同事們發(fā)表了殘差網(wǎng)絡(luò)的論文,第一次通過殘差的方式將卷積神經(jīng)網(wǎng)絡(luò)推進(jìn)到了100層以上,并在圖像識(shí)別的任務(wù)上刷新了當(dāng)時(shí)的最高紀(jì)錄。自那以后起,隨著網(wǎng)絡(luò)不斷地加深,效果也在不斷提升。然而大量的數(shù)據(jù)訓(xùn)練出來的大型網(wǎng)絡(luò)雖然效果更好,但隨著網(wǎng)絡(luò)的加深以及數(shù)據(jù)集的不斷擴(kuò)大,完全重新訓(xùn)練一個(gè)模型所需要的成本也在不斷地增加。

因此在計(jì)算機(jī)視覺處理中,人們?cè)絹碓蕉嗟夭捎?strong>預(yù)訓(xùn)練好的大型網(wǎng)絡(luò)來提取特征,然后再進(jìn)行后續(xù)任務(wù)。目前這種處理方式已經(jīng)是圖像處理中很常見的做法了。

相比之下,自然語言處理目前通常會(huì)使用預(yù)訓(xùn)練的詞向量來進(jìn)行后續(xù)任務(wù)。但詞向量是通過淺層網(wǎng)絡(luò)進(jìn)行無監(jiān)督訓(xùn)練,雖然在詞的級(jí)別上有著不錯(cuò)的特性,但卻缺少對(duì)連續(xù)文本的內(nèi)在聯(lián)系和語言結(jié)構(gòu)的表達(dá)能力。因此大家也希望能像圖像領(lǐng)域那樣,通過大量數(shù)據(jù)來預(yù)訓(xùn)練一個(gè)大型的神經(jīng)網(wǎng)絡(luò),然后用它來對(duì)文本提取特征去做后續(xù)的任務(wù),以期望能得到更好的效果。其實(shí)這一方向的研究一直在持續(xù),直到今年的早些時(shí)候AllenAI提出的[ELMo](https://arxiv.org/pdf/1802.05365.pdf)由于其在后續(xù)任務(wù)上的優(yōu)異表現(xiàn)獲得了不小的關(guān)注。

在ELMo獲得成功以后不久FastAI就推出了[ULMFiT](https://arxiv.org/abs/1801.06146),其大體思路是在微調(diào)時(shí)對(duì)每一層設(shè)置不同的學(xué)習(xí)率。此后OpenAI又提出了[GPT](https://blog.openai.com/language-unsupervised/)。

從上面提及的這些論文的結(jié)果以及學(xué)界和工業(yè)界的反饋來看,這種使用大量的語料進(jìn)行預(yù)訓(xùn)練,然后再在預(yù)訓(xùn)練好的模型上進(jìn)行后續(xù)任務(wù)訓(xùn)練,雖然訓(xùn)練方式各有不同,但在后續(xù)任務(wù)都有不同程度的提高。

而谷歌提出的BERT就是在OpenAI的GPT的基礎(chǔ)上對(duì)預(yù)訓(xùn)練的目標(biāo)進(jìn)行了修改,并用更大的模型以及更多的數(shù)據(jù)去進(jìn)行預(yù)訓(xùn)練,從而得到了目前為止最好的效果。

Transformer的編碼器結(jié)構(gòu)

BERT的主體結(jié)構(gòu)和創(chuàng)新點(diǎn)

BERT模型沿襲了GPT模型的結(jié)構(gòu),采用[Transfomer](https://arxiv.org/abs/1706.03762)的編碼器作為主體模型結(jié)構(gòu)。Transformer舍棄了RNN的循環(huán)式網(wǎng)絡(luò)結(jié)構(gòu),完全基于注意力機(jī)制來對(duì)一段文本進(jìn)行建模。

Transformer所使用的注意力機(jī)制的核心思想是去計(jì)算一句話中的每個(gè)詞對(duì)于這句話中所有詞的相互關(guān)系,然后認(rèn)為這些詞與詞之間的相互關(guān)系在一定程度上反應(yīng)了這句話中不同詞之間的關(guān)聯(lián)性以及重要程度。因此再利用這些相互關(guān)系來調(diào)整每個(gè)詞的重要性(權(quán)重)就可以獲得每個(gè)詞新的表達(dá)。這個(gè)新的表征不但蘊(yùn)含了該詞本身,還蘊(yùn)含了其他詞與這個(gè)詞的關(guān)系,因此和單純的詞向量相比是一個(gè)更加全局的表達(dá)。

Transformer通過對(duì)輸入的文本不斷進(jìn)行這樣的注意力機(jī)制層和普通的非線性層交疊來得到最終的文本表達(dá)。

Transformer的注意力層得到的詞-詞之間關(guān)系

GPT則利用了Transformer的結(jié)構(gòu)來進(jìn)行單向語言模型的訓(xùn)練。所謂的語言模型其實(shí)是自然語言處理中的一種基礎(chǔ)任務(wù),其目標(biāo)是給定一個(gè)序列文本,預(yù)測(cè)下一個(gè)位置上會(huì)出現(xiàn)的詞。

模型學(xué)習(xí)這樣的任務(wù)過程和我們?nèi)藢W(xué)習(xí)一門語言的過程有些類似。我們學(xué)習(xí)語言的時(shí)候會(huì)不斷地練習(xí)怎么選用合適的詞來造句,對(duì)于模型來說也這樣。例如:

> 今天 天氣 不錯(cuò), 我們 去 公園 玩 吧。

這句話,單向語言模型在學(xué)習(xí)的時(shí)候是從左向右進(jìn)行學(xué)習(xí)的,先給模型看到“今天 天氣”兩個(gè)詞,然后告訴模型下一個(gè)要填的詞是“不錯(cuò)”。然而單向語言模型有一個(gè)欠缺,就是模型學(xué)習(xí)的時(shí)候總是按照句子的一個(gè)方向去學(xué)的,因此模型學(xué)習(xí)每個(gè)詞的時(shí)候只看到了上文,并沒有看到下文。更加合理的方式應(yīng)該是讓模型同時(shí)通過上下文去學(xué)習(xí),這個(gè)過程有點(diǎn)類似于完形填空題。例如:

>今天 天氣 { }, 我們 去 公園 玩 吧。

通過這樣的學(xué)習(xí),模型能夠更好地把握“不錯(cuò)”這個(gè)詞所出現(xiàn)的上下文語境。

而BERT對(duì)GPT的第一個(gè)改進(jìn)就是引入了雙向的語言模型任務(wù)。

此前其實(shí)也有一些研究在語言模型這個(gè)任務(wù)上使用了雙向的方法,例如在ELMo中是通過雙向的兩層RNN結(jié)構(gòu)對(duì)兩個(gè)方向進(jìn)行建模,但兩個(gè)方向的loss計(jì)算相互獨(dú)立。

而BERT的作者指出這種兩個(gè)方向相互獨(dú)立或只有單層的雙向編碼可能沒有發(fā)揮最好的效果,我們可能不僅需要雙向編碼,還應(yīng)該要加深網(wǎng)絡(luò)的層數(shù)。但加深雙向編碼網(wǎng)絡(luò)卻會(huì)引入一個(gè)問題,導(dǎo)致模型最終可以間接地“窺探”到需要預(yù)測(cè)的詞。這個(gè)“窺探”的過程可以用下面的圖來表示:

從圖中可以看到經(jīng)過兩層的雙向操作,每個(gè)位置上的輸出就已經(jīng)帶有了原本這個(gè)位置上的詞的信息了。這樣的“窺探”會(huì)導(dǎo)致模型預(yù)測(cè)詞的任務(wù)變得失去意義,因?yàn)槟P鸵呀?jīng)看到每個(gè)位置上是什么詞了。

為了解決這個(gè)問題,我們可以從預(yù)訓(xùn)練的目標(biāo)入手。我們想要的其實(shí)是讓模型學(xué)會(huì)某個(gè)詞適合出現(xiàn)在怎樣的上下文語境當(dāng)中;反過來說,如果給定了某個(gè)上下文語境,我們希望模型能夠知道這個(gè)地方適合填入怎樣的詞。從這一點(diǎn)出發(fā),其實(shí)我們可以直接去掉這個(gè)詞,只讓模型看上下文,然后來預(yù)測(cè)這個(gè)詞。但這樣做會(huì)丟掉這個(gè)詞在文本中的位置信息,那么還有一種方式是在這個(gè)詞的位置上隨機(jī)地輸入某一個(gè)詞,但如果每次都隨機(jī)輸入可能會(huì)讓模型難以收斂。

BERT的作者提出了采用MaskLM的方式來訓(xùn)練語言模型。

通俗地說就是在輸入一句話的時(shí)候,隨機(jī)地選一些要預(yù)測(cè)的詞,然后用一個(gè)特殊的符號(hào)來代替它們。盡管模型最終還是會(huì)看到所有位置上的輸入信息,但由于需要預(yù)測(cè)的詞已經(jīng)被特殊符號(hào)代替,所以模型無法事先知道這些位置上是什么詞,這樣就可以讓模型根據(jù)所給的標(biāo)簽去學(xué)習(xí)這些地方該填的詞了。

然而這里還有一個(gè)問題,就是我們?cè)陬A(yù)訓(xùn)練過程中所使用的這個(gè)特殊符號(hào),在后續(xù)的任務(wù)中是不會(huì)出現(xiàn)的。

因此,為了和后續(xù)任務(wù)保持一致,作者按一定的比例在需要預(yù)測(cè)的詞位置上輸入原詞或者輸入某個(gè)隨機(jī)的詞。當(dāng)然,由于一次輸入的文本序列中只有部分的詞被用來進(jìn)行訓(xùn)練,因此BERT在效率上會(huì)低于普通的語言模型,作者也指出BERT的收斂需要更多的訓(xùn)練步數(shù)。

BERT另外一個(gè)創(chuàng)新是在雙向語言模型的基礎(chǔ)上額外增加了一個(gè)句子級(jí)別的連續(xù)性預(yù)測(cè)任務(wù)。這個(gè)任務(wù)的目標(biāo)也很簡(jiǎn)單,就是預(yù)測(cè)輸入BERT的兩端文本是否為連續(xù)的文本,作者指出引入這個(gè)任務(wù)可以更好地讓模型學(xué)到連續(xù)的文本片段之間的關(guān)系。在訓(xùn)練的時(shí)候,輸入模型的第二個(gè)片段會(huì)以50%的概率從全部文本中隨機(jī)選取,剩下50%的概率選取第一個(gè)片段的后續(xù)的文本。

除了模型結(jié)構(gòu),模型大小和數(shù)據(jù)量都很重要

以上的描述涵蓋了BERT在模型結(jié)構(gòu)和訓(xùn)練目標(biāo)上的主要?jiǎng)?chuàng)新點(diǎn),而BERT的成功還有一個(gè)很大的原因來自于模型的體量以及訓(xùn)練的數(shù)據(jù)量。

BERT訓(xùn)練數(shù)據(jù)采用了英文的開源語料BooksCropus 以及英文維基百科數(shù)據(jù),一共有33億個(gè)詞。同時(shí)BERT模型的標(biāo)準(zhǔn)版本有1億的參數(shù)量,與GPT持平,而BERT的大號(hào)版本有3億多參數(shù)量,這應(yīng)該是目前自然語言處理中最大的預(yù)訓(xùn)練模型了。

當(dāng)然,這么大的模型和這么多的數(shù)據(jù),訓(xùn)練的代價(jià)也是不菲的。谷歌用了16個(gè)自己的TPU集群(一共64塊TPU)來訓(xùn)練大號(hào)版本的BERT,一共花了4天的時(shí)間。對(duì)于是否可以復(fù)現(xiàn)預(yù)訓(xùn)練,作者在[Reddit]( https://www.reddit.com/r/MachineLearning/comments/9nfqxz/r_bert_pretraining_of_deep_bidirectional/?utm_campaign=NLP%20News&utm_medium=email&utm_source=Revue%20newsletter)上有一個(gè)大致的回復(fù),指出OpenAI當(dāng)時(shí)訓(xùn)練GPT用了將近1個(gè)月的時(shí)間,而如果用同等的硬件條件來訓(xùn)練BERT估計(jì)需要1年的時(shí)間。不過他們會(huì)將已經(jīng)訓(xùn)練好的模型和代碼開源,方便大家訓(xùn)練好的模型上進(jìn)行后續(xù)任務(wù)。

雖然訓(xùn)練的代價(jià)很大,但是這個(gè)研究還是帶來了一些思考和啟發(fā)。例如雙向語言模型的運(yùn)用,多任務(wù)對(duì)預(yù)訓(xùn)練的幫助以及模型深度帶來的收益。相信在未來的一段時(shí)間,自然語言處理中預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)語言模型會(huì)得到更多的關(guān)注和運(yùn)用。

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

    關(guān)注

    27

    文章

    6142

    瀏覽量

    105110
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5493

    瀏覽量

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

    關(guān)注

    1

    文章

    487

    瀏覽量

    22012
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    圖解2018年領(lǐng)先的兩大NLP模型BERT和ELMo

    谷歌推出BERT模型被認(rèn)為是NLP新時(shí)代的開始,NLP終于找到了一種方法,可以像計(jì)算機(jī)視覺那樣進(jìn)行遷移學(xué)習(xí)。本文用圖解的方式,生動(dòng)易懂地講解了BERT和ELMo等
    發(fā)表于 01-03 10:21 ?2161次閱讀

    語言模型背后的Transformer,與CNN和RNN有何不同

    ? 電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)近年來,隨著大語言模型的不斷出圈,Transformer這一概念也走進(jìn)了大眾視野。Transformer是一種非常流行的深度學(xué)習(xí)模型,最早于2017年由谷歌
    的頭像 發(fā)表于 12-25 08:36 ?3825次閱讀
    大<b class='flag-5'>語言</b><b class='flag-5'>模型</b>背后的Transformer,與CNN和RNN有何不同

    【大語言模型:原理與工程實(shí)踐】揭開大語言模型的面紗

    。隨著深度學(xué)習(xí)技術(shù)的崛起,神經(jīng)網(wǎng)絡(luò)為語言模型注入了新的活力。循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和長短時(shí)記憶網(wǎng)絡(luò)(LSTM)的引入,為處理序列數(shù)據(jù)提供了更強(qiáng)大的工具。LSTM通過其獨(dú)特的網(wǎng)絡(luò)結(jié)構(gòu),能
    發(fā)表于 05-04 23:55

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

    下游任務(wù)提供豐富的文本表示,如谷歌公司推出的BERT。(2) Decoder-Only 預(yù)訓(xùn)練語言模型:這類模型一般使用單向的 Decode
    發(fā)表于 05-05 12:17

    【大語言模型:原理與工程實(shí)踐】大語言模型的應(yīng)用

    、娛樂等行業(yè),推動(dòng)這些領(lǐng)域的創(chuàng)新和發(fā)展。例如,大語言模型可能會(huì)生成創(chuàng)新性的藝術(shù)、音樂、故事和其他文藝作品,為人類帶來全新的藝術(shù)體驗(yàn)。同時(shí),提示工程可以指導(dǎo)大
    發(fā)表于 05-07 17:21

    語言模型:原理與工程時(shí)間+小白初識(shí)大語言模型

    開拓深度學(xué)習(xí)的思路。對(duì)于新涌現(xiàn)的大語言模型的能力,主要是表現(xiàn)在學(xué)習(xí)能力的提升、語言理解和生成能力、創(chuàng)新和探索的能力。 基礎(chǔ)技術(shù) 詞表示技術(shù) 詞表示一般分為三種,主要是詞的獨(dú)熱表示(On
    發(fā)表于 05-12 23:57

    【《大語言模型應(yīng)用指南》閱讀體驗(yàn)】+ 基礎(chǔ)篇

    今天開始學(xué)習(xí)《大語言模型應(yīng)用指南》第一篇——基礎(chǔ)篇,對(duì)于人工智能相關(guān)專業(yè)技術(shù)人員應(yīng)該可以輕松加愉快的完成此篇閱讀,但對(duì)于我還是有許多的知識(shí)點(diǎn)、專業(yè)術(shù)語比較陌生,需要網(wǎng)上搜索學(xué)習(xí)更多的資料才能理解書中
    發(fā)表于 07-25 14:33

    BERT模型的PyTorch實(shí)現(xiàn)

    BertModel是一個(gè)基本的BERT Transformer模型,包含一個(gè)summed token、位置和序列嵌入層,然后是一系列相同的self-attention blocks(BERT-base是12個(gè)blocks,
    的頭像 發(fā)表于 11-13 09:12 ?1.4w次閱讀

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

    BERT的發(fā)布是這個(gè)領(lǐng)域發(fā)展的最新的里程碑之一,這個(gè)事件標(biāo)志著NLP 新時(shí)代的開始。BERT模型打破了基于語言處理的任務(wù)的幾個(gè)記錄。在 BERT
    的頭像 發(fā)表于 11-24 10:08 ?3621次閱讀

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

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

    知識(shí)圖譜與BERT相結(jié)合助力語言模型

    感謝清華大學(xué)自然語言處理實(shí)驗(yàn)室對(duì)預(yù)訓(xùn)練語言模型架構(gòu)的梳理,我們將沿此脈絡(luò)前行,探索預(yù)訓(xùn)練語言模型的前沿技術(shù),紅框中為已
    的頭像 發(fā)表于 05-19 15:47 ?3693次閱讀
    知識(shí)圖譜與<b class='flag-5'>BERT</b>相結(jié)合助力<b class='flag-5'>語言</b><b class='flag-5'>模型</b>

    如何使用BERT模型進(jìn)行抽取式摘要

    for Extractive Summarization》,主要介紹了如何使用BERT模型進(jìn)行抽取式(Extractive)摘要。
    的頭像 發(fā)表于 03-12 16:41 ?4768次閱讀
    如何使用<b class='flag-5'>BERT</b><b class='flag-5'>模型</b>進(jìn)行抽取式摘要

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

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

    谷歌大型模型終于開放源代碼,遲到但重要的開源戰(zhàn)略

    在人工智能領(lǐng)域,谷歌可以算是開源的鼻祖。今天幾乎所有的大語言模型,都基于谷歌在 2017 年發(fā)布的 Transformer 論文;谷歌的發(fā)布
    發(fā)表于 02-22 18:14 ?414次閱讀
    <b class='flag-5'>谷歌</b>大型<b class='flag-5'>模型</b>終于開放源代碼,遲到但重要的開源戰(zhàn)略

    谷歌發(fā)布新型大語言模型Gemma 2

    在人工智能領(lǐng)域,大語言模型一直是研究的熱點(diǎn)。近日,全球科技巨頭谷歌宣布,面向全球研究人員和開發(fā)人員,正式發(fā)布了其最新研發(fā)的大語言模型——Ge
    的頭像 發(fā)表于 06-29 09:48 ?407次閱讀