国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Transformer and Pretrain Language Models3-4

這篇具有很好參考價(jià)值的文章主要介紹了Transformer and Pretrain Language Models3-4。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Transformer structure 模型結(jié)構(gòu)

Transformer概述

首先回顧一下之前的RNN的一個(gè)端到端的模型,以下是一個(gè)典型的兩層的LSTM模型,我們可以發(fā)現(xiàn),這樣一個(gè)RNN模型,一個(gè)非常重要的一個(gè)缺點(diǎn)就在于,它必須順序地執(zhí)行,對(duì)于文本這樣一個(gè)序列,它必須先計(jì)算得到第一個(gè)位置的一個(gè)表示,然后才可以往后計(jì)算文本第二個(gè)的一個(gè)表示,然后接著才能去計(jì)算第三個(gè)。

而這樣的模式,其實(shí)對(duì)于目前并行能力非常強(qiáng)大的GPU等專業(yè)設(shè)備來說,非常不友好,會(huì)造成很多資源浪費(fèi)。

然后其次是盡管RNN有很多變體,比如說GRU、LSTM,但是它依然需要依靠前面提到的注意力機(jī)制,來解決像信息瓶頸這樣的一些問題

考慮到RNN的這些所有的缺點(diǎn),我們是否能夠拋棄RNN的模型結(jié)構(gòu)來來做文本的一些任務(wù)?這個(gè)答案顯然是肯定的,研究人員在2017年發(fā)表的這篇文章,用他們的標(biāo)題就直接回答了這個(gè)問題,這個(gè)標(biāo)題叫attention is all you need,影響很大,后期也出現(xiàn)了很多類似xxx?is all you need的論文,這篇文章中,模型作者就提出了一個(gè)非常強(qiáng)大的模型結(jié)構(gòu),來進(jìn)行機(jī)器翻譯的任務(wù),這個(gè)結(jié)構(gòu)就是接下來要講的Transformer

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

我們首先來整體看一下這樣一個(gè)Transformer 的整體結(jié)構(gòu),可以看到,它同樣是一個(gè)encoder和decoder的模型,他的encoder端我們用紅色框來框出,decoder端用藍(lán)色的部分來表示

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

我們從下往上來看這樣一個(gè)過程,首先,它的第一層是一個(gè)輸入層

輸入層:需要將一個(gè)正常的文本序列切成一個(gè)個(gè)小的單元,這里我們把這個(gè)單元叫做token,然后通過embedding可以化為一個(gè)向量表示,這里不同于RNN的地方有兩點(diǎn):

1、Transformer 會(huì)采用一種叫Byte Pair Encoding的方式,來對(duì)文本進(jìn)行切分,也就是我們常說的BPE的方法,同時(shí)在每個(gè)位置也會(huì)加上一個(gè)token的一個(gè)位置向量,也就叫positional encoding,用來表示它在文本序列中的一個(gè)位置。這兩塊我們?cè)诤竺娑紩?huì)有再詳細(xì)的介紹

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

接下來是Transformer structure的一個(gè)主要圖層部分,它是由多個(gè)encoder或者decoder的Transformer block堆疊而成的,而這種block在encoder和decoder之間會(huì)略有一些不同:

對(duì)于encoder端不同層的block以及或者decoder端不同層的block,他們的結(jié)構(gòu)式完全一致的,就是在參數(shù)上會(huì)有所不同

Transformer也是通過這樣一個(gè)堆疊方式來得到一個(gè)更深,表達(dá)能力更強(qiáng)的一個(gè)模型

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

最后模型的輸出層其實(shí)就是一個(gè)線性層的變換和一個(gè)softmax來輸出一個(gè)在詞表上的概率分布,其實(shí)這個(gè)和之前的RNN輸出層是基本一致的,在訓(xùn)練的過程中,我們也是通過詞表這樣一個(gè)維度,計(jì)算交叉熵來計(jì)算loss,進(jìn)而更新模型的一個(gè)參數(shù)

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

以上就是模型的整體情況,下面我們就逐個(gè)部分來一一地進(jìn)行講解:


input encoding輸入層(輸入編碼BPE、PE)

輸入層中首先介紹的是Byte Pair Encoding的方式,

首先想一下,如果我們要處理一個(gè)句子,這個(gè)句子是一個(gè)連續(xù)的文本,我們首先需要把這個(gè)句子給切分成一個(gè)一個(gè)的單詞,我們?cè)谥癛NN上,可能大部分情況就是直接按照空格這樣一種方式來進(jìn)行切分,這個(gè)是一個(gè)最簡(jiǎn)單的切分方式,但顯然這個(gè)方法還是有一些問題的,比如說他會(huì)導(dǎo)致詞表的數(shù)量會(huì)很大,另外,可能像一些單詞的復(fù)數(shù)和它原單詞可能就會(huì)對(duì)應(yīng)兩個(gè)完全不一樣高的embedding,這些都是使用空格切分的這種簡(jiǎn)單方式的問題

