大語(yǔ)言模型

  • 什么是大語(yǔ)言模型
  • Transformer模型
    encoder-decoder框架
    attention機(jī)制與self-attention機(jī)制

BERT模型
GPT-2模型

一壮莹、大語(yǔ)言模型的定義

大語(yǔ)言模型指的是那些在大規(guī)模文本語(yǔ)料上訓(xùn)練评腺、包含百億級(jí)別(或更多)參數(shù)的語(yǔ)言模型,是一系列的人工智能模型,旨在理解和生成人類(lèi)語(yǔ)言侍瑟。它們?cè)诖罅康奈谋緮?shù)據(jù)上進(jìn)行訓(xùn)練,可以執(zhí)行廣泛的任務(wù),包括文本總結(jié)能曾、翻譯、情感分析等等肿轨。

LLM的特點(diǎn)是規(guī)模龐大寿冕,包含數(shù)十億的參數(shù),幫助它們學(xué)習(xí)語(yǔ)言數(shù)據(jù)中的復(fù)雜模式椒袍。這些模型通惩粘基于深度學(xué)習(xí)架構(gòu),如轉(zhuǎn)化器驹暑,這有助于它們?cè)诟鞣NNLP任務(wù)上取得令人印象深刻的表現(xiàn)曙蒸。

目前的大語(yǔ)言模型(如GPT和BERT)采用與小模型類(lèi)似的Transformer架構(gòu)預(yù)訓(xùn)練目標(biāo)(如 Language Modeling)捌治,與小模型的主要區(qū)別在于增加模型大小、訓(xùn)練數(shù)據(jù)和計(jì)算資源纽窟。拿 GPT 來(lái)說(shuō)肖油,GPT 其實(shí)出現(xiàn)了好幾代,GPT-3 它有 45 tb 的訓(xùn)練數(shù)據(jù)臂港,整個(gè)維基百科里面的數(shù)據(jù)只相當(dāng)于他訓(xùn)練數(shù)據(jù)的 0. 6%森枪。

二、Transformer

首先介紹 Transformer 的整體結(jié)構(gòu)审孽,下圖是 Transformer 用于中英文翻譯的整體結(jié)構(gòu):


基本框架

Encoder-Decoder框架——attention機(jī)制——Transformer——BERT/GPT

2.1 Encoder-Decoder(編碼-解碼)

Encoder:將可變長(zhǎng)度的輸入序列編碼成一個(gè)固定長(zhǎng)度的向量县袱;
Decoder:將固定長(zhǎng)度的向量解碼成一個(gè)可變長(zhǎng)度的輸出序列;
不同的任務(wù)可以選擇不同的編碼器和解碼器 (RNN佑力,CNN式散,LSTM,GRU)打颤。

2.11 簡(jiǎn)單回顧RNN

RNN模型

假設(shè)時(shí)刻t時(shí)暴拄,輸入為xt ,隱藏層狀態(tài)為ht 编饺,可以看到ht 與當(dāng)前輸入xt 和上一時(shí)刻的隱藏層狀態(tài)有關(guān)

2.12 編碼與解碼

通過(guò)RNN進(jìn)行編碼乖篷,t時(shí)刻的ht 可以表示為ht=f(ht-1,xt),在獲得各個(gè)時(shí)刻的隱藏狀態(tài)后,最終在T時(shí)刻透且,將信息匯總生成最后的語(yǔ)義編碼c

