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 的這四個方面:
-
預訓練 Pre-training
-
適應調整 Adaptation
-
利用 Utilization
-
能力評估 Capacity Evaluation
二、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 成功的關鍵技術。
簡要解釋一下:
-
縮放:是指通過增加模型的規模和數據量來提高模型的容量。 這可以通過增加模型的層數、參數數目、模型結構的複雜度等方式來實現。同時,爲了支持更大的數據量,需要使用高效的分佈式訓練算法來訓練模型。縮放技術的優點是可以提高模型的表現和泛化能力,但也面臨着訓練時間長、計算資源消耗大等問題。
-
訓練:由於 LLM 模型龐大,訓練具有挑戰性。因此,需要使用高效的分佈式訓練算法來學習 LLM 的網絡參數。 這些算法可以將訓練任務分配給多個計算節點,並使用異步更新和梯度累積等技術來加速訓練過程。此外,還需要考慮如何處理模型的權重衰減、學習率調整等問題,以提高訓練的效率和穩定性。
-
能力激發:能力激發是指通過設計適當的任務說明或特定的上下文學習策略,以激發 LLM 的潛在能力。 例如,可以設計模型在文本生成、問答、機器翻譯等多個任務上進行訓練,從而提高模型的泛化能力。同時,還可以通過設計更加複雜的任務和目標,來促進模型的進一步發展和學習。
-
對齊調整:對齊調整是指將 LLM 與人類價值觀保持一致的必要條件。在 LLM 中,需要考慮到模型的公平性、透明度、隱私保護等因素。對齊調整的過程中,需要進行模型的監督和審查,以確保模型的行爲符合人類價值觀。
-
工具操作:涉及使用外部工具來彌補 LLM 的缺陷。例如,可以使用註釋、可視化工具等來幫助分析 LLM 的輸出,發現問題並進行調整。同時,還需要開發更加智能的自動化工具,以幫助開發人員更加高效地構建、部署和管理 LLM 模型。
2 GPT 系列 LLM 技術演進
下圖是 GPT 系列 LLM 技術演進簡圖。主要根據 OpenAI 的論文、博客文章和官方 API 繪製了這個圖。
需要指出的是,實線表示兩個模型之間的演化路徑存在明確的證據,虛線表示演化關係相對較弱。
四、LLM 所需的資源
0 LLaMA
Large Language Model Analysis 是一個用於評估大型語言模型的工具集,它由 OpenAI 開發並開源,旨在幫助研究人員和開發人員評估和理解大型語言模型的行爲和性能,並發現其中可能存在的問題和偏見。
LLaMA 提供了一系列工具和指標,可以幫助用戶對大型語言模型進行各種分析,包括模型的性能評估、模型的內部結構和行爲分析、模型的偏見檢測等。
LLaMA 的主要功能:
-
性能評估:通過提供各種自然語言處理任務的基準數據集和評估指標,幫助用戶評估大型語言模型在不同任務上的表現和泛化能力。
-
內部結構和行爲分析:通過可視化工具和模型層級分析,幫助用戶理解大型語言模型的內部結構和行爲,以及模型在不同任務和數據集上的特點和變化。
-
偏見檢測:通過提供多種偏見檢測工具和指標,幫助用戶評估大型語言模型中可能存在的偏見問題,例如性別、種族、地域等方面的偏見。
下圖是 LLaMA 研究工作的演化圖,由於數量龐大,無法將所有的 LLaMA 變體包括在這個圖中。
1 公開可用的模型檢查點或 API
訓練大型語言模型需要大量的計算資源和時間,因此,很多研究人員和公司會公開發布他們訓練好的模型檢查點或 API,以供其他人使用。
這些模型通常採用預訓練的方式進行訓練,並具有較高的性能和泛化能力。OpenAI 的 GPT 系列模型和 Google 的 BERT 模型等都是公開可用的模型檢查點。
2. 常用語料庫
訓練大型語言模型需要大量的文本數據,因此,常用語料庫是訓練大型語言模型所需的重要資源之一。
常用語料庫包括 Common Crawl、維基百科、新聞數據、網絡文本等。這些語料庫通常可以通過互聯網公開獲取,並且已經被清洗和標記。
3. 圖書館資源
訓練大型語言模型需要使用一些常用的深度學習框架和相關工具,例如 PyTorch、TensorFlow 等。
這些框架和工具提供了豐富的 API 和函數庫,可以幫助研究人員和開發人員更加高效地構建、訓練和評估大型語言模型,比如:
-
TensorFlow:Google 開發的深度學習框架,支持分佈式訓練和推理。它具有廣泛的 API 和函數庫,可以幫助研究人員和開發人員輕鬆構建、訓練和部署大型語言模型。
-
MXNet:Amazon 開發的深度學習框架,支持分佈式訓練和推理,具有高效的計算性能和易於使用的 API。
-
Horovod:Uber 開發的分佈式深度學習框架,支持 TensorFlow、PyTorch 和 MXNet 等多種深度學習框架,提供高效的分佈式訓練和通信。
-
etc.
此外,還需要一些數據處理、可視化和模型調試等工具來輔助訓練和分析。這些工具和資源通常可以通過互聯網免費獲取。
五、LLM 的 Pre-training
LLM 的預訓練是指在大規模語料庫上進行的無監督學習過程,通過學習語料庫的統計規律和語言結構,讓模型獲得基礎的語言理解和生成技能。
預訓練爲 LLM 的能力奠定了基礎,使得 LLM 在進行特定任務的微調時能夠更快、更準確地收斂,並且可以具備更好的泛化能力。
但我們需要注意的是,在預訓練過程中,語料庫的規模和質量對於 LLM 獲得強大的能力至關重要。一般來說,有如下規律:
-
大語料庫可以提供更加豐富、多樣化的語言信息,幫助 LLM 更好地理解語言的複雜性和多樣性。
-
高質量的語料庫也很重要,低質量的語料庫可能會引入噪聲和錯誤,對 LLM 的性能產生負面影響。
1 數據收集
1.1 數據來源
爲了開發具有強大能力的 LLM,需要收集大量自然語言的語料庫。
LLM 的預訓練語料庫的數據來源可以分爲通用數據和專業數據兩種類型。
-
通用數據:包括網頁、書籍和對話文本等大規模、多樣化、易於獲取的數據集,這些數據可以增強 LLM 的語言建模和泛化能力。通用數據集被廣泛應用於 LLM 的預訓練中,可以提升 LLM 在大多數自然語言處理任務中的性能。
-
專業數據:包括多語言數據、科學數據和代碼等針對特定領域的數據集,可以賦予 LLM 特定任務解決能力。
此外,收集數據集的多樣性也很重要,因爲不同類型、來源和領域的數據集可以爲 LLM 提供更加豐富和全面的語言信息和知識。
下圖是各種數據源在現有 LLM 預訓練數據中的比例:
1.2 數據清洗
在收集大量文本數據之後,對數據進行預處理以構建預訓練語料庫非常重要,尤其是需要去除噪聲、冗餘、無關和可能有害的數據,這些因素可能會嚴重影響 LLM 的容量和性能。
典型的數據清洗流程如下:
2 模型架構
下圖是三種主流架構中注意力模式的比較。
其中,藍色、綠色、黃色和灰色的圓角矩形分別表示前綴符號之間的注意力、前綴與目標符號之間的注意力、目標符號之間的注意力和被掩蓋的注意力。
我們來解釋一下這幾個注意力有什麼區別:
-
前綴符號之間的注意力:這種注意力機制用於編碼器中,用於對輸入序列中的前綴符號,例如 [CLS] 符號進行建模,以提供序列級別的表示。這種注意力機制的目的是捕捉輸入序列的整體信息,以便更好地進行下游任務的預測。
-
前綴與目標符號之間的注意力:這種注意力機制用於解碼器中,用於將前綴符號與目標符號之間的信息進行交互,以便更好地對目標序列進行建模。這種注意力機制的目的是在解碼器中引入輸入序列的信息,幫助解碼器更好地生成目標序列。
-
目標符號之間的注意力:這種注意力機制用於解碼器中,用於對目標序列中的符號進行建模,以便更好地進行下游任務的預測。這種注意力機制的目的是捕捉目標序列中的局部信息,以便更好地生成下一個符號。
-
被掩蓋的注意力:這種注意力機制用於在解碼器中處理掩碼符號,例如 [PAD] 符號,以便更好地對生成目標序列的過程進行控制。這種注意力機制的目的是避免模型在生成目標序列時過於依賴掩碼符號。
3 模型訓練
3.1 優化設置
-
Batch Training:指在訓練神經網絡時,將數據分成小批次 (batch),每次只用一個小批次的數據進行模型參數的更新操作,而不是對整個數據集進行一次性的訓練。這可以使訓練過程更加高效,減少內存佔用,同時也可以防止過擬合。
-
Learning Rate:是神經網絡優化算法中的一個重要超參數,它控制着每次模型參數更新的步長大小。較小的學習率可以使模型學習更加穩定,但可能會導致訓練過程過慢;而較大的學習率可以加速訓練過程,但可能會導致模型不穩定,甚至無法收斂。
-
Optimizer:是神經網絡優化算法中的一種,它的作用是根據損失函數對模型的參數進行更新,以使損失函數最小化。常見的優化算法包括梯度下降、Adam、RMSprop 等。
-
Stabilizing the Training:指通過一些技巧,使得神經網絡訓練過程更加穩定,能夠更快地收斂到最優解。常見的技巧包括添加正則化項、使用批歸一化、使用殘差連接等。
3.2 可擴展的訓練技術
-
3D Parallelism:是一種並行計算技術,它能夠將神經網絡模型的計算分配到多個 GPU 或多臺機器上,以加速模型的訓練。與傳統的數據並行技術不同,3D Parallelism 可以同時利用數據並行和模型並行的優勢。
-
ZeRO:一種優化技術,它可以將神經網絡模型的參數分成多個分組,並分配到不同的 GPU 上進行計算,以減少 GPU 之間的通信量,從而加速模型的訓練。
-
Mixed Precision Training:它可以將模型參數的存儲精度降低到半精度或混合精度,以減少內存佔用和計算量,同時加速訓練過程。在模型訓練過程中,同時使用高精度和低精度的參數進行計算。
-
Overall Training Suggestion:指一些通用的訓練技巧,可以幫助提高神經網絡模型的訓練效果。比如可以使用數據增強來擴充數據集,使用早停法來防止過擬合,使用交叉驗證來評估模型性能等。
六、LLM 的 Adaptation
1 實例格式化:
首先我們要知道,實例格式化是什麼?
實例格式化是指將數據實例(如文本、圖像、音頻等)處理成一種特定的格式,以便它們可以被用於機器學習算法的輸入。
下圖是實例格式化的說明和用於構造指令格式實例的常見的三種不同方法:
-
格式化任務數據集:這意味着將任務數據集中的數據整理成一種特定的格式,以便它們可以被用於訓練機器學習模型。通常,格式化數據集的過程包括對數據進行清洗、標記、向量化等處理,以使其適合於機器學習算法的輸入。例如,在文本分類任務中,可以將文本轉換成詞袋模型或詞向量表示,並將其與相應的標籤一起存儲在數據集中。
-
格式化每日聊天數據:這意味着將每日聊天數據整理成一種易於分析的格式。例如,在社交媒體或在線論壇上收集的聊天數據需要進行預處理和清洗,以去除噪聲和非重要信息。接下來,可以將聊天數據轉換成一種結構化的格式,例如 CSV 或 JSON 文件,以便進行數據分析和可視化。
-
格式化綜合數據:這意味着將多種數據源中的數據整理成一種一致的格式。綜合數據可以來自不同的數據源,如數據庫、文件、傳感器等。在將這些數據整合在一起之前,需要將它們格式化成相同的格式,以便它們可以被合併和分析。例如,在一個電子商務網站中,可能需要將訂單數據、用戶數據和產品數據整合在一起,以便分析銷售趨勢和用戶行爲。在這種情況下,需要將這些數據格式化爲相同的結構,例如 JSON 或 XML 格式。
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 階段。
-
Pre-train 讓預訓練模型獲得基本的語言能力。
-
Tuning 階段對模型調優增強其語言能力、使模型輸出符合正確的價值觀。
-
Prompt 方法,比如 ICT 和 CoT,可以提高模型的推理能力。
接下來,我們將簡要介紹這三種 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 文本生成
-
Language Modeling 語言建模:
這是評估 LLM 基礎能力的一種常用方法,即根據前 n 個 token 預測第 n+1 個 token。常用的評估指標包括準確率、困惑度等。我們就困惑度 PPL 做一個更詳細的說明:Perplexity 困惑度一般來說是用來評價語言模型好壞的指標。語言模型是衡量句子好壞的模型,本質上是計算句子的概率。
爲什麼 PPL 使用的是幾何平均數呢?是因爲,當數據最終結果是一個和時,用算術平均數更合適,當數據最終結果是一個積時,用幾何平均數更加合適。
除此之外,機器翻譯經常使用的 BLEU 指標也是使用了幾何平均數。
-
Conditional Text Generation 條件文本生成:
包括機器翻譯、文本摘要等任務,評估指標常用的有 BLEU、ROUGE 等。
-
Code Synthesis 代碼生成:
評估指標主要是與人類生成的代碼進行比較。
1.2 知識運用
-
開卷問答和閉卷問答:評估模型對於知識的理解和應用能力。
-
知識補全:評估模型對於知識圖譜等知識庫中缺失的信息進行推斷的能力。
-
複雜推理:包括基於知識推理、符號推理和數學推理等,用於評估模型的推理能力。
主要挑戰:幻覺和缺乏最新的知識。其中幻覺分爲內在幻覺(與現有的來源衝突)和外在幻覺(無法被可用的來源驗證)。
1.3 複雜推理
-
基於知識推理:通過利用事先獲取的知識來推導出新的結論。
-
符號推理:通過對符號或邏輯表達式進行操作,推導出新的邏輯結論。
-
數學推理:通過數學公式、定理和證明等方式,推導出新的數學結論。
2 複雜能力評估
-
Human Alignment(人類價值觀一致性):
評估模型是否與人類積極的價值觀保持一致,例如尊重個人隱私、避免歧視等。
-
Interaction with External Environment(與外部環境交互):
評估模型在具身智能(embodied AI)任務中的能力,例如機器人導航、語音助手等。
-
Tool Manipulation(使用外部工具):
評估模型使用外部工具(例如瀏覽器、計算器等)的能力,例如 webGPT 使用瀏覽器作爲工具,ChatGPT 的計算器插件等。
九、提示設計
注意,此處與原文有出入,我們選擇了一些原文中提到的細節,但也添加了一些新的內容。
Prompt Creation: 關鍵成分,設計原則,有用技巧。
1 Key Ingredients 關鍵成分:
-
Task-specific information: 提示需要包含與任務相關的信息,例如問題描述,輸入格式和輸出格式等。
-
Contextual information: 上下文信息可以幫助 LLM 更好地理解任務,例如領域知識,背景信息和先前的對話歷史等。
-
Examples: 提供示例可以幫助 LLM 更好地理解任務和期望輸出,例如輸入 / 輸出示例,解釋示例和錯誤示例等。
-
Constraints: 約束可以幫助 LLM 生成符合要求的輸出,例如長度約束,格式約束和限制詞匯等。
2 Design Principles 設計原則:
-
Clarity and simplicity: 提示應該清晰簡潔,易於理解。
-
Relevance and specificity: 提示應該與任務相關,具體而不是模糊的。
-
Diversity and adaptability: 提示應該具有一定的多樣性和適應性,以適應不同的任務和情況。
-
Consistency and coherence: 提示應該與任務的目標和期望輸出保持一致,同時保持邏輯上的連貫性和流暢性。
3 Useful Tips 有用技巧:
-
Start with a clear goal: 在設計提示之前,需要明確任務的目標和期望輸出。
-
Use natural language: 儘可能使用自然語言來描述問題和期望輸出,以幫助 LLM 更好地理解任務。
-
Provide examples: 提供示例可以幫助 LLM 更好地理解任務和期望輸出。
-
Test and iterate: 在設計提示之後,需要進行測試和迭代,以不斷改進提示的質量和效果。
十、結論與展望
我們回顧了 LLM 的最新進展,並介紹了理解和利用 LLM 的關鍵概念、發現和技術。
我們重點關注大型模型(即大小超過 10B 的模型),同時排除早期預訓練語言模型(例如 BERT 和 GPT2)的內容,特別是,我們的調查討論了 LLM 的四個重要方面,即預訓練、適應調整、利用和評估。對於每個方面,我們突出了對 LLM 成功至關重要的技術或發現。
此外,我們還總結了開發 LLM 的可用資源,並討論了復現 LLM 的重要實施指南。
接下來,我們總結了本次調查的討論,並介紹了 LLM 在以下方面的挑戰和未來方向:
-
提高效率和準確性:LLM 需要更高的效率和準確性,以適應越來越多的任務和應用場景。
-
改進預訓練模型:需要進一步改進預訓練模型的結構和技術,以提高 LLM 的性能和效率。
-
解決過擬合問題:需要解決 LLM 在特定任務上的過擬合問題,以提高模型的泛化能力。
-
多模態 LLM:需要擴展 LLM 的能力,使其能夠處理多種不同的輸入類型,例如圖像、語音和視頻。
-
研究 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