聊聊GLM基座模型的理论知识
概述
大模型有兩個(gè)流程:預(yù)訓(xùn)練和推理。
- 預(yù)訓(xùn)練是在某種神經(jīng)網(wǎng)絡(luò)模型架構(gòu)上,導(dǎo)入大規(guī)模語料數(shù)據(jù),通過一系列的神經(jīng)網(wǎng)絡(luò)隱藏層的矩陣計(jì)算、微分計(jì)算等,輸出權(quán)重,學(xué)習(xí)率,模型參數(shù)等超參數(shù)信息。
- 推理是在預(yù)訓(xùn)練的成果上,應(yīng)用超參數(shù)文件,基于預(yù)訓(xùn)練結(jié)果,根據(jù)用戶的輸入信息,推理預(yù)測其行為。
GLM模型原理的理解,就是預(yù)訓(xùn)練流程的梳理,如下流程所示:
input輸入層會(huì)預(yù)處理輸入數(shù)據(jù),在預(yù)訓(xùn)練過程中,該輸入數(shù)據(jù),其實(shí)就是預(yù)先準(zhǔn)備好的預(yù)料數(shù)據(jù)集,也就是常說的6B,130B大小的數(shù)據(jù)集。
掩碼處理
GLM統(tǒng)一了自編碼模型與自回歸模型,主要是在該處理過程實(shí)現(xiàn)的。該過程也被成為自回歸空格填充。該過程體現(xiàn)了自編碼與自回歸思想:
1、自編碼思想:在輸入文本中,隨機(jī)刪除連續(xù)的tokens,做成掩碼[MASK]。
2、自回歸思想:順序重建連續(xù)tokens。在使用自回歸方式預(yù)測缺失tokens時(shí),模型既可以訪問帶掩碼的文本,又可以訪問之前已經(jīng)被采樣的spans。
輸入可以被分成兩部分:Part A是被損壞的文本,Part B由masked spans組成。
假設(shè)原始輸入文本是,采樣的兩個(gè)文本片段是以及。那么mask后的文本序列是:,即Part A;、即PartB。
再對(duì)Part B的片段進(jìn)行shuffle。每個(gè)片段使用填充在開頭作為輸入,使用填充在末尾作為輸出。如論文中的圖所示:
掩碼處理時(shí),會(huì)隨機(jī)選擇輸入序列中的某些詞語進(jìn)行掩碼(mask)處理。掩碼的目的是讓模型學(xué)習(xí)預(yù)測那些被掩碼的詞語。讓模型能夠在預(yù)訓(xùn)練過程中更好地學(xué)習(xí)語言規(guī)律和上下文信息。
掩碼處理的流程如下:
- 輸入數(shù)據(jù)采樣:首先,從輸入文本中隨機(jī)采樣多個(gè)片段,這些片段包含了多個(gè)需要被預(yù)測的詞(即[mask]標(biāo)記)。
- 掩碼替換:在這些采樣片段中,用[mask]標(biāo)記替換掉部分詞語,形成一個(gè)被掩碼的文本。這樣,模型需要根據(jù)已給出的上下文信息來預(yù)測被掩碼的詞語。
- 自回歸預(yù)測:GLM模型采用自回歸的方式,從已給出的片段中預(yù)測被掩碼的詞語。這意味著在預(yù)測[mask]中原來的詞的同時(shí),模型可以參考之前片段的信息。
- 上下文信息利用:為了讓模型能夠更好地理解上下文信息,GLM模型將被掩碼的片段的順序打亂。這樣,模型在預(yù)測時(shí)需要參考更廣泛的上下文信息,從而提高其語言理解能力。
- 預(yù)訓(xùn)練任務(wù):通過這種方式,GLM模型實(shí)現(xiàn)了自監(jiān)督訓(xùn)練,讓模型能夠在不同的任務(wù)(如NLU、NLG和條件NLG)中表現(xiàn)更好。
從結(jié)構(gòu)化來思考,剖析下這個(gè)過程所涉及到的一些開發(fā)知識(shí)點(diǎn)。
- 隨機(jī)抽樣:在掩碼處理中,需要從輸入數(shù)據(jù)中隨機(jī)選擇一部分?jǐn)?shù)據(jù)進(jìn)行掩碼。遵循泊松分布,重復(fù)采樣,直到原始tokens中有15%被mask。
- 掩碼策略:在GLM模型中,采用了自回歸空白填充(Autoregressive Blank Infilling)的自監(jiān)督訓(xùn)練方式。這需要根據(jù)掩碼策略來生成掩碼,如根據(jù)預(yù)先設(shè)定的規(guī)則來選擇掩碼的長度和位置。這個(gè)過程涉及到組合數(shù)學(xué)和離散數(shù)學(xué)的知識(shí)。
- 掩碼填充:在生成掩碼后,需要對(duì)掩碼進(jìn)行填充。在GLM模型中,采用了特殊的填充方式,如span shuffling和2D positional encoding。這個(gè)過程涉及到線性代數(shù)和矩陣運(yùn)算的知識(shí)。
- 損失函數(shù):在掩碼處理過程中,需要根據(jù)損失函數(shù)來計(jì)算掩碼處理的效果。在GLM模型中,采用了交叉熵?fù)p失函數(shù)來衡量模型在掩碼處理任務(wù)上的表現(xiàn)。這個(gè)過程涉及到優(yōu)化理論和數(shù)值分析的知識(shí)。
位置編碼
在基于Transformer網(wǎng)絡(luò)架構(gòu)的模型中,位置編碼是必不可少的一個(gè)處理,其作用簡單來說就是在沒有顯式順序信息的情況下,為模型提供關(guān)于詞的相對(duì)位置的信息,以便讓模型理解輸入序列中的序列信息以及上下文信息。
位置編碼在GLM中,通過采用一種稱為"旋轉(zhuǎn)位置編碼"(RoPE)的方法來處理的。RoPE是一種相對(duì)位置編碼技術(shù),它能夠有效地捕捉輸入序列中不同token之間的相對(duì)位置信息。相較于傳統(tǒng)的絕對(duì)位置編碼,RoPE具有更好的外推性和遠(yuǎn)程衰減特性,能夠更好地處理長文本。
在GLM中,使用二維位置編碼,第一個(gè)位置id用來標(biāo)記Part A中的位置,第二個(gè)位置id用來表示跨度內(nèi)部的相對(duì)位置。這兩個(gè)位置id會(huì)通過embedding表被投影為兩個(gè)向量,最終都會(huì)被加入到輸入token的embedding表達(dá)中。如論文中的圖所示:
自注意力計(jì)算
自注意力機(jī)制中的矩陣計(jì)算如圖所示:
這里面的道道暫時(shí)還沒有摸清,不過計(jì)算的邏輯還是基于Tranformer網(wǎng)絡(luò)中的自注意力計(jì)算,只是這框出來的藍(lán)黃綠,其表征有點(diǎn)道道。
其它
GLM在原始single Transformer的基礎(chǔ)上進(jìn)行了一些修改:
1)重組了LN和殘差連接的順序;
2)使用單個(gè)線性層對(duì)輸出token進(jìn)行預(yù)測;
3)激活函數(shù)從ReLU換成了GeLUS。
這些修改是比較常見的,簡單了解下即可。
參考
清華ChatGLM底層原理詳解
GLM(General Language Model)論文閱讀筆記
總結(jié)
以上是生活随笔為你收集整理的聊聊GLM基座模型的理论知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鲸会务会议管理系统简介
- 下一篇: Kubernetes: client-g