Transformer 架構是當前大語言模型的主力架構和基礎技術,本文以通俗易懂的方式,對此作簡要介紹。
1.4 介紹 Transformer 架構
大多數現代的大規模語言模型(LLMs)依賴于 Transformer 架構,這是一種在 2017 年的論文《注意力就是你所需要的》(https://arxiv.org/abs/1706.03762)中提出的深度神經網絡架構。為了理解 LLMs,必須要先了解最初的 Transformer,它是為機器翻譯任務而開發的,用于將英文文本翻譯成德文和法文。簡化版的 Transformer 架構如圖 1.4 所示。
圖 1.4 簡化版的原始 Transformer 架構圖示,它是一個用于語言翻譯的深度學習模型。Transformer 由兩部分組成:(a) 編碼器,處理輸入文本并生成文本的嵌入表示(一種在不同維度中捕捉許多不同因素的數值表示),以及 (b) 解碼器,可以使用這些嵌入表示逐詞生成翻譯后的文本。此圖展示了翻譯過程的最后階段,其中解碼器需要在給定原始輸入文本(“This is an example”)和部分翻譯的句子(“Das ist ein”)的情況下,僅生成最終單詞(“Beispiel”),以完成整個翻譯。
Transformer 架構由兩個子模塊組成:編碼器和解碼器。編碼器模塊處理輸入文本,并將其編碼成一系列捕捉輸入上下文信息的數值表示或向量。然后,解碼器模塊接收這些編碼后的向量并生成輸出文本。例如,在翻譯任務中,編碼器會將源語言的文本編碼成向量,而解碼器則會解碼這些向量以生成目標語言的文本。編碼器和解碼器都包含許多層,它們通過所謂的自注意力機制相連。對于輸入是如何預處理和編碼的,您可能會有許多疑問。這些問題將在后續章節的逐步實現中得到解答。
Transformer 和 LLMs 的一個關鍵組件是自注意力機制(the self-attention mechanism,圖 1.4 中未展示),它允許模型對序列中的不同單詞或標記的重要性進行相對權衡。這種機制使模型能夠捕捉輸入數據中的長程依賴性和上下文關系,增強其生成連貫且上下文相關的輸出的能力。然而,由于其復雜性,我們將在后續內容中進一步討論并逐步實施。
Transformer 架構的后期變種,如 BERT(來自 Transformers 的雙向編碼表示的簡稱)和各種 GPT 模型(生成預訓練變換器的簡稱),都是基于這一概念構建的,旨在適應不同的任務。
基于原始 Transformer 的編碼器子模塊構建的 BERT 在其訓練方法上與 GPT 有所不同。雖然 GPT 被設計用于生成任務,但 BERT 及其變體專注于掩碼詞預測,即模型預測給定句子中的掩碼或隱藏單詞,如圖 1.5 所示。這種獨特的訓練策略使 BERT 在文本分類任務中表現出色,包括情感預測和文檔分類。作為其實力的應用實例,截至此時,X(前身為Twitter)使用 BERT 來檢測有害內容。
圖 1.5 transformer 編碼器和解碼器子模塊的可視化表示。左側是編碼器部分,它例證了類似于 BERT 的大型語言模型(LLM),這些模型專注于被遮蔽單詞預測,主要用于文本分類等任務。右側是解碼器部分,展示了類似于 GPT 的大型語言模型,這些模型設計用于生成性任務并生成連貫的文本序列。
另一方面,GPT專注于原始 transformer 架構的解碼器部分,且設計用于需要生成文本的任務。這包括機器翻譯、文本摘要、小說寫作、編寫計算機代碼等。
主要設計和訓練用于執行文本補全任務的 GPT 模型,在其能力上也顯示出了顯著的多功能性。這些模型擅長執行零樣本學習和少量樣本學習任務。零樣本學習指的是在沒有任何先前具體示例的情況下,能夠推廣到完全未見過的任務。而少量樣本學習則涉及從用戶作為輸入提供的最少數目的示例中學習,如圖 1.6 所示。
圖 1.6 除了文本補全之外,類似于 GPT 的大型語言模型可以根據其輸入解決各種任務,而無需重新訓練、微調或更改特定于任務的模型架構。有時,在輸入中提供目標示例是有幫助的,這被稱為少量樣本設置。然而,類似于 GPT 的大型語言模型也能夠在沒有具體示例的情況下執行任務,這種情況被稱為零樣本設置。
比較:Transformers 與 LLMs
當今的大型語言模型(LLMs)基于 transformer 架構。因此,在文獻中,transformers 和 LLMs 這兩個術語經常被互換使用。然而,請注意,并非所有 transformers 都是 LLMs,因為 transformers 也可用于計算機視覺領域。同樣,并非所有 LLMs 都是基于 transformer 的,因為存在基于遞歸和卷積架構的 LLMs。這些替代方法的主要動機是為了提高 LLMs 的計算效率。至于這些替代的 LLM 架構是否能夠與基于 transformer 的 LLM 能力相競爭,以及它們是否會在實踐中得到采用,仍有待觀察。為簡單起見,本文使用“LLM”一詞來指代類似于 GPT 的基于 transformer 的 LLM。
原文:Sebastian Raschka. Build a Large Language Model(From Scratch),此處為原文的中文翻譯,為了閱讀方便,有適當修改。