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