日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

分布式存储图解_BERT的youxiu变体:ALBERT论文图解介绍

發(fā)布時(shí)間:2024/8/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式存储图解_BERT的youxiu变体:ALBERT论文图解介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:amitness
編譯:ronghuaiyang
正文共: 3116 字 21 圖
預(yù)計(jì)閱讀時(shí)間: 9 分鐘
原文鏈接:BERT的youxiu變體:ALBERT論文圖解介紹?mp.weixin.qq.com

ALBERT作為BERT的一個(gè)變體,在保持性能的基礎(chǔ)上,大大減少了模型的參數(shù),使得實(shí)用變得更加方便,是經(jīng)典的BERT變體之一。

考慮下面給出的句子。作為人類,當(dāng)我們遇到“apple”這個(gè)詞時(shí),我們可以:

  • 把“apple”這個(gè)詞和我們對(duì)“apple”這個(gè)水果的表征聯(lián)系起來(lái)
  • 根據(jù)上下文將“apple”與水果聯(lián)系在一起,而不是與公司聯(lián)系在一起
  • 理解“he ate an apple”
  • 在字符級(jí),單詞級(jí)和句子級(jí)理解它

NLP最新發(fā)展的基本前提是賦予機(jī)器學(xué)習(xí)這些表示的能力。
2018年,谷歌發(fā)布了BERT,試圖基于一些新的想法來(lái)學(xué)習(xí)這個(gè)表示:

回顧: BERT

1. 掩碼語(yǔ)言建模

語(yǔ)言建模包括預(yù)測(cè)單詞的上下文,作為一種學(xué)習(xí)表示的方法。傳統(tǒng)上,這包括到當(dāng)給出前面的單詞時(shí)預(yù)測(cè)句子中的下一個(gè)單詞。

相反,BERT使用了一個(gè)掩碼語(yǔ)言模型目標(biāo),在這個(gè)模型中,我們?cè)谖臋n中隨機(jī)地對(duì)單詞進(jìn)行掩碼,并試圖根據(jù)周圍的上下文來(lái)預(yù)測(cè)它們。

2. 下一個(gè)句子預(yù)測(cè)

“下一個(gè)句子預(yù)測(cè)”的目的是檢測(cè)兩個(gè)句子是否連貫。

為此,訓(xùn)練數(shù)據(jù)中的連續(xù)句被用作一個(gè)正樣本。對(duì)于負(fù)樣本,取一個(gè)句子,然后在另一個(gè)文檔中隨機(jī)抽取一個(gè)句子放在它的旁邊。在這個(gè)任務(wù)中,BERT模型被訓(xùn)練來(lái)識(shí)別兩個(gè)句子是否可以同時(shí)出現(xiàn)。

3. Transformer結(jié)構(gòu)

為了解決上述兩項(xiàng)任務(wù),BERT使用了多層Transformer模塊作為編碼器。單詞向量被傳遞到各個(gè)層,以捕獲其含義,并為基本模型生成大小為768的向量。

Jay Alammar有一篇非常好的文章:http://jalammar.github.io/bert/,更深入地闡述了Transformer的內(nèi)部機(jī)制。

BERT的問(wèn)題

BERT發(fā)布后,在排行榜上產(chǎn)生了許多NLP任務(wù)的最新成果。但是,模型非常大,導(dǎo)致了一些問(wèn)題?!癆LBERT”論文將這些問(wèn)題分為兩類:

1、內(nèi)存限制和通信開(kāi)銷:

考慮一個(gè)包含一個(gè)輸入節(jié)點(diǎn)、兩個(gè)隱藏節(jié)點(diǎn)和一個(gè)輸出節(jié)點(diǎn)的簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)。即使是這樣一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),由于每個(gè)節(jié)點(diǎn)的權(quán)重和偏差,也會(huì)有7個(gè)參數(shù)需要學(xué)習(xí)。

