2023 年 LLM 如何入門?請看這篇綜述!

注意,本文不涉及太多複雜的公式與數學推導,初學者或者像筆者一樣數學不好的讀者可以放心閱讀!

一、引言與摘要

Q:這些年,我們在做什麼?

A:自從圖靈測試在 1950 年代提出以來,人類一直在探索如何讓機器掌握語言智能。爲了理解和掌握語言,開發能力強的人工智能算法面臨着重大挑戰。語言模型 LM 在過去的二十年中被廣泛研究,用於語言理解和生成,從統計語言模型發展到神經語言模型

Q:你說的這些都是比較老的事情了,現在在做什麼?

A:確實,那近幾年的話,研究人員提出了預訓練語言模型 PLM,通過對大規模語料庫進行 Transformer 模型的預訓練,展現瞭解決各種 NLP 任務的強大能力。並且,由於研究人員發現模型縮放可以導致模型容量的提高,他們進一步通過增加參數規模來探究縮放效應

Q:等會兒等會兒,聽不懂了,解釋解釋什麼叫模型縮放,模型容量?

A:

補充一點有趣的,當參數規模超過一定水平時,這些擴大的語言模型不僅可以實現顯著的性能提升,還表現出一些特殊的能力,比如上下文學習能力等等,這是小規模語言模型(例如 BERT)所沒有的,這種現象被稱爲湧現 Emergence

Q:這麼厲害?那是不是越湧現就越好?

A:你都這麼問了,顯然心存疑慮,實際上,湧現現象也可能導致模型出現一些意外的錯誤或偏見,因此需要在模型設計和訓練中加以注意和控制。

Q:那這麼多參數的模型是不是應該給賦予一個新的名字?

A:沒錯,爲了區分不同參數規模的語言模型,研究界爲具有包含數十億或數百億參數的 PLM 創造了 LLM 這一術語,也就是大語言模型 Large Language Model。

Q:那就是所謂的 ChatGPT 了!

A:是的,但 LLM 不只有 ChatGPT,還有很多很多...

下圖是近年來現有 LLM 時間軸,另外,如果沒有相應的論文,我們將模型的發佈日期設定爲其公開發布或公告的最早時間。由於篇幅限制,我們只包括公開報告評估結果的 LLM。

Q:這麼多?我想更多的瞭解 LLM,你能介紹一下嗎?

A:當然可以,我們今天讀的這篇綜述就是在介紹 LLM 的背景、關鍵發現和主流技術。

這篇綜述從預訓練、適應調整、利用和能力評估四個方面對 LLM 的最新進展進行了文獻綜述,並總結了 LLM 的關鍵發現、技術和方法。我們主要關注的就是 LLM 的這四個方面:

二、LM 的四個發展階段

一般而言,LM 的目標是建模單詞序列的生成概率,以預測未來的或缺失的 token 的概率。

LM 的研究在文獻中受到廣泛關注,可以分爲四個主要發展階段:

1 統計語言模型 SLM:

Statistical Language Model 是一種基於統計方法的語言模型,它通過計算給定上下文條件下各個可能的下一個詞出現的概率,來對自然語言進行建模。

SLM 通常使用 N-gram 模型來表示上下文,即假設下一個詞的出現只與前面 N 個詞有關。

SLM 在 NLP 和信息檢索等領域有着廣泛的應用,但是其表現受限於數據量和特徵選擇,主要的應用如統計機器翻譯 SMT 和 GMM+HMM 模型。

2 神經網絡語言模型 NLM:

Neural Network Language Model 是一種基於神經網絡的語言模型,它通過將自然語言轉化爲向量表示,利用神經網絡建模詞彙之間的關係來預測下一個詞。

NLM 通常使用 RNN 或者變種(如 LSTM、GRU)來處理序列數據,並將上下文表示爲隱藏狀態。

NLM 在 NLP 中表現較好,但是其訓練時間較長,且需要較大的數據集和計算資源。

3 預訓練語言模型 PLM:

Pre-trained Language Model 是一種在大規模數據上進行預訓練的語言模型,它通過無監督的方式學習自然語言的特徵表示,從而爲不同的任務提供通用的特徵提取器。