我們?cè)谶@里介紹一種全新的分詞方式,相比簡(jiǎn)單方式有很多優(yōu)點(diǎn),這是Transformer模型中使用的切分方式,它為Byte Pair Encoding,簡(jiǎn)稱為BPE,他的過程為:

它首先會(huì)將語(yǔ)料庫(kù)中出現(xiàn)的所有單詞都切分為一個(gè)一個(gè)字母,這個(gè)就是最初的詞表,隨后它通過統(tǒng)計(jì),在語(yǔ)料庫(kù)中每一個(gè)byte gram出現(xiàn)的數(shù)量,我們就可以一步一步把頻度最高的byte gram抽象成一個(gè)詞加入詞表中,然后就不斷的擴(kuò)充詞表,最后直到我們達(dá)到需要的一個(gè)詞表的一個(gè)數(shù)量,以下面的一個(gè)具體例子來看BPE構(gòu)造詞表的一個(gè)過程:

比如,我們?cè)谝粋€(gè)文本中,low這樣的單詞出現(xiàn)了5次,然后lower這樣的一個(gè)單詞出現(xiàn)了2次,newest單詞出現(xiàn)了6次,wildest出現(xiàn)了3次,我們最開始的詞表其實(shí)就是由這四個(gè)單詞,所有的這個(gè)字母組成的,隨后我們左邊還要維護(hù)一個(gè)單詞和頻率的一個(gè)對(duì)應(yīng)關(guān)系,然后我們將里面單詞所有按照字母來切分之后,我們統(tǒng)計(jì)所有的byte gram出現(xiàn)的數(shù)量,byte gram其實(shí)就是指連續(xù)兩個(gè)相鄰位置拼到一起的一個(gè)組合,比如:i和o拼到一起就是一個(gè)byte gram,o和w拼到一起就是一個(gè)byte gram。

我們可以發(fā)現(xiàn),在當(dāng)前的這樣一個(gè)語(yǔ)料庫(kù)中,es這樣的一個(gè)byte gram,其實(shí)是出現(xiàn)頻率最高的,它一共出現(xiàn)了9次,分別在newest次中出現(xiàn)了6次,wildest中出現(xiàn)了3次,這里我們就把es拼接稱為一個(gè)新的單詞加入到詞表當(dāng)中,同時(shí),因?yàn)閟這個(gè)單詞它不再會(huì)單獨(dú)出現(xiàn),所以我們將s從詞表中去除,這樣的話,新的詞表就是下面的這個(gè)情況,把s去掉后,加入es

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

隨后我們?cè)侔凑者@個(gè)新的詞表,來組合前面提到的這個(gè),左邊這個(gè)對(duì)應(yīng)關(guān)系中的一個(gè)byte gram的情況,可以看到es其實(shí)就是一個(gè)單詞,而est就是一個(gè)新的byte gram???????,在這個(gè)新的詞表和文本中,我們可以發(fā)現(xiàn)est這樣的一個(gè)byte gram出現(xiàn)的頻率最高,為9次,我們就將這樣一個(gè)新的詞拼接,變成一個(gè)新的詞加入到詞表當(dāng)中,同時(shí)由于es也不再單獨(dú)出現(xiàn),我們將它從詞表中去除

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

我們之后不斷重復(fù)這樣一個(gè)過程,直到我們的詞表數(shù)量達(dá)到預(yù)定的一個(gè)值,這樣所有出現(xiàn)在語(yǔ)料庫(kù)中的句子,其實(shí)都可以通過這樣一個(gè)詞表,切分成一個(gè)個(gè)單獨(dú)的token,就完成了我們BPE的這個(gè)過程。

BPE的提出,但是是為了解決out of vocabulary的問題,其實(shí)就是出現(xiàn)OOV的問題,即指在這個(gè)輸入的文本中,我們會(huì)出現(xiàn)了一些在詞表中沒有出現(xiàn)過的詞,這樣就導(dǎo)致模型無法理解這個(gè)新的單詞的含義,我們也沒有辦法找到對(duì)應(yīng)的這個(gè)向量表示,這時(shí)候往往會(huì)使用一個(gè)特殊的,比如說UNK這樣一個(gè)符號(hào)來代替,這個(gè)問題其實(shí)在NLP中非常常見,比如說像我們之前那樣,使用空格直接對(duì)句子進(jìn)行一個(gè)切分,勢(shì)必會(huì)很難窮舉到所有的單詞。