在解碼過(guò)程中同樣用RNN進(jìn)行解碼撕蔼,用st來(lái)表示隱藏層狀態(tài),可以看到隱藏層的狀態(tài)更新秽誊,不僅跟上一時(shí)刻的隱藏層輸出st-1和當(dāng)前時(shí)刻的輸入c有關(guān)鲸沮,還跟上一時(shí)刻的輸出yt-1有關(guān):
st=f(st-1,yt-1,c
因此我們預(yù)測(cè)下一個(gè)輸出ytp(yt|{y1,y2,...,yt-1},c)=g(st,y1,c) ,這里g函數(shù)一般為softmax函數(shù)锅论。

Encoder-Decoder結(jié)構(gòu)可以忽略傳統(tǒng)RNN模型對(duì)于語(yǔ)序的要求讼溺,但是也有局限性。最大的局限性就在于編碼和解碼之間的唯一聯(lián)系就是一個(gè)固定長(zhǎng)度的語(yǔ)義向量c棍厌。它能儲(chǔ)存的信息就是有限的肾胯,當(dāng)句子長(zhǎng)度不斷變長(zhǎng),由于后方的decoder網(wǎng)絡(luò)的所有信息都來(lái)自中間狀態(tài)耘纱,中間狀態(tài)需要表達(dá)的信息就越來(lái)越多敬肚。

2.2 Attention 機(jī)制

簡(jiǎn)單的說(shuō),模型在產(chǎn)生輸出的時(shí)候束析,需要讓其產(chǎn)生一個(gè)“注意力范圍”表示接下來(lái)輸出的時(shí)候要重點(diǎn)關(guān)注輸入序列中的哪些部分艳馒,然后根據(jù)關(guān)注的區(qū)域來(lái)產(chǎn)生下一個(gè)輸出,如此往復(fù)。模型的大概示意圖如下所示 :


對(duì)于Decoder的隱藏層弄慰,就變成了st=f(st-1,yt-1,ct)第美,其中ct指的是在t時(shí)刻encoder模塊的隱藏層ht加權(quán)平均的結(jié)果。
帶有Attention的Encoder-Decoder網(wǎng)絡(luò)的迭代過(guò)程就是如下幾步:

  • Encoder網(wǎng)絡(luò)按照原來(lái)的方法計(jì)算出h1,h2,...ht
  • 計(jì)算Decoder網(wǎng)絡(luò)陆爽,對(duì)于第k個(gè)輸出詞語(yǔ),計(jì)算出得到ck所需要的h1,h2,...ht的權(quán)重αk,由此得到ck
  • sk-1,yk-1,ck帶入g(sk-1,yk-1,ck)得到sk,并帶入網(wǎng)絡(luò)得到輸出yk
  • 重復(fù)直到網(wǎng)絡(luò)輸出<end>什往。
    (如何計(jì)算權(quán)重:設(shè)計(jì)一個(gè)以si,hj為輸入的網(wǎng)絡(luò)用softmax算概率作為權(quán)重)
2.21 self-attention

Query、Value 慌闭、Key
attention函數(shù)可以理解為利用向量key和value將一次查詢(xún)進(jìn)行映射的過(guò)程别威。


做法:針對(duì)某query,計(jì)算所有key對(duì)query的點(diǎn)乘,為了減少方差驴剔,除以sqrt(dk)省古,并使用softmax歸一化該權(quán)重,最后和value點(diǎn)乘得到輸出丧失。由于每個(gè)輸出僅與所欲的輸入有關(guān)豺妓,所以我們可以并行計(jì)算多個(gè)查詢(xún)。多個(gè)query形成矩陣Q布讹,同時(shí)多個(gè)key和value形成矩陣K琳拭、V,因此attention函數(shù)的計(jì)算公式:

2.3 transformer模型


:輸入 + 中間部分(Multi-Head Attention + FeedForward + Add & Normalize)+ 輸出

2.31 輸入層

encoder的輸入層和decoder的輸入層是一樣的結(jié)構(gòu)炒事,都是token embedding(詞向量)+ positional embedding(位置向量)臀栈,得到最終的輸入向量蔫慧。(為什么要用位置向量:因?yàn)?Transformer 不采用 RNN 的結(jié)構(gòu)挠乳,而是使用全局信息,不能利用單詞的順序信息姑躲,而這部分信息對(duì)于 NLP 來(lái)說(shuō)非常重要睡扬。所以 Transformer 中使用位置 Embedding 保存單詞在序列中的相對(duì)或絕對(duì)位置。)

token embedding 有很多種方式可以獲取黍析,例如可以采用 Word2Vec卖怜、Glove 等算法預(yù)訓(xùn)練得到,也可以在 Transformer 中訓(xùn)練得到阐枣。

positional embedding可以用正余弦進(jìn)行編碼
2.32 Encoder

Multi-Head Attention


Add & Normalize
殘差連接就是將輸入向量加上輸出向量后傳給下一層马靠。例如:假設(shè)一個(gè)輸入向量x,經(jīng)過(guò)一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)蔼两,得到輸出向量f(x)甩鳄,即:x->f(x),這時(shí)加上殘差連接额划,相當(dāng)于在輸出向量中加入輸入向量妙啃,輸出結(jié)構(gòu)變?yōu)?em>f(x)+x。這樣就避免了梯度消失的問(wèn)題,因?yàn)閷?duì)x求偏導(dǎo)時(shí)揖赴,總會(huì)有一個(gè)常數(shù)項(xiàng)1馆匿。
因此,Add & Normalize層的實(shí)質(zhì)是燥滑,輸出向量經(jīng)過(guò)殘差連接與輸入向量相加然后通過(guò)LayerNorm進(jìn)行歸一化渐北,將最后結(jié)果向量傳給下一層。
Feed Forward
是一個(gè)兩層的全連接層铭拧,第一層的激活函數(shù)為 Relu腔稀,第二層不使用激活函數(shù)。

