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