PLM 通常使用自編碼器、Transformer 等模型結構,在大規模數據上進行預訓練,並通過微調 FT 等方式適應不同的下游任務。

PLM 的出現極大地促進了 NLP 的發展,如 BERT、GPT 等模型就是 PLM 的代表。

4 大型語言模型 LLM:

Large Language Model 是一種具有大量參數的語言模型,它通過增加模型的容量和訓練數據量來提高模型的表現。

LLM 通常基於 PLM 進行設計,通過增加模型規模、調整模型結構、加入更多的任務等方式來增加模型的複雜度和泛化能力。

LLM 在 NLP 領域表現出了驚人的性能,在 PLM 的基礎上,增大模型參數,使得 LLM 出現 PLM 不具有的湧現能力,同樣採用預訓練 + 微調的形式。

趨勢與問題:

LM 與 LLM 已經逐漸成爲熱點話題,事實上,我們通過近年來包含這兩個關鍵詞的 Arxiv 論文數量的變化趨勢便可窺見一斑:

LLM 的研發需要大量的數據處理分佈式訓練經驗,這與傳統的研究和工程界限已經模糊。

目前,LLM 對於人工智能領域產生了巨大的影響,ChatGPT 和 GPT-4 已經引發了對於 AGI 的重新思考。

不過,雖然 LLM 已經取得了很大的進展和影響,但其底層原理仍然沒有得到很好的探索。其中一個很淺顯而又重要的問題是,爲什麼 LLM 會出現新的能力,而較小的 PLM 不會?

其次,研究人員很難訓練出有能力的 LLM,因爲需要大量的計算資源,而訓練 LLM 的許多重要細節(如數據收集和清洗)也沒有被公開。

再者,如何使 LLM 符合人類價值觀和偏好也是一個挑戰,因爲它們可能會產生有害的內容。

三、LLM 的關鍵技術

1 五項關鍵技術

LLM 已經演變成目前的狀態,成爲通用和有能力的學習器,這得益於多項重要技術。

其中,縮放、訓練、能力激發、對齊調整和工具操作是導致 LLM 成功的關鍵技術。

簡要解釋一下:

2 GPT 系列 LLM 技術演進

下圖是 GPT 系列 LLM 技術演進簡圖。主要根據 OpenAI 的論文、博客文章和官方 API 繪製了這個圖。

需要指出的是,實線表示兩個模型之間的演化路徑存在明確的證據,虛線表示演化關係相對較弱。

四、LLM 所需的資源

0 LLaMA

Large Language Model Analysis 是一個用於評估大型語言模型的工具集,它由 OpenAI 開發並開源,旨在幫助研究人員和開發人員評估和理解大型語言模型的行爲和性能,並發現其中可能存在的問題和偏見。

LLaMA 提供了一系列工具和指標,可以幫助用戶對大型語言模型進行各種分析,包括模型的性能評估、模型的內部結構和行爲分析、模型的偏見檢測等。

LLaMA 的主要功能:

  1. 性能評估:通過提供各種自然語言處理任務的基準數據集和評估指標,幫助用戶評估大型語言模型在不同任務上的表現和泛化能力。

  2. 內部結構和行爲分析:通過可視化工具和模型層級分析,幫助用戶理解大型語言模型的內部結構和行爲,以及模型在不同任務和數據集上的特點和變化。

  3. 偏見檢測:通過提供多種偏見檢測工具和指標,幫助用戶評估大型語言模型中可能存在的偏見問題,例如性別、種族、地域等方面的偏見。

下圖是 LLaMA 研究工作的演化圖,由於數量龐大,無法將所有的 LLaMA 變體包括在這個圖中。

1 公開可用的模型檢查點或 API

訓練大型語言模型需要大量的計算資源和時間,因此,很多研究人員和公司會公開發布他們訓練好的模型檢查點或 API,以供其他人使用。

這些模型通常採用預訓練的方式進行訓練,並具有較高的性能和泛化能力。OpenAI 的 GPT 系列模型和 Google 的 BERT 模型等都是公開可用的模型檢查點。