而BPE通過將文本序列,變成一個(gè)個(gè)sub word的一個(gè)更小的單元,就可以通過將之前沒有見過的單詞分解為一個(gè)個(gè)見過的小的sub word,就可以表示更多的單詞,比如像下面這個(gè)例子中,如果出現(xiàn)了一個(gè)新的單詞lowest,它就可以被切分成low和est兩個(gè)部分,這樣就可以對(duì)一個(gè)新的單詞進(jìn)行表示,同樣通過這樣的一個(gè)方式,也可以讓模型學(xué)會(huì)low和lowest之間的一個(gè)關(guān)系,這樣的關(guān)系也可以被泛化到,比如說像其他的單詞中比如samrt和smartest,因?yàn)樗鋵?shí)表示的是一個(gè)形容詞最高級(jí)的一個(gè)形式,并且在當(dāng)時(shí),使用BPE編碼的機(jī)器翻譯模型,其實(shí)也在很多機(jī)器翻譯的比賽中取得了非常好的效果。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

接下來我們看一下輸入層的另一個(gè)重要部分,叫做位置編碼,即positional encoding,

這個(gè)模塊出現(xiàn)的主要原因是,Transformer不同于RNN,他沒有辦法通過處理先后順序來建模每個(gè)單詞的位置對(duì)應(yīng)關(guān)系,所以,如果沒有位置編碼,Transformer block對(duì)于不同位置的相同單詞其實(shí)是沒有辦法區(qū)分的,但我們其實(shí)都知道,對(duì)于文本來說,他的一個(gè)位置關(guān)系,一個(gè)token出現(xiàn)在文本中的位置其實(shí)是非常重要的。

Transformer為了解決這個(gè)問題,就提出了一個(gè)顯示好的建模位置關(guān)系的一個(gè)方法,即:通過在原有的embedding上加上一個(gè)位置向量,然后讓不同位置單詞具有不同的表示,進(jìn)而讓Transformer block可以進(jìn)行一個(gè)區(qū)分

我們首先假設(shè)BPE得到的這個(gè)BPE和經(jīng)過embedding之后的向量的維度為d,那么我們這個(gè)位置編碼,其實(shí)也需要是一個(gè)維度為d的向量,Transformer采用了一個(gè)基于三角函數(shù)的一個(gè)方法,來得到對(duì)應(yīng)的位置向量,具體的公式如下:

其中pos表示這個(gè)當(dāng)前token在句子中的位置,它是一個(gè)從0到這個(gè)序列長(zhǎng)度的一個(gè)數(shù)

i是一個(gè)從0到二分之一d的一個(gè)數(shù),它表示當(dāng)前這個(gè)位置在embedding中的index,我們可以看到在embedding維度中的偶數(shù)位置,它其實(shí)是一個(gè)正弦函數(shù),而在奇數(shù)位,它是一個(gè)余弦函數(shù)

同樣,通過這個(gè)公式,我們也可以看到,位置編碼的一些特點(diǎn):首先是位置,一個(gè)具體的位置就是pos和它得到編碼向量其實(shí)是一一對(duì)應(yīng)的,不會(huì)出現(xiàn)說不同的位置會(huì)有相同的位置編碼向量的情況;第二個(gè)的話就是位置編碼大小其實(shí)是有界的,他不會(huì)特別大或者特別小,因?yàn)槿呛瘮?shù)是有界的;第三個(gè)根據(jù)三角函數(shù)的性質(zhì),我們可以發(fā)現(xiàn)不同位置的位置編碼向量之間的差別取決于他們之間的相對(duì)位置,我們最終輸入到每個(gè)Transformer block中的就是將BPE和PE按照位置相加得到的一個(gè)向量表示。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

為了更方便理解位置編碼向量,我們對(duì)一個(gè)簡(jiǎn)單的位置編碼進(jìn)行以下可視化:

這里展示的是一個(gè)長(zhǎng)度為10個(gè)token,維度為64的一個(gè)編碼向量

可以看到相同維度的,就是每個(gè)豎線,它其實(shí)是一個(gè)周期的正弦或者余弦函數(shù)

而相同位置,也就是每個(gè)橫線的話,它其實(shí)對(duì)應(yīng)不同周期的正弦或者余弦函數(shù)

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)


encoder block-核心(Transformer block)

右圖是截取的一個(gè)encoder端Transformer block的一個(gè)情況,encoder的情況會(huì)有一些略微的不同,我們現(xiàn)介紹encoder端的這個(gè)部分。