BERT-large模型是一個(gè)復(fù)雜的模型,它有24個(gè)隱含層,在前饋網(wǎng)絡(luò)和注意頭中有很多節(jié)點(diǎn),所以有3.4億個(gè)參數(shù)。如果你想在BERT的基礎(chǔ)上進(jìn)行改進(jìn),你需要大量的計(jì)算資源的需求來(lái)從零開(kāi)始進(jìn)行訓(xùn)練并在其上進(jìn)行迭代

這些計(jì)算需求主要涉及gpu和TPUs,但是這些設(shè)備有內(nèi)存限制。所以,模型的大小是有限制的。

分布式訓(xùn)練是解決這個(gè)問(wèn)題的一種流行方法。我們以BERT-large上的數(shù)據(jù)并行性為例,其中訓(xùn)練數(shù)據(jù)被分到兩臺(tái)機(jī)器上。模型在兩臺(tái)機(jī)器上對(duì)數(shù)據(jù)塊進(jìn)行訓(xùn)練。如圖所示,你可以注意到在梯度同步過(guò)程中要傳輸?shù)拇罅繀?shù),這會(huì)減慢訓(xùn)練過(guò)程。同樣的瓶頸也適用于模型的并行性,即我們?cè)诓煌臋C(jī)器上存儲(chǔ)模型的不同部分。

2、模型退化

最近在NLP研究社區(qū)的趨勢(shì)是使用越來(lái)越大的模型,以獲得在排行榜上的最先進(jìn)的性能。ALBERT 的研究表明,這可能會(huì)導(dǎo)致收益退化。

在論文中,作者做了一個(gè)有趣的實(shí)驗(yàn)。

如果更大的模型可以帶來(lái)更好的性能,為什么不將最大的BERT模型(BERT-large)的隱含層單元增加一倍,從1024個(gè)單元增加到2048個(gè)單元呢?

他們稱之為“BERT-xlarge”。令人驚訝的是,無(wú)論是在語(yǔ)言建模任務(wù)還是在閱讀理解測(cè)試(RACE)中,這個(gè)更大的模型的表現(xiàn)都不如BERT-large模型。

從原文給出的圖中,我們可以看到性能是如何下降的。BERT-xlarge的性能比BERT-large差,盡管它更大并且有更多的參數(shù)。

從BERT到ALBERT

ALBERT在BERT 的基礎(chǔ)上提出了一些新穎的想法來(lái)解決這些問(wèn)題:

1、跨層參數(shù)共享

BERT-large模型有24層,而它的基礎(chǔ)版本有12層。隨著層數(shù)的增加,參數(shù)的數(shù)量呈指數(shù)增長(zhǎng)。

為了解決這個(gè)問(wèn)題,ALBERT使用了跨層參數(shù)共享的概念。為了說(shuō)明這一點(diǎn),讓我們看一下12層的BERT-base模型的例子。我們只學(xué)習(xí)第一個(gè)塊的參數(shù),并在剩下的11個(gè)層中重用該塊,而不是為12個(gè)層中每個(gè)層都學(xué)習(xí)不同的參數(shù)。

我們可以只共享feed-forward層的參數(shù),只共享注意力參數(shù),也可以共享整個(gè)塊的參數(shù)。論文對(duì)整個(gè)塊的參數(shù)進(jìn)行了共享。

與BERT-base的1.1億個(gè)參數(shù)相比,ALBERT模型只有3100萬(wàn)個(gè)參數(shù),而使用相同的層數(shù)和768個(gè)隱藏單元。當(dāng)嵌入尺寸為128時(shí),對(duì)精度的影響很小。精度的主要下降是由于feed-forward層的參數(shù)共享。共享注意力參數(shù)的影響是最小的。

跨層參數(shù)策略對(duì)性能的影響

2、句子順序預(yù)測(cè) (SOP)

BERT引入了一個(gè)叫做“下一個(gè)句子預(yù)測(cè)”的二分類損失。這是專門(mén)為提高使用句子對(duì),如“自然語(yǔ)言推斷”的下游任務(wù)的性能而創(chuàng)建的?;玖鞒虨?#xff1a;

  • 從訓(xùn)練語(yǔ)料庫(kù)中取出兩個(gè)連續(xù)的段落作為正樣本
  • 從不同的文檔中隨機(jī)創(chuàng)建一對(duì)段落作為負(fù)樣本