2. 常用語料庫

訓練大型語言模型需要大量的文本數據,因此,常用語料庫是訓練大型語言模型所需的重要資源之一。

常用語料庫包括 Common Crawl、維基百科、新聞數據、網絡文本等。這些語料庫通常可以通過互聯網公開獲取,並且已經被清洗和標記。

3. 圖書館資源

訓練大型語言模型需要使用一些常用的深度學習框架和相關工具,例如 PyTorch、TensorFlow 等。

這些框架和工具提供了豐富的 API 和函數庫,可以幫助研究人員和開發人員更加高效地構建、訓練和評估大型語言模型,比如:

此外,還需要一些數據處理、可視化和模型調試等工具來輔助訓練和分析。這些工具和資源通常可以通過互聯網免費獲取。

五、LLM 的 Pre-training

LLM 的預訓練是指在大規模語料庫上進行的無監督學習過程,通過學習語料庫的統計規律和語言結構,讓模型獲得基礎的語言理解和生成技能。

預訓練爲 LLM 的能力奠定了基礎,使得 LLM 在進行特定任務的微調時能夠更快、更準確地收斂,並且可以具備更好的泛化能力。

但我們需要注意的是,在預訓練過程中,語料庫的規模和質量對於 LLM 獲得強大的能力至關重要。一般來說,有如下規律:

1 數據收集

1.1 數據來源

爲了開發具有強大能力的 LLM,需要收集大量自然語言的語料庫。

LLM 的預訓練語料庫的數據來源可以分爲通用數據專業數據兩種類型。

此外,收集數據集的多樣性也很重要,因爲不同類型、來源和領域的數據集可以爲 LLM 提供更加豐富和全面的語言信息和知識。

下圖是各種數據源在現有 LLM 預訓練數據中的比例:

1.2 數據清洗

在收集大量文本數據之後,對數據進行預處理以構建預訓練語料庫非常重要,尤其是需要去除噪聲、冗餘、無關和可能有害的數據,這些因素可能會嚴重影響 LLM 的容量和性能。

典型的數據清洗流程如下:

2 模型架構

下圖是三種主流架構中注意力模式的比較。

其中,藍色、綠色、黃色和灰色的圓角矩形分別表示前綴符號之間的注意力、前綴與目標符號之間的注意力、目標符號之間的注意力和被掩蓋的注意力。

我們來解釋一下這幾個注意力有什麼區別:

  1. 前綴符號之間的注意力:這種注意力機制用於編碼器中,用於對輸入序列中的前綴符號,例如 [CLS] 符號進行建模,以提供序列級別的表示。這種注意力機制的目的是捕捉輸入序列的整體信息,以便更好地進行下游任務的預測。

  2. 前綴與目標符號之間的注意力:這種注意力機制用於解碼器中,用於將前綴符號與目標符號之間的信息進行交互,以便更好地對目標序列進行建模。這種注意力機制的目的是在解碼器中引入輸入序列的信息,幫助解碼器更好地生成目標序列。

  3. 目標符號之間的注意力:這種注意力機制用於解碼器中,用於對目標序列中的符號進行建模,以便更好地進行下游任務的預測。這種注意力機制的目的是捕捉目標序列中的局部信息,以便更好地生成下一個符號。

  4. 被掩蓋的注意力:這種注意力機制用於在解碼器中處理掩碼符號,例如 [PAD] 符號,以便更好地對生成目標序列的過程進行控制。這種注意力機制的目的是避免模型在生成目標序列時過於依賴掩碼符號。

3 模型訓練

3.1 優化設置

3.2 可擴展的訓練技術

六、LLM 的 Adaptation

1 實例格式化:

首先我們要知道,實例格式化是什麼?

實例格式化是指將數據實例(如文本、圖像、音頻等)處理成一種特定的格式,以便它們可以被用於機器學習算法的輸入。

下圖是實例格式化的說明和用於構造指令格式實例的常見的三種不同方法:

2 調參 Tuning:

調參是 LLM 訓練過程中的一個重要環節,目的是找到最優的超參數組合,以提高模型在測試集上的性能

那麼,有幾種常見的 Tuning 方法呢?

2.1 Instruction Tuning

Instruction Tuning 是通過添加一些人工規則或指令來對模型進行微調,以使其更好地適應特定的任務或應用場景。

Example:在文本生成任務中,可以添加一些指令來控制生成的文本的長度、內容和風格。

2.2 Alignment Tuning

Alignment Tuning 是通過對齊源語言和目標語言的數據來對模型進行微調,以提高翻譯或文本生成的質量。

Example:在機器翻譯任務中,可以通過對齊源語言和目標語言的句子來訓練模型,以提高翻譯的準確性。

2.3 RLHF(reinforcement learning from human feedback)三階段

RLHF 是使用強化學習算法來對模型進行微調,以使其更好地適應特定的任務或應用場景。

該技術通常分爲三個階段:數據預處理、基準模型訓練和強化學習微調。在微調階段,模型會通過與人類交互來學習如何生成更符合人類預期的文本。

下圖是 RLHF 算法的工作流程:

2.4 Adapter Tuning

Adapter Tuning 是在預訓練模型中添加適配器層,以適應特定的任務或應用場景。適配器層可以在不改變預訓練模型權重的情況下,對特定任務進行微調。這種技術可以提高模型的效率和泛化能力,同時減少對計算資源的需求。

2.5 Prefix Tuning

Prefix Tuning 是通過在輸入中添加一些前綴來對模型進行微調,以使其更好地適應特定的任務或應用場景。前綴可以提供一些額外的信息。

Example:任務類型、領域知識等,以幫助模型更準確地生成文本。

2.6 Prompt Tuning

Prompt Tuning 是通過設計合適的 Prompt 來對模型進行微調,以使其更好地適應特定的任務或應用場景。提示是一些關鍵詞或短語,可以幫助模型理解任務的要求和期望輸出的格式。

2.7 Low-Rank Adaptation(LoRA)

LoRA 是通過將預訓練模型分解成低秩矩陣來進行微調,以提高模型的效率和泛化能力。該技術可以減少預訓練模型的參數數量,同時保留模型的表示能力,從而提高模型的適應性和泛化能力。

下圖是 2.4 2.5 2.6 2.7 四種調參方法的對比示意圖:

七、LLM 的 Utilization

Utilization 是在預訓練或自適應調優之後進行的,一種典型的提示方法是上下文學習,它以自然語言文本的形式制定任務描述或演示。

此外,思維鏈提示可以通過在提示中加入一系列中間推理步驟來增強上下文學習。對於複雜任務的求解,提出了規劃,首先將複雜任務分解爲更小的子任務,然後生成一個行動計劃來逐個解決這些子任務。

LLM 大致可分爲 Pre-train 階段、Tuning 階段,使用 Prompt 階段。

接下來,我們將簡要介紹這三種 Prompt 技術,長話短說:

1 In-Context Learning 語境學習

語境學習旨在通過模型自身的學習過程來改進其在特定上下文中的表現。通過對模型進行反饋和調整,可以使模型逐漸適應不同的語境和場景,從而提高其在各種任務中的性能和泛化能力。

2 Chain-of-Thought Prompting 思維鏈提示

思維鏈提示通過提示來引導模型生成連貫的、具有邏輯關係的文本。

該技術基於思維鏈的概念,即人們在思考時通常會按照一定的邏輯順序組織思維和語言。通過在生成文本時引導模型按照特定的思維鏈順序組織文本,可以使生成的文本更加連貫和合理。

下圖是情境學習 ICL 和思維鏈 CoT 提示的對比說明。ICL 用自然語言描述、幾個演示和一個測試查詢提示 LLM,而 CoT 提示涉及提示中的一系列中間推理步驟:

3 Planning for Complex Task Solving 解決複雜任務的計劃

其實就是分治,通過將任務分解爲多個子任務,併爲每個子任務制定計劃來解決複雜任務的技術。