它的整體是由兩大塊組成的,分別是前面的這一塊叫做multi-head attention的一個(gè)網(wǎng)絡(luò),后面是feed-forward network的一個(gè)前饋神經(jīng)網(wǎng)絡(luò),它其實(shí)本質(zhì)上就是一個(gè)帶激活函數(shù)的MLP全連接。

(MLP是多層感知器(Multilayer Perceptron)的縮寫,是一種常見的人工神經(jīng)網(wǎng)絡(luò)模型)

除此之外還有兩個(gè)小技巧,第一個(gè)是殘差連接,即圖中,從主線指向add&norm的這條線,殘差其實(shí)本質(zhì)上是借鑒于計(jì)算機(jī)視覺的領(lǐng)域中的大名鼎鼎的ResNet,這樣一個(gè)結(jié)構(gòu)可以通過將它的輸入和輸出直接相加,我們就可以緩解模型過深之后帶來一個(gè)梯度消失的問題,而且這樣的一個(gè)結(jié)構(gòu)在很多計(jì)算機(jī)視覺的模型中也起到了重要的作用,這個(gè)特性也會(huì)繼續(xù)在Transformer 中發(fā)揮重要的作用,為后續(xù)我們構(gòu)建成熟很深的預(yù)訓(xùn)練模型提供了一個(gè)可能。

另一個(gè)小的技巧就是Layer normalization,正則化其實(shí)是一個(gè)比較常見的技巧,它夾在add&norm這個(gè)位置,而且有著很多變體,我們這里采用的Layer normalization,其實(shí)就是在隱向量這個(gè)維度來進(jìn)行正則化,它會(huì)將輸入的一個(gè)向量變成一個(gè)均值為0,方差為1的一個(gè)分布,這樣的一個(gè)技術(shù)其實(shí)同樣是為了針對(duì)梯度消失和梯度爆炸的問題。

(注:紅色字體相關(guān)內(nèi)容可以進(jìn)入關(guān)于大模型學(xué)習(xí)中遇到的4查看學(xué)習(xí))

(圖左下角的兩篇文章分別是以上兩個(gè)技巧的來源)

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

我們?cè)赥ransformer中這里用到的一個(gè)注意力機(jī)制其實(shí)是一種基于點(diǎn)積的注意力機(jī)制,相比于前面學(xué)習(xí)的在RNN中使用的一些注意力機(jī)制可能略有不同,但主要思想是一致的,我們首先簡(jiǎn)單回顧一下前面學(xué)習(xí)的注意力機(jī)制,它就是給定一個(gè)query向量和value向量的集合,我們通過注意力機(jī)制就可以基于query向量對(duì)value向量進(jìn)行一個(gè)加權(quán)平均。

而在Transformer中,我們不同的是,它給定的是一個(gè)query向量和一個(gè)k向量和value向量對(duì)的一個(gè)集合,其中query向量和k向量的維度都是dk,value向量的維度是dv,這樣的這個(gè)輸出,同樣是對(duì)value向量的一個(gè)加權(quán)平均,只不過不同于之前用q和v來計(jì)算注意力分?jǐn)?shù),我們這里采用q和k的點(diǎn)積來計(jì)算注意力分?jǐn)?shù),也就是以下公式提到的這個(gè)q和ki和kj的一個(gè)點(diǎn)積,最后還是會(huì)得到一個(gè)長(zhǎng)度為n的一個(gè)注意力分?jǐn)?shù),然后通過使用softmax,我們就可以將這樣一個(gè)注意力分?jǐn)?shù),變?yōu)橐粋€(gè)注意力分布,一個(gè)概率分布,進(jìn)而就可以對(duì)得到的v向量進(jìn)行一個(gè)加權(quán)平均,也就是這樣一個(gè)attention的一個(gè)輸出。同樣如果我們有很多個(gè)q向量,它就可以組成一個(gè)矩陣Q,我們對(duì)每一個(gè)q向量都進(jìn)行上述的這樣一個(gè)操作,其實(shí)更直接地,我們可以用一個(gè)矩陣的乘法,來表示這個(gè)過程,這樣最后得到的這個(gè)公式非常簡(jiǎn)潔,而且易于實(shí)現(xiàn),最重要的是,通過這個(gè)公式,我們可以發(fā)現(xiàn)公式中的q,其實(shí)它的計(jì)算是互不干擾的,是可以并行進(jìn)行的,更方便我們?cè)贕PU等設(shè)備上進(jìn)行并行的一個(gè)運(yùn)算。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

下面我們用一個(gè)圖示來解釋一下這個(gè)attention的過程:

