一文徹底搞懂大模型 - 語(yǔ)言模型的發(fā)展歷程
語(yǔ)言模型的發(fā)展歷程
語(yǔ)言模型(LM,Language Model)的發(fā)展歷程可以清晰地劃分為三個(gè)主要階段:統(tǒng)計(jì)語(yǔ)言模型、神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型以及基于Transformer的大語(yǔ)言模型。每個(gè)階段的模型都在前一個(gè)階段的基礎(chǔ)上進(jìn)行了改進(jìn)和優(yōu)化,使得語(yǔ)言模型的性能得到了顯著提升。
語(yǔ)言模型的發(fā)展歷程
一、統(tǒng)計(jì)語(yǔ)言模型
什么是統(tǒng)計(jì)語(yǔ)言模型?統(tǒng)計(jì)語(yǔ)言模型是早期自然語(yǔ)言處理(NLP)中的重要工具,它們主要通過分析詞序列的出現(xiàn)頻率來預(yù)測(cè)下一個(gè)詞。這種方法基于統(tǒng)計(jì)學(xué)的原理,利用大規(guī)模語(yǔ)料庫(kù)中的詞頻信息來建模語(yǔ)言的概率分布。
代表模型:N-gram模型、隱馬爾可夫模型(HMM)
- N-gram模型:這是最常見的統(tǒng)計(jì)語(yǔ)言模型之一,它基于馬爾可夫假設(shè),認(rèn)為一個(gè)詞出現(xiàn)的概率僅與其前面的n-1個(gè)詞有關(guān)。N-gram模型簡(jiǎn)單易用,但存在數(shù)據(jù)稀疏和無法捕捉長(zhǎng)距離依賴關(guān)系的問題。
- 隱馬爾可夫模型(HMM):另一種重要的統(tǒng)計(jì)語(yǔ)言模型,通過引入隱藏狀態(tài)來捕捉序列數(shù)據(jù)中的潛在結(jié)構(gòu)。
統(tǒng)計(jì)語(yǔ)言模型
N-gram模型:N-gram模型是一種基于統(tǒng)計(jì)語(yǔ)言模型的文本分析算法,它用于預(yù)測(cè)文本中下一個(gè)詞出現(xiàn)的概率,基于前面出現(xiàn)的n-1個(gè)詞的序列。這里的n代表序列中元素的數(shù)量,因此稱為N-gram。
- Unigram:N=1,每個(gè)單詞的出現(xiàn)概率獨(dú)立計(jì)算,不考慮上下文。
- Bigram:N=2,基于前一個(gè)單詞預(yù)測(cè)當(dāng)前單詞的聯(lián)合概率模型。
- Trigram:N=3,考慮前兩個(gè)單詞來預(yù)測(cè)當(dāng)前單詞的聯(lián)合概率模型,更復(fù)雜但可能更準(zhǔn)確。
N-gram
N-gram模型的工作原理:N-gram模型通過統(tǒng)計(jì)語(yǔ)料庫(kù)中n-gram序列的頻率,估計(jì)給定前n-1個(gè)元素后下一個(gè)元素出現(xiàn)的概率,從而實(shí)現(xiàn)文本預(yù)測(cè)。
- 語(yǔ)料庫(kù)準(zhǔn)備:首先,需要有一個(gè)大型的文本語(yǔ)料庫(kù),用于訓(xùn)練N-gram模型。
- 計(jì)算頻率:然后,計(jì)算語(yǔ)料庫(kù)中所有可能的n-gram序列的頻率。
- 概率估計(jì):根據(jù)這些頻率,可以估計(jì)出給定n-1個(gè)詞后,下一個(gè)詞出現(xiàn)的概率。
- 預(yù)測(cè):在預(yù)測(cè)階段,給定一個(gè)詞序列的前n-1個(gè)詞,模型可以輸出下一個(gè)詞的概率分布,從而可以選擇最可能的詞作為預(yù)測(cè)結(jié)果。
N-gram
二、神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型
什么是神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型?隨著深度學(xué)習(xí)技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)開始被應(yīng)用于語(yǔ)言建模任務(wù)中。神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型通過引入神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來捕捉詞與詞之間的復(fù)雜關(guān)系,從而提高了語(yǔ)言模型的性能。
代表模型:NNLM、RNN、LSTM、GRU
- 神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型(NNLM):由Bengio等人提出,通過嵌入層將單詞映射到連續(xù)的向量空間中,并通過多個(gè)隱藏層來學(xué)習(xí)語(yǔ)言的內(nèi)部結(jié)構(gòu)。NNLM能夠捕捉詞與詞之間的語(yǔ)義關(guān)系,提高了語(yǔ)言模型的預(yù)測(cè)能力。
- 循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)及其變體(LSTM、GRU):RNN通過引入循環(huán)連接來處理序列數(shù)據(jù)中的長(zhǎng)期依賴關(guān)系。LSTM和GRU是RNN的改進(jìn)版本,通過引入門控機(jī)制來解決梯度消失或梯度爆炸問題。
神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型
NNLM:一種基于神經(jīng)網(wǎng)絡(luò)的方法來建模自然語(yǔ)言中的詞語(yǔ)序列。與傳統(tǒng)的統(tǒng)計(jì)語(yǔ)言模型(如n-gram模型)相比,NNLM能夠捕捉更復(fù)雜的語(yǔ)言結(jié)構(gòu)和語(yǔ)義信息,因?yàn)樗昧松窠?jīng)網(wǎng)絡(luò)強(qiáng)大的非線性建模能力。
- 原理:利用神經(jīng)網(wǎng)絡(luò)來預(yù)測(cè)文本序列中下一個(gè)詞或字符出現(xiàn)的概率的模型。
- 目的:通過建模詞匯之間的概率關(guān)系,實(shí)現(xiàn)自然語(yǔ)言文本的生成或理解。
NNLM
NNLM的工作原理:通過嵌入層將輸入的固定長(zhǎng)度前文單詞序列轉(zhuǎn)換為連續(xù)向量表示,然后利用一個(gè)或多個(gè)隱藏層學(xué)習(xí)這些向量的語(yǔ)言結(jié)構(gòu),最后由輸出層輸出下一個(gè)單詞的概率分布,以最大化給定前文條件下的單詞預(yù)測(cè)準(zhǔn)確性。
- 輸入:NNLM的輸入是一個(gè)固定長(zhǎng)度的前文單詞序列,用于預(yù)測(cè)下一個(gè)單詞。每個(gè)單詞通常由其詞嵌入(word embedding)表示,即將單詞映射到連續(xù)的向量空間中。
- 結(jié)構(gòu):NNLM通常包含一個(gè)嵌入層(embedding layer),用于將輸入的單詞轉(zhuǎn)換為連續(xù)向量表示;一個(gè)或多個(gè)隱藏層(hidden layers),用于學(xué)習(xí)輸入序列的語(yǔ)言結(jié)構(gòu);以及一個(gè)輸出層(output layer),輸出下一個(gè)單詞的概率分布。
- 訓(xùn)練目標(biāo):最大化給定訓(xùn)練數(shù)據(jù)中序列的聯(lián)合概率,即最大化給定前文單詞的條件下,下一個(gè)單詞出現(xiàn)的概率。這通常通過最小化負(fù)對(duì)數(shù)似然(negative log-likelihood)來實(shí)現(xiàn)。
NNLM
三、基于Transformer的大語(yǔ)言模型
什么是基于Transformer的大語(yǔ)言模型?基于Transformer的大語(yǔ)言模型在預(yù)訓(xùn)練階段利用大規(guī)模語(yǔ)料庫(kù)進(jìn)行訓(xùn)練,然后在特定任務(wù)上進(jìn)行微調(diào),取得了驚人的效果。
代表模型:BERT、GPT系列
- BERT:由Google提出的一種基于Transformer的雙向編碼器表示模型。BERT在預(yù)訓(xùn)練階段采用了遮蔽語(yǔ)言模型(Masked Language Model)和下一句預(yù)測(cè)(Next Sentence Prediction)兩個(gè)任務(wù)來訓(xùn)練模型,提高了模型的語(yǔ)言表示能力。
- GPT系列:由OpenAI開發(fā)的基于Transformer的生成式預(yù)訓(xùn)練模型。GPT系列模型在預(yù)訓(xùn)練階段采用了自回歸語(yǔ)言建模任務(wù)來訓(xùn)練模型,能夠生成連貫、自然的文本。隨著模型規(guī)模的增大(如GPT-3、GPT-4等),GPT系列模型在多個(gè)NLP任務(wù)上取得了優(yōu)異的表現(xiàn)。
基于Transformer的大語(yǔ)言模型
Transformer模型:Transformer模型由Vaswani等人在2017年提出,是一種基于自注意力機(jī)制的深度學(xué)習(xí)模型。它徹底摒棄了傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),通過自注意力機(jī)制和位置編碼來處理序列數(shù)據(jù)中的長(zhǎng)期依賴關(guān)系和位置信息。
Transformer
1.Encoder-Decoder Architecture(編碼器-解碼器架構(gòu))
- Transformer模型通常包含編碼器和解碼器兩部分。
- 編碼器負(fù)責(zé)將輸入序列轉(zhuǎn)化為上下文向量(或稱為隱藏狀態(tài)),這些向量包含了輸入序列的語(yǔ)義信息。
- 解碼器則利用這些上下文向量生成輸出序列。在生成過程中,解碼器會(huì)逐步產(chǎn)生輸出序列的每個(gè)token,并在每一步都考慮之前的輸出和編碼器的上下文向量。
2.Embedding(向量化)
- 在自然語(yǔ)言處理(NLP)中,輸入的文本內(nèi)容(如句子、段落或整個(gè)文檔)首先被拆分成更小的片段或元素,這些片段通常被稱為詞元(tokens)。
- Embedding層負(fù)責(zé)將這些tokens轉(zhuǎn)換為固定大小的實(shí)數(shù)向量,以捕捉這些tokens的語(yǔ)義信息。這個(gè)過程是通過查找一個(gè)預(yù)訓(xùn)練的嵌入矩陣來實(shí)現(xiàn)的,其中每一行代表一個(gè)token的向量表示。
3.Attention(注意力機(jī)制)
- 注意力機(jī)制的核心是計(jì)算查詢向量(Q)、鍵向量(K)和值向量(V)之間的相互作用。對(duì)于每個(gè)token,它有一個(gè)對(duì)應(yīng)的查詢向量,而整個(gè)輸入序列的tokens則共享一套鍵向量和值向量。
- 通過計(jì)算查詢向量與每個(gè)鍵向量的相似度(通常使用縮放點(diǎn)積注意力),得到一組注意力權(quán)重。這些權(quán)重表示了在生成當(dāng)前token的表示時(shí),應(yīng)該給予其他token多大的關(guān)注。
- 最后,將注意力權(quán)重應(yīng)用于值向量,并進(jìn)行加權(quán)求和,得到當(dāng)前token的自注意力輸出表示。
4.Position Encoding(位置編碼)
- 由于Transformer模型本身無法識(shí)別序列中token的位置順序,因此需要引入位置編碼來補(bǔ)充這一信息。
- 位置編碼可以是預(yù)定義的(如正弦和余弦函數(shù))或可學(xué)習(xí)的參數(shù)。這些編碼被添加到每個(gè)token的嵌入向量中,以幫助模型區(qū)分不同位置的token。
5.Multi-Head Attention(多頭注意力機(jī)制)
- 多頭注意力機(jī)制是自注意力機(jī)制的擴(kuò)展,它允許模型在不同的表示空間中同時(shí)關(guān)注信息的多個(gè)方面。
- 通過將輸入序列的嵌入向量分割成多個(gè)頭(即多個(gè)子空間),并在每個(gè)頭中獨(dú)立計(jì)算自注意力,然后將這些頭的輸出拼接在一起,最后通過一個(gè)線性變換得到最終的輸出表示。
- 多頭注意力機(jī)制能夠捕獲更復(fù)雜的語(yǔ)義關(guān)系,增強(qiáng)模型的表達(dá)能力。
6.Feed-Forward Network(前饋網(wǎng)絡(luò))
- Transformer中的編碼器和解碼器都包含前饋網(wǎng)絡(luò)(也稱為全連接層)。
- 前饋網(wǎng)絡(luò)用于進(jìn)一步處理和轉(zhuǎn)換注意力機(jī)制提取的特征,提取和整合更多有用的信息,以生成最終的輸出表示。
7. Residual Connection and Layer Normalization(殘差連接和層歸一化)
- 在Transformer的每個(gè)子層(如多頭注意力層、前饋網(wǎng)絡(luò)層)之后,都會(huì)添加殘差連接和層歸一化操作。
- 殘差連接有助于緩解深層網(wǎng)絡(luò)中的梯度消失問題,而層歸一化則有助于加速訓(xùn)練過程并提高模型的穩(wěn)定性。
Transformer