像ROBERTA和XLNET這樣的論文已經(jīng)闡明了NSP的無(wú)效性,并且發(fā)現(xiàn)它對(duì)下游任務(wù)的影響是不可靠的。在取消NSP任務(wù)之后,多個(gè)任務(wù)的性能都得到了提高。

因此,ALBERT提出了另一個(gè)任務(wù)**“句子順序預(yù)測(cè)”**。關(guān)鍵思想是:

  • 從同一個(gè)文檔中取兩個(gè)連續(xù)的段落作為一個(gè)正樣本
  • 交換這兩個(gè)段落的順序,并使用它作為一個(gè)負(fù)樣本

這使得模型能學(xué)習(xí)到更細(xì)粒度的關(guān)于段落級(jí)的一致性的區(qū)別。

ALBERT推測(cè)NSP是無(wú)效的,因?yàn)榕c掩碼語(yǔ)言建模相比,它并不是一項(xiàng)困難的任務(wù)。在單個(gè)任務(wù)中,它混合了主題預(yù)測(cè)和連貫性預(yù)測(cè)。主題預(yù)測(cè)部分很容易學(xué)習(xí),因?yàn)樗c掩碼語(yǔ)言建模的損失有重疊。因此,即使NSP沒(méi)有學(xué)習(xí)連貫性預(yù)測(cè),它也會(huì)給出更高的分?jǐn)?shù)。

SOP提高了下游多句編碼任務(wù)(SQUAD 1.1, 2.0, MNLI, SST-2, RACE)的性能。

在這里我們可以看到,在SOP任務(wù)上,一個(gè)經(jīng)過(guò)NSP訓(xùn)練的模型給出的分?jǐn)?shù)只比隨機(jī)基線略好一點(diǎn),但是經(jīng)過(guò)SOP訓(xùn)練的模型可以非常有效地解決NSP任務(wù)。這就證明SOP能帶來(lái)更好的學(xué)習(xí)表現(xiàn)。

3、嵌入?yún)?shù)分解

在BERT中,使用的embeddings(word piece embeddings)大小被鏈接到transformer塊的隱藏層大小。Word piece embeddings使用了大小為30,000的詞匯表的獨(dú)熱編碼表示。這些被直接投射到隱藏層的隱藏空間。

假設(shè)我們有一個(gè)大小為30K的詞匯表,大小為E=768的word-piece embedding和大小為H=768的隱含層。如果我們?cè)黾恿藟K中的隱藏單元尺寸,那么我們還需要為每個(gè)嵌入添加一個(gè)新的維度。這個(gè)問(wèn)題在XLNET和ROBERTA中也很普遍。

ALBERT通過(guò)將大的詞匯表嵌入矩陣分解成兩個(gè)小的矩陣來(lái)解決這個(gè)問(wèn)題。這將隱藏層的大小與詞匯表嵌入的大小分開(kāi)。這允許我們?cè)诓伙@著增加詞匯表嵌入的參數(shù)大小的情況下增加隱藏的大小。

我們將獨(dú)熱編碼向量投影到E=100的低維嵌入空間,然后將這個(gè)嵌入空間投影到隱含層空間H=768。

結(jié)果

  • 比BERT-large模型縮小了18x的參數(shù)
  • 訓(xùn)練加速1.7x
  • 在GLUE, RACE和SQUAD得到SOTA結(jié)果:
    • RACE:89.4%[提升45.3%]
    • GLUE Benchmark:89.4
    • SQUAD2.0 f1 score:92.2

總結(jié)

ALBERT標(biāo)志著構(gòu)建語(yǔ)言模型的重要一步,該模型不僅達(dá)到了SOTA,而且對(duì)現(xiàn)實(shí)世界的應(yīng)用也是可行的。

英文原文:https://amitness.com/2020/02/albert-visual-summary/

總結(jié)

以上是生活随笔為你收集整理的分布式存储图解_BERT的youxiu变体:ALBERT论文图解介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。