一文梳理各類Large Language Model關系和實現要點 精華
今天這篇文章給大家匯總市面上的各類Large Language Model,從模型角結構的角度、模型類型的角度進行劃分,涵蓋了目前市面上主流的LLM,一文了解各個LLM的基本實現方法和關系。
從基礎模型結構的角度,預訓練語言模型可以分為Encoder-only、Decoder-only、Encoder-Decoder三種類型。從市面上的LLM類型來看,可以分為GPT、LLaMA、PaLM等3個最主要的類型。下面,將這6個類別的模型,以及其中各個模型之間的關系給大家詳細介紹一下。
1.模型結構劃分:Encoder-only模型
Encoder-only類型的模型只包含encoder 網絡,代表性網絡包括BERT及其變種,RoBERTa,ALBERT,DeBERTa,XLM,XLNet,UNILM。
BERT:主要包含Embedding模塊、Transformer編碼器、FCN網絡等3個組件。embedding模塊將輸入文本轉化為一系列的embedding vectors;Transformer編碼器將embedding向量轉換為上下文表示向量;FCN將上下文表示向量轉化為one-hot向量。訓練過程使用masked language model(MLM)、next sentence prediction兩個預訓練任務。預訓練后的BERT可以通過增加classifier layer,對多種自然語言理解任務進行fine-tune。其他各個變體的差異如下。
RoBERTa:通過一系列的模型選擇設計和訓練策略來提升模型的魯棒性,例如修改一些超參數,移除next sentence prediction任務,使用更大的mini-batches和學習率;
ALBERT:使用兩個parameter-reduction技巧來降低內存消耗并提升訓練速度:將embedding矩陣分解為兩個矩陣 && 分組進行重復層的切分;
DeBERTa: 通過兩種技術優化BERT和RoBERTa,一是disentangled attention mechanism,每個word使用兩個embedding,包括內容embedding和position embedding,根據這兩個embedding計算attention weight;二是enhanced mask decoder,在pre-train階段結合解碼層的絕對位置來預測被mask的token;
ELECTRA:使用了一個新的pre-train任務,replaced token detection(RTD)。RTD任務的數據采樣比masked language model 效率更高。RTD 通過從小型生成器生成token來替換原句中的token,然后通過判別式模型來判斷輸入是否被生成樣本替代。
XLMs: 擴展BERT成為跨語種語言模型,使用了兩個方法:基于單語種的非監督方法 && 一種利用并行數據和新的跨語種語言模型目標的監督方法。
2.模型結構劃分:Decoder-only模型
典型的decoder only PLMs是OpenAI的GPT-1和GPT-2。
GPT-1 是一個僅有decoder的transformer model,使用差異化的無標注語料庫上,以自監督的形式進行Generative Pre-Training(GPT), 并在每個特定的下游任務中進行判別式的fine-tuning,在多個自然語言處理任務中拿到了非常好的表現。
GPT-2 沒有任何顯示監督,在包含百萬量級網頁的大型網頁文本數據集進行訓練,在特定的自然語言處理任務上表現優異。GPT-2延續了GPT-1的模型框架,僅做少許改動:layer normalization 移動到了每個sub-block的輸入層;在最后的self-attention block之后增加額外的layer normalization層;對初始化進行修改,以考慮殘差路徑上的累積和殘差層權重的縮放;詞典size增加到5025,context size從512增加到1024。
3.模型結構劃分:Encoder-Decoder模型
所有的自然語言處理任務可以理解成一個sequence2sequence的生成式任務,因此encoder-decoder是解決所有自然語言理解和生成任務的統一范式。代表性的model包括T5,mT5,MASS,BART。
T5: Text-to-Text Transfer Transformer model。通過引入統一的框架,將遷移學習有效地用于NLP,在這個框架中,所有的NLP任務都被視為是text-text的生成式任務。mT5是一個T5的多語種變種,使用了基于爬蟲的包含101種語言的數據集;
MASS:MAsked Sequence to Sequence pre-training。采用encoder-decoder框架在給定句子部分片段的情況下對該sentence進行重構。encoder 接收被隨機mask fragment(連續多個token)的sentence作為輸入,decoder預測被mask的fragment。因此MASS聯合訓練了生成embedding的encoder和用來生成的decoder;
BART:標準的seq2seq translating 模型框架,預訓練中使用增加了任意噪聲的文本,重建原始的文本。
4.模型類型劃分:GPT類型
GPT由OpenAI開發,decoder-only Transformer-based language models。包含GPT-1, GPT-2, GPT-3, InstrucGPT, ChatGPT, GPT-4, CODEX, and WebGPT。其中GPT-1和GPT-2是開源模型,GPT-3/GPT-4非開源,僅可以通過API訪問。
GPT-3:自回歸語言模型,175 billion 參數。GPT-3 可以僅通過與模型進行文本交互來制定任務和小樣本演示,而不經任何梯度更新和fine-tune直接應用到任意下游任務。GPT-3在大量NLP任務上表現優異,包括翻譯,QA,完形填空,以及一些需要即時推理或領域適應的問題。
CODEX:2023年OpenAI在M3發布,由GPT-3派生,使用從GitHub收集的代碼語料庫進行fine-tune, 可以解析自然語言并生成相應的代碼。
WebGPT: 從GPT-3衍生,經過微調,可以使用基于文本的web瀏覽器回答開放式問題。使用三個步驟進行訓練:首先使用人類示范數據來學習模仿人類的瀏覽行為,然后學習reward function來預測人類的偏好,最后通過強化學習和拒絕采樣來改進WebGPT,來優化reward function.
InstructGPT: 使得GPT可以遵循預期的人類指令。使用人類反饋進行微調,將語言模型與用戶意圖在多個任務上進行對齊。從一組標注員編寫的提示和通過 OpenAI API 提交的提示開始,收集標注員示例及所需的模型行為作為數據集。在該數據集上fine-tune GPT3,然后收集人類對模型輸出的打分,使用強化學習進一步對模型進行fine-tune。這種方法被稱為人類反饋中強化學習(RLHF,Reinforcement Learning from Human Feedback)。由此產生的 InstructGPT 模型優化了輸出的真實性,并減少了toxic output,同時在公共 NLP 數據集上的性能回歸最小。
ChatGPT: Chat Generative Pre-trained Transformer,20221130發布,是一款聊天機器人,用戶通過引導對話來完成各種任務,如回答問題、查找信息、文本摘要等。ChatGPT 由 GPT-3.5(之后由 GPT-4 )提供支持,它是 InstructGPT 的姐妹模型,經過訓練可以遵循prompt中的指令并提供詳細的回應。
GPT-4:是 GPT 家族中最新、最強大的 LLM。GPT-4 于 2023 年 3 月推出,是一款多模態 LLM,它可以將圖像和文本作為輸入并生成文本輸出。盡管在一些現實場景最有挑戰性的任務中,GPT-4 表現不如人類,但它在多個專業性和學術性的benchmark上都拿到了和人類相似的性能表現,例如在模擬律師資格考試中在參賽者中位列Top 10%。與早期的 GPT 模型相似,GPT-4 首先經過預訓練,在大型文本語料庫預估next token,然后使用 RLHF 進行微調,使得模型行為與人類期望的行為保持一致。
5.模型類型劃分:LLaMA類型
LLaMA是由Meta發布的開源模型。首版LLaMA模型2023年2月發布,參數量在7billion到65billion之間。開源模型一般要比非開源模型發展更迅猛一些。LLaMA發展迅速,基于LLaMa/LLaMA-2的instruction-following 模型在快速出現,例如Code LLaMA/Gorilla/Giraffe/Vigogne/Tulu 65B/Long LLaMA/Stable Beluga2等。
LLaMA:2023年2月發布,包含7B-65B的參數,在萬億級別的tokens上進行訓練。模型結構是在GPT-3的基礎上做了一些改動:激活函數使用SwiGLU替換ReLU;使用旋轉位置嵌入代替絕對位置嵌入;使用均方根歸一化層替換標準歸一化層。LLaMA-13B在絕大多數基線上表現優于GPT-3 (175B),因此成為LLM領域一個較好的基線。
LLaMA-2:2023年7月和微軟合作推出LLaMA-2, 包含基礎語言模型和對話模型,即LLaMA-2 Chat。在多個公開數據集上表現優于其它開源模型。LLaMA-2首先使用開源數據預訓練語言模型,然后通過有監督微調得到初版LLaMA-chat。之后使用RLHF、拒絕采樣和近端策略優化對LLaMA-chat進行迭代優化。在RLHF 階段,人工反饋的累積對修改獎勵模型非常重要,可以防止獎勵模型發生較大變化并影響模型訓練的穩定性。
Alpaca:在GPT-3.5(text-davinci-003)基礎上,基于self-self-instruct方式,使用52k instruction-following demonstration對模型進行微調。是一個小成本模型,在學術研究領域是一個cost-effective的模型。在self-instruct數據集上,盡管體積小但是可以拿到和GPT-3.5相似的表現
Vicuna-13B:The Vicuna team使用從ShareGPT收集到的user-shared對話,對LLaMA進行finetune。使用GPT-4作為evaluator,Vicuna可以媲美OpenAI ChatGPT / GG Bards 90%的能力,同時在 90% 以上的情況下優于 LLaMA 和 Stanford Alpaca 等其他模型。Vicuna-13B 模型訓練的計算需求相對較小,訓練成本僅為 300 美元。
QLoRA:使用instruction-following數據對LLaMA進行預訓練,但是微調階段非常高效,例如可以在單個48G GPU上對65B參數的模型進行微調。通過一個凍結的4位量化預訓練語言模型將梯度帆船到低秩適配器(LoRA, Low Rank Adapters)。只需要在單個GPU上進行24小時的微調,就可以在Vicuna基準上的表現優于所有已發布模型,達到了ChatGPT的99.3%;
Koala:基于LLaMA的instruction-following語言模型,但是會更關注交互數據,包括用戶輸入和ChatGPT等優質非開源聊天模型生成的response。在一些真實用戶prompt上人工評估,Koala-13B性能可與STOA的聊天模型媲美;
Mistral-7B:出于模型的性能和效率考慮的7B參數的語言模型,在所有benchmark上表現優于開源的13B參數模型 LLaMA-2-13B。在因果推斷、數學和代碼生成上表現由于開源的34B模型LLaMA-34B。Mistral 模型利用grouped-query attention進行更快的推理,并結合sliding window attention有效地處理任意長度的序列并降低推理成本。
6.模型類型劃分:PaLM類型
PaLM(Pathways Language Model)由Google研發,最早的PaLM模型在2022年4月官宣,在2023年公開發布,有540B參數,基于transformer的LLM模型。該模型在由 7800 億個詞條組成的高質量文本語料庫上進行預訓練,這些詞條涵蓋了廣泛的自然語言任務和用例,訓練時在Pathways系統(可以高效跨多TPU進行訓練)在6144 TPU v4 芯片上進行。PaLM 在數百個自然語言理解和生成任務基準上,few-shot learning的結果都取得了SOTA的效果。PaLM-540B 不僅在一系列多步推理任務中超越了SOTA微調模型,而且在最近發布的 BIG-bench 基準測試中也與人類表現不相上下。
UPaLM:使用 UL2R 在 PaLM 上持續訓練 8B、62B 和 540B 規模的模型,這是一種使用 UL2 的混合降噪目標分幾步持續訓練 LLM 的方法,計算資源大約能節約2倍
Flan-PaLM:對UPaLM進行instruction-finetune。使用更多的任務、更大的模型尺寸以及chain-of-throught數據。在 1.8K個任務上經過指令微調的 Flan-PaLM-540B 的表現遠勝于 PaLM-540B(平均 +9.4%)。微調數據包括 473 個數據集、146 個任務類別和 1836 個總任務。
PaLM-2:PaLM-2 計算效率更高,與PaLM相比會有更好的多語種和推理能力。PaLM-2 使用多個目標任務進行預訓練,通過對英語、多語種和推理任務的廣泛評估,不同的模型尺寸的PaLM-2 ,在下游任務的模型性能都有顯著提升,同時展現了比PaLM 更快、更高效的推理能力。
Med-PaLM:是為醫療問答提供高質量回答的特定領域模型,使用instruction prompt tuning(使用少量示例 && 節省參數地將LLM對齊到新領域)。盡管不如人類臨床醫生,但是在多個醫療保健任務上取得了非常encouraging的結果。
7.模型類型劃分:其他LLM類型
有一些LLM不在上述三個LLM家族中,但也是一些非常受歡迎的LLM,拿到了優異的性能并推進LLM領域的發展。例如:FLAN、GLM、Orca、Gemini等。
其中Gemini團隊推出了一系列新的多模態模型,這些模型在圖像、音頻、視頻和文本理解方面表現出了優異的能力。Gemini 系列包括三個版本:Ultra 用于高度復雜的任務,Pro 用于增強性能和大規模部署能力,Nano 用于設備應用程序。Gemini 架構建立在 Transformer 解碼器之上,通過使用高效的注意力機制, 可支持 32k 上下文長度的訓練
本文轉載自 ??圓圓的算法筆記??,作者: 妙子