首先這里有3個(gè)矩陣:Q、KT、V。其中Q k都是二乘三的一個(gè)情況,然后我們首先將Q、K矩陣進(jìn)行一個(gè)矩陣乘法,就可以得到一個(gè)二乘二的Attention Score注意力分?jǐn)?shù),這個(gè)注意力分?jǐn)?shù)第一行就是第一個(gè)query向量和兩個(gè)k向量進(jìn)行點(diǎn)積的結(jié)果,第二行就是第二個(gè)query向量和兩個(gè)k向量進(jìn)行點(diǎn)積的結(jié)果,隨后我們對(duì)每一行都結(jié)算一個(gè)softmax,就可以得到一個(gè)注意力的一個(gè)分布,他的每一行就是一個(gè)概率分布,然后求和為1

隨后我們將這樣一個(gè)注意力分布和它對(duì)應(yīng)的value矩陣進(jìn)行一個(gè)矩陣乘法,我們就可以看到,其實(shí)得到的output第一個(gè)向量,就是用前兩個(gè)值對(duì)兩個(gè)v向量進(jìn)行加權(quán)平均,最后得到二乘三的output

以上基本就是attention在做的主要的一個(gè)事情。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

在前面attention的一個(gè)基礎(chǔ)上,我們進(jìn)一步需要加入一個(gè)scaled系數(shù),就是一個(gè)完整的scaled dot-product attention模塊,這個(gè)也就是在Transformer中使用的一個(gè)attention的一個(gè)情況,首先我們還是看一下,前面如果沒有這個(gè)scaled技術(shù)他的一些問題:

因?yàn)槲覀冞@里的注意力分?jǐn)?shù)的計(jì)算方式是通過q和k的點(diǎn)積實(shí)現(xiàn)的,如果在正常情況下,q和k的點(diǎn)積它得到的這個(gè)標(biāo)量的這個(gè)方差,它會(huì)隨著dk的增加而變大,這個(gè)其實(shí)如果在之后作用到softmax函數(shù)里面,就會(huì)出現(xiàn)一個(gè)問題是,它得到的概率分布會(huì)變得更加尖銳,然后某些有某個(gè)位置可能會(huì)變?yōu)?,其他大部分文字的這個(gè)概率分布都非常接近0,這樣導(dǎo)致的結(jié)果就是梯度可能會(huì)變得越來越小,不利于進(jìn)行參數(shù)的一個(gè)更新。

這里提供了一個(gè)解決方案,將q和k在點(diǎn)積之后除以一個(gè)根號(hào)k的方式,然后這樣可以表示,得到這個(gè)注意力分?jǐn)?shù)的方差它依然為1,來防止上述這樣問題的一個(gè)出現(xiàn)。

右邊的圖完整的展示了這樣一個(gè)attention的過程

我們?cè)賮碇匦吕硪幌?,首先是q和這個(gè)其中這個(gè)mask這個(gè)位置,我們會(huì)在decoder中體現(xiàn)。其次我們可以看到Q和K進(jìn)行一個(gè)矩陣乘法,得到對(duì)應(yīng)的一個(gè)注意力分?jǐn)?shù)matmul,然后通過scaled系數(shù),即根號(hào)k,來將其這個(gè)規(guī)模進(jìn)行一個(gè)放縮。然后再通過softmax,將這樣一個(gè)注意力分?jǐn)?shù)變成了一個(gè)概率分布,隨后通過預(yù)對(duì)應(yīng)的V矩陣進(jìn)行一個(gè)矩陣乘法,就可以對(duì)v矩陣實(shí)現(xiàn)一個(gè)加權(quán)平均,也就是我們得到的最后一個(gè)輸出。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

前面提到的K、Q、V也是用這三個(gè)字母表示,但其實(shí)因?yàn)槲覀冞@個(gè)attention,使用的是一種自注意力機(jī)制,我們希望的是,模型能夠自己每個(gè)token能夠自主地選擇,應(yīng)該關(guān)注這句話中的哪些token,并進(jìn)行信息整合,所以,對(duì)應(yīng)到K、Q、V這三個(gè)矩陣,其實(shí)他們都是從文本的表示向量乘上一個(gè)變換矩陣得到的,而對(duì)于非第一層的Transformer block來說,文本的表示向量其實(shí)就是前面一層的輸出,而對(duì)于第一層的block來說,這樣一個(gè)表示文本的表示向量,其實(shí)就是我們前面提到的這個(gè)詞表向量和對(duì)應(yīng)位置編碼的一個(gè)求和。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

