一文徹底搞懂大模型 - GPT 和 LlaMA 的模型架構
GPT 與 LlaMA,作爲大語言模型的兩大巨擘,均基於 Transformer 架構卻各有千秋。GPT 系列以強大的生成能力著稱,通過不斷增大的參數規模引領複雜語言與推理任務的前沿;而 Llama 則以開源姿態,通過技術創新提升模型性能,預示着多模態擴展的未來,爲 AI 生態的多樣性和開放性貢獻力量。
一、GPT
**什麼是 GPT?****GPT 模型,全稱爲 Generative Pre-trained Transformer,是由 OpenAI 團隊開發的一種基於深度學習的自然語言處理(NLP)模型。**該模型通過無監督學習的方式,對大規模文本進行學習和抽象概括,進而通過微調的方式用於各種特定的自然語言處理任務。
GPT
**GPT 的版本迭代:**OpenAI GPT 模型自發布以來,已經歷了多個版本的迭代升級,每個版本都在前一版本的基礎上進行了改進和優化。
GPT 的版本迭代
-
GPT-1:這是 GPT 系列的第一個版本,發佈於 2018 年。**GPT-1 具有 1.17 億個參數,使用 Transformer 的 Decoder 結構作爲基礎,並採用了預訓練的語言模型。**它在多項自然語言處理任務上取得了很好的表現,如文本生成、機器翻譯和閱讀理解等。
-
GPT-2:GPT-2 是 GPT 系列的第二個版本,發佈於 2019 年。相比於 GPT-1,GPT-2 在模型規模和預訓練數據上都有了顯著的提升。**GPT-2 的參數數量增加到了 15 億,並使用了更多的預訓練數據。**這些改進使得 GPT-2 在生成任務上表現出了更強的創造力和語言理解能力,能夠生成更長、更連貫的文本。
-
GPT-3:GPT-3 是 GPT 系列的第三個版本,發佈於 2020 年。**GPT-3 具有驚人的 1750 億個參數。**這一巨大的模型規模使得 GPT-3 能夠處理更加複雜和多樣的自然語言處理任務,包括文本生成、翻譯、問答和文本分類等。GPT-3 在預訓練過程中使用了大量的互聯網文本數據,進一步提升了其性能和泛化能力。
-
GPT-4:GPT-4 是 GPT 系列的第四個版本,發佈於 2023 年 3 月。**GPT-4 是一款具有廣泛應用的大型、多模態模型。**與之前的版本不同,GPT-4 是第一個能夠同時接收文本和圖像的多模態模型。它不僅可以接收文本輸入,還能接收圖像輸入,並生成相應的文本輸出。GPT-4 在各種專業和學術基準測試中表現出色,顯示出其強大的自然語言處理能力和多模態理解能力。
GPT2 的架構:GPT-3 及以後的版本採取了閉源的策略,模型的具體實現細節、訓練數據、超參數配置等關鍵信息並未對外公開。
GPT-2 的架構主要基於 Transformer 的解碼器(Decoder)部分,並通過堆疊多個 Decoder 層、引入自注意力機制和位置編碼、使用殘差連接和層歸一化等技術手段來構建模型。
1. 堆疊 Transformer 的 Decoder
-
GPT-2 沿用了 Transformer 的解碼器部分,通過堆疊多個 Decoder 層來構建模型。每個 Decoder 層都包含了自注意力(Self-Attention)機制和位置編碼(Position Encoding)等關鍵組件。
-
GPT-2 的堆疊層數可以根據具體需求進行調整,但通常包括多個(如 12 層)Decoder 層,以提供足夠的深度來捕捉文本中的複雜依賴關係。
2. 自注意力機制(Self-Attention)
-
自注意力機制是 Transformer 和 GPT-2 中的核心組件,它允許模型在處理文本時同時關注到文本中的其他部分。
-
在 GPT-2 中,自注意力機制通過計算輸入序列中每個單詞與其他單詞之間的相關性來實現,從而幫助模型理解文本的全局上下文信息。
3. 位置編碼(Position Encoding)
-
由於 Transformer 模型本身並不包含任何關於單詞位置的信息,GPT-2 引入了位置編碼來彌補這一缺陷。
-
位置編碼是一種將單詞在序列中的位置信息嵌入到模型中的方法,它使得模型能夠區分不同位置的單詞並理解它們的順序關係。
4. 殘差連接(Residual Connections)和層歸一化(Layer Normalization)
-
GPT-2 在 Decoder 層之間使用了殘差連接和層歸一化技術,以提高模型的訓練穩定性和收斂速度。
-
殘差連接允許模型在傳遞信息時保留前一層的部分輸出,從而避免了深層網絡中的梯度消失或梯度爆炸問題。
-
層歸一化則通過對每一層的輸入進行歸一化處理,使得模型的每一層都能夠在相似的尺度上工作,進一步提高了模型的穩定性和性能。
5. 輸出層
-
GPT-2 的輸出層通常包括一個線性層(Linear Layer)和一個 Softmax 層,用於將 Decoder 層的輸出映射到詞彙表上的概率分佈。
-
通過這種方式,GPT-2 可以根據輸入的上文生成對應的下文單詞,從而實現文本生成任務。
二、LlaMA
**什麼是 LlaMA?**LLaMA 的全稱是 Large Language Model Meta AI,直譯爲 “大語言模型元 AI”。由於“Llama” 在西班牙語中意爲“羊駝”,因此社區也將其暱稱爲羊駝系模型。
LLaMA 於 2023 年 2 月由 Meta AI 發佈,是該系列的初代模型。隨後,Meta AI 又相繼推出了 LLaMA2 和 LLaMA3 等升級版本。
-
訓練數據:LLaMA 的訓練數據來源於公開數據集,無任何定製數據集,確保了其工作的開源兼容性和可復現性。整個訓練數據集在 token 化之後大約包含 1.4T 的 token。隨着版本的迭代,訓練數據的規模不斷增加,LLaMA3 甚至基於超過 15 萬億個 token 的數據進行預訓練。
-
模型規模:LLaMA 提供了多種規模的版本,包括 7B、13B、70B 和 405B(4050 億)等不同參數量的模型。這些模型可以根據具體的應用場景和計算資源進行選擇。
-
性能優異:LLaMA 在多個基準測試上表現出色,甚至能夠媲美或超越一些參數量更大的模型。例如,具有 130 億參數的 LLaMA 模型在大多數基準上可以勝過 GPT-3(參數量達 1750 億)。
**LlaMA 的架構:**LLaMA 模型的整體架構與 GPT-2 等 Transformer 模型類似,但針對穩定性和性能進行了多項改進。它採用了前置層歸一化(Pre-normalization)、RMSNorm 歸一化函數、SwiGLU 激活函數以及旋轉位置嵌入(RoPE)等關鍵技術。
- 前置層歸一化(Pre-normalization)
- 爲了提升訓練時的穩定性,LLaMA 將歸一化操作從 Transformer 子層的輸出移到了輸入。具體地,第一層歸一化被設置在多頭注意力層之前,第二層歸一化被移動到全連接層之前。同時,殘差連接的位置也調整到了多頭注意力層與全連接層之後。這種設計有助於減少梯度消失或爆炸的問題,從而提高訓練穩定性。
- RMSNorm 歸一化函數
- LLaMA 在歸一化過程中使用了 RMSNorm(Root Mean Square Layer Normalization),這是一種基於均方根(RMS)的歸一化方法。RMSNorm 不依賴於均值,而是通過計算特徵向量的 RMS 值來進行歸一化。這種方法在計算上更爲簡潔,且在某些情況下可以提供類似甚至更好的性能。在 LLaMA 中,RMSNorm 還加入了可學習的縮放因子和偏移參數,以進一步提高模型的靈活性。
- SwiGLU 激活函數
- LLaMA 使用了 SwiGLU(Swish-Gated Linear Unit)激活函數,這是 Shazeer 在文獻中提出的一種激活函數,並在 PaLM 等模型中得到了廣泛應用。相較於傳統的 ReLU 函數,SwiGLU 在很多評測數據集上表現出了更好的性能。在 LLaMA 中,全連接層使用了帶有 SwiGLU 激活函數的計算方式,這有助於提升模型的非線性處理能力。
- 旋轉位置嵌入(RoPE)
- LLaMA 沒有使用傳統的絕對位置編碼(如 BERT 中的 sin/cos 位置編碼),而是採用了旋轉位置嵌入(RoPE)。RoPE 藉助了複數的思想,通過絕對位置編碼的方式實現了相對位置編碼的效果。這種方法能夠更有效地捕捉序列中的位置信息,從而提升模型在處理序列數據時的性能。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/WO7z4DAXX2bEfYuYGRIbBg