通過(guò)上面描述的 Multi-Head Attention, Feed Forward, Add & Norm 就可以構(gòu)造出一個(gè) Encoder block羽历,通過(guò)多個(gè) Encoder block 疊加就可以組成 Encoder焊虏。
第一個(gè) Encoder block 的輸入為句子單詞的表示向量矩陣,后續(xù) Encoder block 的輸入是前一個(gè) Encoder block 的輸出秕磷,最后一個(gè) Encoder block 輸出的矩陣就是編碼信息矩陣 C诵闭,這一矩陣后續(xù)會(huì)用到 Decoder 中。

2.34 Decoder

與 Encoder block 相似澎嚣,但是存在一些區(qū)別:包含兩個(gè) Multi-Head Attention 層疏尿。

  • 第一個(gè) Multi-Head Attention 層采用了 Masked 操作。
  • 第二個(gè) Multi-Head Attention 層的K, V矩陣使用 Encoder 的編碼信息矩陣C進(jìn)行計(jì)算易桃,而Q使用上一個(gè) Decoder block 的輸出計(jì)算褥琐。

最后有一個(gè) Softmax 層計(jì)算下一個(gè)翻譯單詞的概率。

流程總結(jié):
  1. encoder層
  • 每個(gè)詞向量(token embedding)? 對(duì)應(yīng)的位置向量(positional embedding)=> 每個(gè)詞的輸入向量x
  • 輸入向量通過(guò)多頭自注意力機(jī)制(Multi-Head Attention)得到的向量與輸入向量進(jìn)行殘差連接與歸一化(Add & Normalize)向量向量
  • 將歸一化得到的每個(gè)詞的向量繼續(xù)做前向神經(jīng)網(wǎng)絡(luò)(Feed Forward)
  • 最后再進(jìn)行一次殘差連接與歸一化(Add & Normalize)

此時(shí)一層encoder層結(jié)束晤郑,將得到的結(jié)果向量當(dāng)成輸入向量繼續(xù)傳給第二層的encoder敌呈,依次傳遞計(jì)算,直到6層encoder計(jì)算結(jié)束造寝,將最后結(jié)果向量保留磕洪,之后會(huì)傳給decoder層計(jì)算。

  1. decoder層
  • 當(dāng)前詞及之前詞的詞向量(token embedding)? 對(duì)應(yīng)的位置向量(positional embedding)=> 當(dāng)前詞及之前詞的輸入向量x
  • 輸入向量x同樣經(jīng)過(guò)mask的多頭自注意力機(jī)制(Multi-Head Attention)處理和殘差連接與歸一化
  • 對(duì)歸一化的輸出繼續(xù)進(jìn)行Attention處理诫龙,這層的k析显、v是來(lái)自于encoder層的結(jié)果,而q是本身上一層的結(jié)果
  • 接下來(lái)幾步和上面encoder的步驟是一樣的签赃,最后得到結(jié)果向量谷异,作為decoder第二層的輸入向量。然后依次進(jìn)行以上步驟锦聊,直到6層decoder全部計(jì)算結(jié)束歹嘹。

3.linear和softmax輸出

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市括丁,隨后出現(xiàn)的幾起案子荞下,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尖昏,死亡現(xiàn)場(chǎng)離奇詭異仰税,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)抽诉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)陨簇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人迹淌,你說(shuō)我怎么就攤上這事河绽。” “怎么了唉窃?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵耙饰,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我纹份,道長(zhǎng)苟跪,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任蔓涧,我火速辦了婚禮件已,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘元暴。我一直安慰自己篷扩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布茉盏。 她就那樣靜靜地躺著鉴未,像睡著了一般。 火紅的嫁衣襯著肌膚如雪援岩。 梳的紋絲不亂的頭發(fā)上歼狼,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天掏导,我揣著相機(jī)與錄音享怀,去河邊找鬼。 笑死趟咆,一個(gè)胖子當(dāng)著我的面吹牛添瓷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播值纱,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鳞贷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了虐唠?” 一聲冷哼從身側(cè)響起搀愧,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后咱筛,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體搓幌,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年迅箩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了溉愁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡饲趋,死狀恐怖拐揭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情奕塑,我是刑警寧澤堂污,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站龄砰,受9級(jí)特大地震影響敷鸦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寝贡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一扒披、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧圃泡,春花似錦碟案、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至风秤,卻和暖如春鳖目,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缤弦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工领迈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碍沐。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓狸捅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親累提。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尘喝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容