在上述單個(gè)attention的一個(gè)基礎(chǔ)上,Transformer 為了進(jìn)一步增強(qiáng)模型的一個(gè)表示能力,它采用了多個(gè)結(jié)構(gòu)相同但參數(shù)不同的一個(gè)注意力模塊,組成了一個(gè)多頭的注意力機(jī)制。

其中每個(gè)注意力頭的一個(gè)計(jì)算方式都和前面介紹的是完全一致的,只不過每一個(gè)頭,它都會(huì)有一個(gè)自己的權(quán)重矩陣WiQ、WiK、WiV,就分別對(duì)應(yīng)這個(gè)linear這個(gè)位置。

每個(gè)注意力頭通過前面提到的這種方式得到自己的這個(gè)輸出之后,我們將這些輸出在維度層面進(jìn)行一個(gè)拼接,然后通過一個(gè)線性層進(jìn)行整合,就得到了我們多頭注意力機(jī)制的一個(gè)輸出??梢钥吹竭@樣一個(gè)多頭注意力機(jī)制,他的輸入就是前一層的輸出或者是輸入的時(shí)候embedding和位置編碼的一個(gè)相加。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

然后它輸出的文本,就會(huì)通過這個(gè)殘差連接和正則化之后就會(huì)輸入到后面的前饋神經(jīng)網(wǎng)絡(luò),這樣我們就走完了Transformer block的一個(gè)過程。

(注:紅色字體相關(guān)內(nèi)容可以進(jìn)入關(guān)于大模型學(xué)習(xí)中遇到的4查看學(xué)習(xí))

我們?cè)僦匦驴匆幌逻@個(gè)機(jī)構(gòu),他還是兩個(gè)主要的部分:第一個(gè)部分是一個(gè)多頭的注意力機(jī)制,第二部分還是剛才提到的前饋神經(jīng)網(wǎng)絡(luò)。其實(shí)本質(zhì)上它還是一個(gè)兩層的全連接,通過這樣一個(gè)過程,他們完成了文本和不同位置文本之間的一個(gè)交互,然后中間的殘差連接和正則化,也起到防止梯度消失的問題。

K、Q、V這三個(gè)字母本質(zhì)上它都是從文本的表示中得到的,每個(gè)Transformer block的一個(gè)輸入其實(shí)就是前一層的輸出,或者說是input層的一個(gè)輸出,所以這樣導(dǎo)致的一個(gè)情況就是每個(gè)Transformer block他可以完全堆疊在一起,然后形成組合,成為一個(gè)更深的一個(gè)神經(jīng)網(wǎng)絡(luò),然后也就是這個(gè)用n來表示他的一個(gè)數(shù)量,在原始的論文中,encoder端一共堆疊了6個(gè)block。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)


Transformer decoder block

前面介紹的是encoder端每個(gè)block的一個(gè)內(nèi)部的一個(gè)結(jié)構(gòu),對(duì)于decoder端其實(shí)大體上是一致的,但有兩個(gè)簡(jiǎn)單的修改。

第一個(gè)修改就在于,最開始它并不是一個(gè)multi-head的特性,而是一個(gè)加了一個(gè)mask的這樣一個(gè)詞,這個(gè)所謂的mask,就是通過限制得到的q和k相乘的得到的注意力分?jǐn)?shù)的上三角那部分,變成一個(gè)負(fù)無窮大,這樣我們經(jīng)過softmax之后,那些位置對(duì)應(yīng)的概率都會(huì)變?yōu)榱?,使得模型無法在當(dāng)前輸出的這個(gè)步驟的時(shí)候,看到后面的單詞,后面我們會(huì)用一個(gè)具體的例子來介紹。

另一個(gè)部分的話,就是中間加入的這個(gè)encode端r和decoder端的attention,這個(gè)結(jié)構(gòu)其實(shí)和前面提到的multi-head attention完全一致,不同的地方在于,它輸入的q向量query向量,它是來自于decoder,而k向量和v向量其實(shí)是來自于encoder最后一層的一個(gè)輸出,通過這個(gè)部分,有些類似于之前所介紹的端到端模型中的注意力機(jī)制,它是為了幫助decoder端每一步生成都可以關(guān)注和整合encoder端每個(gè)位置的信息而設(shè)計(jì)的

同樣的是,這樣的一個(gè)decoder端的Transformer block,它也可以進(jìn)行堆疊,在原論文中也是一共堆疊了6層。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

現(xiàn)在我們來說一下剛才提到的mask的multi-head attebtion的一個(gè)具體的一個(gè)計(jì)算方式,