該技術可以幫助模型更好地理解任務的結構和要求,從而更有效地解決複雜任務。此外,該技術還可以通過對任務和子任務之間的依賴關係進行建模,來提高模型的泛化能力和魯棒性。

By the way,LLM 的湧現實際上也表現在這幾個方面。

下圖是 LLM 解決複雜任務的基於提示的規劃公式示意圖:

八、LLM 的 Capacity Evaluation

1 基礎能力評估

1.1 文本生成

1.2 知識運用

主要挑戰:幻覺和缺乏最新的知識。其中幻覺分爲內在幻覺(與現有的來源衝突)和外在幻覺(無法被可用的來源驗證)。

1.3 複雜推理

2 複雜能力評估

九、提示設計

注意,此處與原文有出入,我們選擇了一些原文中提到的細節,但也添加了一些新的內容。

Prompt Creation: 關鍵成分,設計原則,有用技巧。

1 Key Ingredients 關鍵成分:

  1. Task-specific information: 提示需要包含與任務相關的信息,例如問題描述,輸入格式和輸出格式等。

  2. Contextual information: 上下文信息可以幫助 LLM 更好地理解任務,例如領域知識,背景信息和先前的對話歷史等。

  3. Examples: 提供示例可以幫助 LLM 更好地理解任務和期望輸出,例如輸入 / 輸出示例,解釋示例和錯誤示例等。

  4. Constraints: 約束可以幫助 LLM 生成符合要求的輸出,例如長度約束,格式約束和限制詞匯等。

2 Design Principles 設計原則:

  1. Clarity and simplicity: 提示應該清晰簡潔,易於理解。

  2. Relevance and specificity: 提示應該與任務相關,具體而不是模糊的。

  3. Diversity and adaptability: 提示應該具有一定的多樣性和適應性,以適應不同的任務和情況。

  4. Consistency and coherence: 提示應該與任務的目標和期望輸出保持一致,同時保持邏輯上的連貫性和流暢性。

3 Useful Tips 有用技巧:

  1. Start with a clear goal: 在設計提示之前,需要明確任務的目標和期望輸出。

  2. Use natural language: 儘可能使用自然語言來描述問題和期望輸出,以幫助 LLM 更好地理解任務。

  3. Provide examples: 提供示例可以幫助 LLM 更好地理解任務和期望輸出。

  4. Test and iterate: 在設計提示之後,需要進行測試和迭代,以不斷改進提示的質量和效果。

十、結論與展望

我們回顧了 LLM 的最新進展,並介紹了理解和利用 LLM 的關鍵概念、發現和技術。

我們重點關注大型模型(即大小超過 10B 的模型),同時排除早期預訓練語言模型(例如 BERT 和 GPT2)的內容,特別是,我們的調查討論了 LLM 的四個重要方面,即預訓練、適應調整、利用和評估。對於每個方面,我們突出了對 LLM 成功至關重要的技術或發現。

此外,我們還總結了開發 LLM 的可用資源,並討論了復現 LLM 的重要實施指南。

接下來,我們總結了本次調查的討論,並介紹了 LLM 在以下方面的挑戰和未來方向:

  1. 提高效率和準確性:LLM 需要更高的效率和準確性,以適應越來越多的任務和應用場景。

  2. 改進預訓練模型:需要進一步改進預訓練模型的結構和技術,以提高 LLM 的性能和效率。

  3. 解決過擬合問題:需要解決 LLM 在特定任務上的過擬合問題,以提高模型的泛化能力。

  4. 多模態 LLM:需要擴展 LLM 的能力,使其能夠處理多種不同的輸入類型,例如圖像、語音和視頻。

  5. 研究 LLM 的可解釋性:需要進一步研究 LLM 的內部機制和決策過程,以提高其可解釋性和可信度。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s?__biz=MzU2NjU3Nzg2Mg==&mid=2247495979&idx=1&sn=cf9f674478658c9d709b5b264dbcc937&chksm=fca8ee82cbdf6794bc14f80634ebf0c6e5e8ccaf5c678d8bbf8ccff84b6e748d3d02d27fb629&scene=178&cur_album_id=2918225930956587011#rd