可以看到輸入還是相同的QKV三個(gè)矩陣,和之前一樣的是,通過Q和K矩陣進(jìn)行一個(gè)矩陣乘法,可以得到一個(gè)注意力分?jǐn)?shù),之后就是mask的一個(gè)操作:把左對(duì)角線的上三角部分,也就是最右上角的這個(gè)值變?yōu)橐粋€(gè)無窮大,而一個(gè)負(fù)無窮大導(dǎo)致的結(jié)果就是,我們?cè)谟?jì)算softmax之后,右上角這個(gè)值會(huì)變?yōu)?,這樣的話,通過矩陣乘法,第一個(gè)位置,即,第一行的輸出,它其實(shí)只是第一個(gè)v向量乘上了第一個(gè)值,而0會(huì)導(dǎo)致第二個(gè)v向量,他對(duì)output第一行是沒有幫助的。第二行的話其實(shí)是和原來一樣的,這個(gè)保證了我們decoder端在文本生成的時(shí)候,它是順序生成的,不會(huì)出現(xiàn)我們?cè)谏傻趇個(gè)未知的時(shí)候,參考了第i+1個(gè)位置的信息這樣一個(gè)情況,那之后我們從人類我們自己是從左到右來進(jìn)行書寫或者文本創(chuàng)作也好,這個(gè)邏輯和順序是保持一致的。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

下面就是一個(gè)完整的一個(gè)Transformer block過程:

在推理階段,模型首先會(huì)生成第一個(gè)字母i,進(jìn)行拼接,然后再生成下一個(gè)am……逐個(gè)生成這樣的token,然后每個(gè)位置的輸出,都會(huì)拼接到decoder輸入后面,最后完成整個(gè)句子的一個(gè)輸出。

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)

Transformer and Pretrain Language Models3-4,大模型,transformer,語(yǔ)言模型,深度學(xué)習(xí)文章來源地址http://www.zghlxwxcb.cn/news/detail-819976.html

到了這里,關(guān)于Transformer and Pretrain Language Models3-4的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • LLaMA Open and Efficient Foundation Language Models

    LLaMA Open and Efficient Foundation Language Models

    來源Meta AI github地址: facebookresearch/ llama 論文:LLaMA: Open and Efficient Foundation Language Models 模型:目前可以在huggingface上直接下載,https://huggingface.co/decapoda-research 包括: LLaMA-7B LLaMA-13B LLaMA-33B LLaMA-65B 一、摘要 我們介紹了LLaMA,這是一組從7B到65B參數(shù)范圍內(nèi)的基礎(chǔ)語(yǔ)言模型。我們

    2024年02月11日
    瀏覽(27)
  • LLaMA:Open and Efficient Foundation Language Models

    LLaMA:Open and Efficient Foundation Language Models

    在大規(guī)模數(shù)據(jù)下訓(xùn)練的大模型,已經(jīng)展示了很好的表現(xiàn),當(dāng)模型足夠大的時(shí),模型會(huì)出現(xiàn)一個(gè) 涌現(xiàn) 的能力,如下圖: 最近的一項(xiàng)研究表明,在有限的算力下,表現(xiàn)最好的模型不是參數(shù)最大的,而是小一點(diǎn)模型搭配了更多數(shù)據(jù)。 這項(xiàng)工作的重點(diǎn)是訓(xùn)練一系列語(yǔ)言模型,通過對(duì)

    2024年02月09日
    瀏覽(22)
  • LLaMA: Open and Efficient Foundation Language Models

    LLaMA: Open and Efficient Foundation Language Models

    用最少的計(jì)算資源,解決了LLM大模型預(yù)測(cè)問題,訓(xùn)練了一些列的LLaMa模型,在參數(shù)量比較少的情況下,達(dá)到業(yè)界大模型效果。 主要貢獻(xiàn)就是提升了LLM模型的訓(xùn)練速度和效率,在小容量的基礎(chǔ)上,大大提升了模型的效果。 同時(shí)由于模型結(jié)構(gòu)更小更簡(jiǎn)單,大大提升了推理速度。

    2024年02月13日
    瀏覽(24)
  • LLaMA: Open and Efficient Foundation Language Models筆記

    LLaMA: Open and Efficient Foundation Language Models筆記

    一個(gè)基礎(chǔ)語(yǔ)言模型的集合,參數(shù)范圍從7B到65B 在數(shù)萬(wàn)億的token上訓(xùn)練的模型,不依賴于專有的和不可訪問的數(shù)據(jù)集 大多數(shù)基準(zhǔn)測(cè)試中優(yōu)于GPT-3 (175B) LLaMA65B與最好的模型Chinchilla-70B和PaLM-540B具有競(jìng)爭(zhēng)力 全部模型開源??! 最近的工作表明,對(duì)于給定的計(jì)算預(yù)算,最佳性能不是由最

    2024年02月09日
    瀏覽(27)
  • 論文筆記--LLaMA: Open and Efficient Foundation Language Models

    論文筆記--LLaMA: Open and Efficient Foundation Language Models

    標(biāo)題:LLaMA: Open and Efficient Foundation Language Models 作者:Touvron, Hugo, et al. 日期:2023 期刊:arxiv preprint ??文章利用公開數(shù)據(jù)集訓(xùn)練并發(fā)布了一系列大語(yǔ)言模型LLaMA,在多個(gè)NLP下游任務(wù)中性能超過了GPT-3和PALM等模型。 English CommonCrawl(67%): 訓(xùn)練集的大部分構(gòu)成為2017~2020年間的Com

    2024年02月09日
    瀏覽(32)
  • 文獻(xiàn)閱讀:LLaMA: Open and Efficient Foundation Language Models

    文獻(xiàn)閱讀:LLaMA: Open and Efficient Foundation Language Models

    文獻(xiàn)閱讀:LLaMA: Open and Efficient Foundation Language Models 1. 文章簡(jiǎn)介 2. 模型訓(xùn)練 1. 訓(xùn)練數(shù)據(jù) 2. 模型結(jié)構(gòu) 3. 模型訓(xùn)練 1. Optimizer 2. 效率優(yōu)化 3. 效果評(píng)估 1. 經(jīng)典任務(wù)下效果 1. Commen Sense Reasoning 2. Closed-book Question Answering 3. Reading Comprehension 4. Mathematical reasoning 5. Code generation 6. Massive M

    2024年02月09日
    瀏覽(29)
  • LLaMA(Open and Efficient Foundation Language Models )論文解讀(二)

    LLaMA(Open and Efficient Foundation Language Models )論文解讀(二)

    此篇博客主題:LLAMA模型數(shù)據(jù)、訓(xùn)練時(shí)長(zhǎng)、功耗及碳排放量 LLaMA: Open and Efficient Foundation Language Models paper https://arxiv.org/pdf/2302.13971v1.pdf Overall, our entire training dataset contains roughly 1.4T tokens after tokenization. For most of our training data, each token is used only once during training, with the exception of t

    2024年02月16日
    瀏覽(25)
  • Unifying Large Language Models and Knowledge Graphs: A Roadmap

    Unifying Large Language Models and Knowledge Graphs: A Roadmap

    ? 知識(shí)圖嵌入(KGE)旨在將每個(gè)實(shí)體和關(guān)系映射到一個(gè)低維向量(嵌入)空間中。這些嵌入包含KGs的語(yǔ)義和結(jié)構(gòu)信息,可用于各種任務(wù),如問答[182]、推理[38]和推薦[183]。傳統(tǒng)的知識(shí)圖嵌入方法主要依靠知識(shí)圖的結(jié)構(gòu)信息來優(yōu)化嵌入上定義的評(píng)分函數(shù)(如TransE[25]和DisMult[184])。然而,

    2024年02月12日
    瀏覽(24)
  • AN OVERVIEW OF LANGUAGE MODELS RECENT DEVELOPMENTS AND OUTLOOK

    AN OVERVIEW OF LANGUAGE MODELS RECENT DEVELOPMENTS AND OUTLOOK

    LLM系列相關(guān)文章,針對(duì)《AN OVERVIEW OF LANGUAGE MODELS: RECENT DEVELOPMENTS AND OUTLOOK》的翻譯。 語(yǔ)言建模研究文本串上的概率分布。它是自然語(yǔ)言處理中最基本的任務(wù)之一。它已被廣泛用于文本生成、語(yǔ)音識(shí)別、機(jī)器翻譯等。傳統(tǒng)的語(yǔ)言模型(CLM)旨在以因果方式預(yù)測(cè)語(yǔ)言序列的概率,

    2024年02月17日
    瀏覽(24)
  • 2023-arxiv-LLaMA: Open and Efficient Foundation Language Models

    2023-arxiv-LLaMA: Open and Efficient Foundation Language Models

    Paper:https://arxiv.org/abs/2302.13971 Code: https://github.com/facebookresearch/llama 本文介紹了 LLaMA,這是?個(gè)包含 7B 到 65B 參數(shù)的基礎(chǔ)語(yǔ)?模型的集合。作者在數(shù)萬(wàn)億個(gè)令牌上訓(xùn)練模型,并表明可以僅使?公開可?的數(shù)據(jù)集來訓(xùn)練最先進(jìn)的模型。特別是, LLaMA-13B 在?多數(shù)基準(zhǔn)測(cè)試中都優(yōu)于

    2024年02月12日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包