Transformer速查寶典:模型、架構(gòu)、訓(xùn)練方法的論文都在這里了
AI 發(fā)展迅速,這對(duì)于剛剛?cè)腴T或是正想跟上「潮流」的新手們來說并不友好。如果有一份詳細(xì)全面的知識(shí)列表可能會(huì)幫助他們更快走上「正途」。
今天給大家?guī)硪黄?Transformer 的綜述文章,供大家了解 Transformer 的來龍去脈及相關(guān)技術(shù)。
本篇綜述涵蓋了 21 種模型、11 種架構(gòu)變化、7 種預(yù)訓(xùn)練后處理技術(shù)和 3 種訓(xùn)練技術(shù)(還有 5 種不屬于以上技術(shù)的東西)。模型包括 GPT-3、GPT-4、Gopher、AlphaCode、RETRO、GPT-3.5、Chinchilla、Flamingo 等。一些重要的架構(gòu)變化包括多查詢注意力、稀疏注意力、混合專家等。同時(shí)還介紹了 RLHF、CAI、Minerva 等預(yù)訓(xùn)練后處理技術(shù)以及超參。所有內(nèi)容均按照重要性和獨(dú)特性進(jìn)行排序,并將鏈接附在下方。
以下為機(jī)器之心不改變?cè)x對(duì)文章進(jìn)行編譯的內(nèi)容。
一、模型
以下模型的屬性若未明確說明,要么未公開,要么大致遵循標(biāo)準(zhǔn) GPT 配置。
1.GPT-3
- 屬性:175B 參數(shù),96 層,12288 嵌入維度,96 個(gè)注意力頭
- 論文地址:https://arxiv.org/pdf/2005.14165.pdf
- 發(fā)布詳情 Open AI 發(fā)布于 2020 年 5 月
本文是繼 GPT-2 論文(2018 及擴(kuò)展定律論文后,大語言模型的一片開創(chuàng)性論文。以下是論文中指出有關(guān) GPT-3 的特征。
- 它在一個(gè) 300B token 的數(shù)據(jù)集上進(jìn)行訓(xùn)練。該數(shù)據(jù)集主要由過濾后的 Common Crawl 以及一些書籍、網(wǎng)絡(luò)文本和維基百科構(gòu)成;
- 使用了 BPE tokenizer(與 GPT-2 相同);
- 2048 上下文長度;
- 交替使用密集和稀疏注意力層;
- 在最初的 375M toks 中,學(xué)習(xí)率升至 0.6 × 10^-4,260B toks 后余弦衰減至 10%;
- 在前 12B 個(gè) token 中,批大小從 32k toks 上升到 3.2M toks;
- 4x MLP 投影率,如 2017 年 Transformer 論文所示;
- 50k 詞匯表(vocab size)。
以上的許多特征形成了一種標(biāo)準(zhǔn)配置,被后來的模型重復(fù)使用。
在論文記錄超參數(shù)的表 2.1 中有一個(gè)可能的拼寫錯(cuò)誤,其中 GPT-3 13B 被記作為具有 5140 的嵌入維度,這里應(yīng)該是 5120。
2.GPT-4
- 報(bào)告地址:https://arxiv.org/pdf/2303.08774.pdf
- 發(fā)布詳情:Open AI 2022 年 8 月對(duì)其完成預(yù)訓(xùn)練,發(fā)布于 2023 年 3 月。
GPT-4 是 OpenAI 提供的一個(gè)模型,其架構(gòu)不明(技術(shù)上類似于 Transformer)。技術(shù)報(bào)告主要包含大部分評(píng)估(結(jié)果表現(xiàn)良好),以及能夠從較小模型精確推斷出的持續(xù)擴(kuò)展結(jié)果。報(bào)告還記錄了提高模型安全性的措施,并演示了 GPT-4 的多模態(tài)能力,這種能力似乎是用類似于 Flamingo 的方式訓(xùn)練的。
3.Gopher
- 屬性:280B 參數(shù),260B 非嵌入?yún)?shù),80 層,16384 嵌入維度,128 個(gè)注意力頭
- 論文地址:https://arxiv.org/pdf/2112.11446.pdf
- 發(fā)布詳情:DeepMind 在 2020 年底對(duì)其進(jìn)行訓(xùn)練,發(fā)布于 2021 年 12 月。
Gopher 是 DeepMind 在 2021 年發(fā)布的第一個(gè)大型語言模型。它使用 RMSNorm 而不是 LayerNorm,使用 Transformer-XL 的相對(duì)位置編碼方案而不是絕對(duì)位置編碼,這就是嵌入?yún)?shù)如此之多的原因。
它使用 SentencePiece 進(jìn)行分詞,詞匯表大小為 32k,并用 300B token 進(jìn)行訓(xùn)練,其中一半來自為 Gopher 收集的 MassiveText,以及書籍、Common Crawl、維基百科、新聞和 Github。
4.AlphaCode
- 屬性:41B 參數(shù),8 個(gè)編碼器層,56 個(gè)解碼器層,6144 嵌入維度
- 論文地址:https://arxiv.org/pdf/2203.07814.pdf
- 發(fā)布詳情:DeepMind 發(fā)布于 2022 年 2 月。
AlphaCode 是在 715GB(967B token)代碼基礎(chǔ)上訓(xùn)練出來的模型,可以用于解決編程競(jìng)賽問題。它是本文中唯一采用解碼器 - 編碼器架構(gòu)的模型。它將編程競(jìng)賽題視為一項(xiàng)翻譯任務(wù)(問題陳述 → 解決方案),以獲得雙向性。它在編碼器中使用 1536 個(gè) token,在解碼器中使用 768 個(gè) token。使用多查詢注意力,并在推理時(shí)生成數(shù)千個(gè)樣本,然后選擇一個(gè)解決方案子集進(jìn)行提交。
5.RETRO
- 屬性:7B 參數(shù)
- 論文地址:https://arxiv.org/pdf/2112.04426.pdf
- 發(fā)布詳情:DeepMind 發(fā)布于 2022 年 2 月。
檢索是一種通用的技術(shù),即在進(jìn)行推理時(shí)提供一個(gè)數(shù)據(jù)庫供其查找。RETRO 是第一篇使用 2T token 數(shù)據(jù)庫的 Transformer 檢索論文。它使用預(yù)訓(xùn)練的 BERT 式模型將 token 數(shù)據(jù)庫嵌入塊中,然后在訓(xùn)練和推理期間對(duì)數(shù)據(jù)庫中的最近鄰執(zhí)行分塊交叉注意力。
6.GPT-3.5
- 屬性:架構(gòu)未知
- 文檔地址 https://platform.openai.com/docs/guides/gpt
- 發(fā)布詳情:OpenAI 發(fā)布于 2022 年 3 月。
OpenAI 將三種模型劃分為 GTP-3.5,具體包括 davinci-002 系列中的兩種和 davinci-003 系列中的一種。其中, code-davinci-002 是基本模型,text-davinci-002 是一個(gè)帶有 FeedME 非 RL 指令調(diào)整的版本。text-davinci-003 是帶有 RLHF 的 InstructGPT。有一篇 InstructGPT 論文訓(xùn)練了 RLHF 模型,但沒有提到 FeedME,而 text-davinci-002 雖然是 InstructGPT 模型,但沒有使用 RLHF。OpenAI API 上的 davinci 模型在 2020 年的論文中被指出是 175B 模型,但從未證實(shí) davinci-002 是否具有相同尺寸。
7.Chinchilla
- 屬性:70B 參數(shù),80 層,8192 嵌入維度,64 個(gè)注意力頭
- 論文地址:https://arxiv.org/pdf/2203.15556.pdf
- 發(fā)布詳情:DeepMind 發(fā)布于 2022 年 3 月。
Chinchilla 的論文中引入了新的、改進(jìn)版的 scalling law。它使用 1.5T token(與 Gopher 相似的數(shù)據(jù)集)和與 Gopher 相同的計(jì)算量進(jìn)行訓(xùn)練,但性能優(yōu)于 Gopher。在 scalling law 中,模型的參數(shù)和 token 數(shù)按照 20:1 的比例線性增加。學(xué)習(xí)率采用余弦調(diào)度進(jìn)行調(diào)整。Megatron Turing NLG 和 Jurassic J-1 Jumbo 是另外兩個(gè)大型模型,由于它們不是 Chinchilla 最優(yōu)模型,也沒有獨(dú)特意義,因此沒有在本文中單獨(dú)記錄。
8.Flamingo
- 屬性:80B 參數(shù)
- 論文地址 https://arxiv.org/pdf/2204.14198.pdf
- 發(fā)布詳情:DeepMind 發(fā)布于 2022 年 4 月。
Flamingo 是一個(gè)多模態(tài)(文本 / 圖像)模型。它只生成文本,而圖像輸入通過視覺編碼器(435M 參數(shù))運(yùn)行,并使用交叉注意力來關(guān)注這些輸出。它還在視覺編碼器之后使用重采樣器(194M 參數(shù)),無論輸入特征的數(shù)量如何,都能產(chǎn)生固定(少量)的視覺 token。它們建立在凍結(jié)的 Chinchilla 模型上,80B 參數(shù)來自添加到 70B Chinchilla 模型中的交叉注意力層。PaLI 是谷歌的圖像 / 語言多模態(tài)模型。
9.Gato
- 屬性:1.18B 參數(shù)
- 論文地址:https://arxiv.org/pdf/2205.06175.pdf
- 發(fā)布詳情:發(fā)布于 2022 年 5 月。
Gato 是一個(gè)通用型智能體,算是 Flamingo 的后續(xù)產(chǎn)品,但擁有更多的模態(tài)。它使用圖像和文本,以及按鈕按壓數(shù)據(jù)格式化成的 token,還有來自機(jī)器人感知的連續(xù)數(shù)據(jù)編碼,并嘗試使用盡可能少的數(shù)據(jù)來完成額外的任務(wù)。這些任務(wù)包括機(jī)器人堆疊測(cè)試、圖像字幕和 Atari。
10.Anthropic LM
- 屬性:52B 參數(shù),64 層,8192 嵌入維度
- 論文地址:https://arxiv.org/pdf/2112.00861.pdf
- 發(fā)布詳情:Anthropic 發(fā)布于 2021 年 12 月。
在 400Btoken 上進(jìn)行訓(xùn)練,但在 Chinchilla 之后的一篇論文(《 Language Models (Mostly) Know What They Know 》)中,Anthropic 使用了為 850B token 訓(xùn)練的具有相同架構(gòu)的模型。在后來的另一篇關(guān)于道德自我糾正的論文中,使用了一個(gè)沒有明確說明的 175B 模型。
11.PaLM
- 屬性:540B 參數(shù),118 層,18432 嵌入維度,48 個(gè)注意力頭
- 論文地址:https://arxiv.org/pdf/2204.02311.pdf
- 發(fā)布詳情:Google 發(fā)布于 2022 年 4 月。
截至 2023 年 1 月,這是公開已知的最大密集語言模型。PaLM 使用 SwiGLU 激活,使用并行注意力、多查詢注意力、旋轉(zhuǎn)嵌入,并對(duì)輸入和輸出嵌入使用相同的矩陣。它沒有使用偏置,使用了一個(gè)包含 256k 個(gè) token 的 SentencePiece tokenizer。PaLM 是在與 LaMDA 和 GLaM 類似的數(shù)據(jù)集上,用 780B 個(gè) token 進(jìn)行訓(xùn)練的。
12.GPT-NeoX
- 屬性:20B 參數(shù)
- 論文地址:https://arxiv.org/pdf/2204.06745.pdf
- 項(xiàng)目地址:https://github.com/EleutherAI/gpt-neox
- 發(fā)布詳情:Eleuther AI 發(fā)布于 2022 年 2 月。
這是 Eleuther 的一個(gè)開源模型。它使用 DeepSpeed (微軟) 和 Nvidia Megatron 在 GPU 上進(jìn)行訓(xùn)練,并使用與 GPT-J 相同的架構(gòu)修改,在整個(gè) Pile (400B token) 上進(jìn)行訓(xùn)練。
13.GPT-J
- 屬性:6.7B 參數(shù)
- 項(xiàng)目地址:https://github.com/kingoflolz/mesh-transformer-jax/#gpt-j-6b
- 發(fā)布詳情:Eleuther AI 發(fā)布于 2021 年 7 月。
GPT-J 因完全開源而聞名,并且與 GPT-3 論文中 6.7B 版本性能相媲美。它在 TPU 上進(jìn)行訓(xùn)練,并使用旋轉(zhuǎn)嵌入,并行注意力。為降低復(fù)雜性,它僅使用了密集注意力層。它是在 Pile 上訓(xùn)練的,Pile 是一個(gè)由 Eleuther AI 創(chuàng)建的開放數(shù)據(jù)集,包含 22 個(gè)較小的數(shù)據(jù)集,包括 Common Crawl、 OpenWebText、書籍和論文。
14.GLaM
- 屬性:1.2T 參數(shù)
- 論文地址:https://arxiv.org/pdf/2112.06905.pdf
- 發(fā)布詳情:Google 發(fā)布于 2021 年 12 月。
GLaM 被稱為「通用語言模型」,是一個(gè)混合專家 (MoE) 模型,其中的參數(shù)是稀疏激活。它每層有 64 個(gè)專家,每個(gè) token 激活 96.6B 參數(shù)。每一層都有一個(gè)門控單元,它為每個(gè) token 選擇 64 個(gè) MLP 中的一個(gè)或兩個(gè)。
15.LAMDA
- 屬性:137B 參數(shù),64 層,8192 嵌入維度,128 個(gè)注意力頭
- 論文地址:https://arxiv.org/pdf/2201.08239.pdf
- 發(fā)布詳情:Google 在 I/O 上演示于 2021 年 5 月,論文發(fā)布于 2022 年 1 月。
LaMDA 對(duì)話模型是根據(jù) Meena 創(chuàng)建的。它明確有一個(gè)包含大量對(duì)話 / 論壇的 2.81T 數(shù)據(jù)集 (用 32k 的 SentencePiece tokenizer 進(jìn)行編碼)?;A(chǔ)模型有時(shí)被稱為 LaMDA GLM 或 GLM- 137B;LaMDA 在此基礎(chǔ)上添加了許多對(duì)話微調(diào)。
模型訓(xùn)練用了多少個(gè) token 是明確的,它用到了 1024 個(gè) TPUv3,使用率為 56.5%,訓(xùn)練時(shí)間為 57.7 天,batch 大小為 256k,可能是 bf16,計(jì)算表明這將是 2.81T token 中的約 900B。
16.Switch
- 屬性:1T 參數(shù)
- 論文地址:https://arxiv.org/pdf/2101.03961.pdf
- 發(fā)布詳情:Google 發(fā)布于 2022 年 6 月。
SwitchTransformer 對(duì) GLaM 進(jìn)行了改進(jìn),它只路由到一個(gè)專家,從而減少了計(jì)算量。它的創(chuàng)新是使用了不同的路由機(jī)制,證明了路由到單個(gè)專家是有效的。
17.BLOOM
- 屬性:176B 參數(shù),70 層,14336 嵌入維度,112 個(gè)注意力頭
- 論文地址:https://arxiv.org/pdf/2211.05100.pdf
- 發(fā)布詳情:HuggingFace 發(fā)布于 2022 年 7 月。
截止于本文梳理的時(shí)間,BLOOM 是最大的開源模型。它在 HuggingFace 語料庫 ROOTS 上進(jìn)行訓(xùn)練,該語料庫包含 498 個(gè) HuggingFace 數(shù)據(jù)集。該模型在 366B token 上進(jìn)行訓(xùn)練,并且位置編碼是用 ALiBi 完成的。它用到了 250k 詞匯表大小的 BPE tokenizer,幫助它適應(yīng)多語言數(shù)據(jù)。
18.Galactica
- 屬性:120B 參數(shù)
- 論文地址:https://arxiv.org/pdf/2211.09085.pdf
- 發(fā)布詳情:Meta 發(fā)布于 2022 年 11 月。
Galactica 是一個(gè)科學(xué)模型,主要以論文、少量代碼、其他基于知識(shí)的數(shù)據(jù)和一些 Common Crawl 數(shù)據(jù)為基礎(chǔ)進(jìn)行預(yù)訓(xùn)練。它用 <work> token 對(duì)工作記憶進(jìn)行編碼,并使用特殊 token 對(duì)引文進(jìn)行編碼。
19.LLaMa
- 屬性:65B 參數(shù)
- 論文地址:https://arxiv.org/pdf/2302.13971.pdf
- 發(fā)布詳情:Meta 發(fā)布于 2023 年 2 月。
LLaMa 像是 Chinchilla 的復(fù)制品,有著相當(dāng)標(biāo)準(zhǔn)的訓(xùn)練組合,大部分為 Common Crawl。
20.OPT
- 屬性:175B 參數(shù),與 GPT-3 相同的架構(gòu)
- 論文地址:https://arxiv.org/pdf/2205.01068.pdf
- 項(xiàng)目地址:https://github.com/facebookresearch/metaseq/blob/main/projects/OPT/chronicles/OPT175B_Logbook.pdf
- 發(fā)布詳情:Meta 發(fā)布于 2022 年 5 月。
這是 GPT-3 的復(fù)刻版,它在 Pile 和 PushShift reddit 上訓(xùn)練,只有 180B token。
這些 Meta 論文完全不是相互關(guān)聯(lián)的項(xiàng)目。LLama、OPT 和 Galactica 共有 41 位作者,只有一位是重合的。
21.GLM-130B
- 屬性:130B 參數(shù)
- 論文地址:https://arxiv.org/pdf/2210.02414.pdf
- 發(fā)布詳情:清華大學(xué)發(fā)布于 2022 年 10 月。
GLM 是一個(gè)開源的雙語(中文 / 英文)模型。它使用旋轉(zhuǎn)嵌入和 DeepNorm,并通過 GeGLU 激活 MLP。值得關(guān)注的是,它主要以 INT4 進(jìn)行推理(而其他模型,如 BLOOM 和 OPT,則量化為 INT8)。它還在預(yù)訓(xùn)練中加入了 prompt,而不是標(biāo)準(zhǔn)的 GPT 架構(gòu),并且使用 GLM 實(shí)現(xiàn)了雙向注意力。
架構(gòu)變化
1. 多查詢注意力(Multi-Query Attention,MQA)
論文地址:https://arxiv.org/pdf/1911.02150.pdf
Noam Shazeer 的這篇論文中,key 和 value 在 head 之間共享,大大減少了推理時(shí)所需的內(nèi)存數(shù)量,提高了延遲和吞吐量。這是一篇非常簡(jiǎn)潔的論文,并附有代碼和結(jié)果。AlphaCode 和 PaLM 都使用 MQA。
2. 稀疏注意力
論文地址:https://arxiv.org/pdf/1904.10509.pdf
在這種機(jī)制中,注意力不會(huì)應(yīng)用于所有之前的 token。它描述了稀疏 Transformer 的兩種風(fēng)格,一種是跨步式,即關(guān)注最后 N 個(gè) token;另一種是固定式,即關(guān)注序列中的部分 token。在 GPT-3 論文中,該模型被描述為交替密集和「局部帶狀」稀疏層。
3. 混合專家(Mixture-of-Experts,MoE)
關(guān)于 MoE 的內(nèi)容有很多,在介紹 GLaM 和 Switch 時(shí)已經(jīng)提到了一點(diǎn)。因此,此處將羅列一些優(yōu)秀的原始文獻(xiàn)。
- 2017 年關(guān)于 LSTM 的 MoE 論文 https://arxiv.org/abs/1701.06538
- 面向 MoE 的 Deepmind Scaling Laws 論文 https://arxiv.org/pdf/2202.01169.pdf
- 訓(xùn)練 1.1T 參數(shù) MoE 的 Meta 論文 :https://arxiv.org/pdf/2112.10684.pdf
一些谷歌的論文:
- https://arxiv.org/pdf/2202.08906.pdf
- https://arxiv.org/pdf/2202.09368.pdf
- https://arxiv.org/pdf/2205.10937.pdf
- https://arxiv.org/pdf/2202.08906.pdf
- https://openreview.net/pdf?id=23ZjUGpjcc
4.FlashAttention
論文地址:https://arxiv.org/pdf/2205.14135.pdf
FlashAttention 是一種架構(gòu)變革,能以更少的內(nèi)存訪問量完成注意力處理。它對(duì)注意力矩陣進(jìn)行切片和增量化的 softmax 約簡(jiǎn),并避免了在后向傳播過程中存儲(chǔ)整個(gè)中間注意力矩陣。論文指出,與 megatron 相比,它訓(xùn)練速度提高到 1.7 倍,推理速度提高到 4 倍多(上下文長度越長,倍數(shù)越大)。在此之前,另一篇文章 (https://arxiv.org/pdf/2112.05682.pdf) 也在 TPU 上采用了同樣的方法,實(shí)現(xiàn)了 O (log_n) 內(nèi)存占用。
5. 編碼器 + 解碼器
論文地址:https://arxiv.org/pdf/1706.03762.pdf
根據(jù) Transformer 的原始論文,編碼器 - 解碼器架構(gòu)最初是為翻譯任務(wù)而設(shè)計(jì)的。經(jīng)典的 GPT 架構(gòu)交替使用注意力和 MLP 模塊。原始的 Transformer 則采用了編碼器塊和解碼器塊。編碼器塊的結(jié)構(gòu)是:注意力機(jī)制 → MLP;解碼器塊的結(jié)構(gòu)是:掩蔽注意力→ 編碼器 - 解碼器注意力 → MLP。對(duì)于許多序列到序列的任務(wù)來說,例如 AlphaCode 或 T5,這也是一個(gè)合理的架構(gòu)。
6. 平行注意力
論文地址:https://arxiv.org/pdf/2204.02311.pdf
PaLM 使用平行注意力。即在訓(xùn)練模型時(shí),注意力層和 MLP 層并行運(yùn)行,使用相同的向量。如此一來,就可以將注意力和前饋矩陣乘法合并在一起,從而提升運(yùn)算強(qiáng)度,獲得更好的性能(PaLM 的訓(xùn)練速度提升了 15%)。GPT-J 也使用了這種方法。
7. 可供選擇的激活方案:GeGLU,SwiGLU,SoLU
論文地址:https://arxiv.org/pdf/1706.03762.pdf
最初的 Transformer 論文使用 ReLU 來激活 MLP 模塊。它在兩個(gè)線性變換(matmuls)之間進(jìn)行簡(jiǎn)單的 x if > x = 0 else 0。從直觀上看,這有點(diǎn)草率。GeLU 與 ReLU 類似,但要平滑一些。
論文地址:https://transformer-circuits.pub/2022/solu/index.html
SoLU(Softmax)簡(jiǎn)單地說就是 x*softmax (x),用于提高模型的可解釋性。
論文地址:https://arxiv.org/pdf/2002.05202.pdf
SwiGLU 是所列論文中最復(fù)雜的,也是 Noam Shazee 的個(gè)人論文。它建立在門控線性單元的基礎(chǔ)上,旨在比 ReLU 更穩(wěn)定,并在 GLU 之前進(jìn)行 swish 運(yùn)算。與 GeLU 一樣,它軟化了 ReLU,允許某些值低于零。
8.LayerNorm 的替代方案:DeepNorm,RMSNorm
LLM 每個(gè)區(qū)塊有兩次 norm(一次用于注意力,一次用于前饋),它會(huì)執(zhí)行一些歸一化功能以改進(jìn)訓(xùn)練。
DeepNorm 論文地址:https://arxiv.org/pdf/2203.00555.pdf)
RMSNorm 論文地址:https://arxiv.org/pdf/1910.07467.pdf
DeepNorm 和 RMSNorm 可以成為替代方案。RMSNorm(均方根)簡(jiǎn)單來說就是數(shù)值均值的平方根。還有一種 batch norm,效率很低,用起來似乎不太聰明。
9.RoPE
- 論文地址:https://arxiv.org/pdf/2104.09864.pdf
- 相關(guān) Blog 文章:https://blog.eleuther.ai/rotary-embeddings/
這篇 Blog 文章總結(jié)得十分優(yōu)秀,本文不做贅述。
10.BPE vs SentencePiece Tokenizers
- BPE 項(xiàng)目地址:https://huggingface.co/learn/nlp-course/chapter6/5?fw=pt
- SentencePiece 編碼器項(xiàng)目地址:https://github.com/google/sentencepiece
字節(jié)對(duì)編碼(Byte Pair Encoding,BPE)是大多數(shù)語言模型的默認(rèn)編碼,最初的 GPT 論文、GPT-3 以及 GPT-3.5 都使用了這種編碼。不使用純 BPE,而使用 SentencePiece 情況的一個(gè)明顯原因是,分布不包含空格分隔的單詞,就像 AlphaCode、GLM(中文)和 PaLM(明確是因?yàn)槎嗾Z言)那樣。
11.ALiBi
論文地址:https://arxiv.org/pdf/2108.12409.pdf
ALiBi(Attention with Linear Biases)是一種長上下文位置嵌入方案,通過根據(jù)距離對(duì) qk 分?jǐn)?shù)進(jìn)行線性偏置,來支持對(duì)更長的長度進(jìn)行外推。BLOOM 用了 ALiBi,Galactica 也嘗試過,但沒有采用。
預(yù)訓(xùn)練后處理技術(shù)
1. 采用 PPO 算法的 RLHF
在 RLHF 中,首先要訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型,由標(biāo)注員評(píng)估模型生成的數(shù)組。然后在 RL 中使用 PPO(近端策略優(yōu)化),策略生成由獎(jiǎng)勵(lì)模型評(píng)估的輸出,以改進(jìn)策略。
Christiano 論文:https://proceedings.neurips.cc/paper/2017/hash/d5e2c0adad503c91f91df240d0cd4e49-Abstract.html
Deepmind 的 Sparrow 和 Anthropic 的 LM 都是用 RL (AI|H) F 訓(xùn)練的,它們都有對(duì)話界面。WebGPT 和 GopherCite 一樣,也是用 RLHF 訓(xùn)練的(后者調(diào)用了 RLHPreferences)。我認(rèn)為,這都起源于 2017 年的 Christiano,它先于 LLM 所有內(nèi)容,之后才是 2020 年根據(jù)人類反饋進(jìn)行的總結(jié)以及 PPO 論文。
2020 年根據(jù)人類反饋進(jìn)行的總結(jié) https://proceedings.neurips.cc/paper/2020/file/1f89885d556929e98d3ef9b86448f951-Paper.pdf
2.Constitutional
論文鏈接:https://arxiv.org/pdf/2212.08073.pdf
作為 RLHF 的擴(kuò)展,Constitutional 基本上是 RLAIF,不過實(shí)際上被稱為 CAI。它有一個(gè)監(jiān)督學(xué)習(xí)階段,在這一階段,只提供幫助的 AI 會(huì)生成對(duì)抗性 prompt。然后,助手會(huì)根據(jù)所提供的 constitution(以字符串的形式提供給模型的一組短值)迭代出自己的響應(yīng)。然后對(duì)這些響應(yīng)進(jìn)行微調(diào)。第二階段就像采用 PPO 的 RLHF,只不過將 AI 反饋替換了。
3.Minerva
論文地址:https://arxiv.org/pdf/2206.14858.pdf
Minerva 是 Blueshift 團(tuán)隊(duì)于 2022 年 6 月發(fā)布的一個(gè)數(shù)學(xué)和科學(xué)數(shù)據(jù)微調(diào)模型,執(zhí)行效果非常好。它是一個(gè)來自 PaLM 的 62/540B 微調(diào)模型。它的數(shù)據(jù)集來自 ArXiV 和一些網(wǎng)站,并經(jīng)過精心預(yù)處理,保留了數(shù)學(xué)格式。
4.Codex
論文地址:https://arxiv.org/pdf/2107.03374.pdf
Codex 于 2021 年 7 月推出(并支撐了 Github Copilot 的推出),是在 100B token 代碼 (此處為公開的 Github 代碼) 上微調(diào)而成的。該論文還首次提出了 HumanEval,即人類編寫的代碼評(píng)估。本文最值得注意的是,它證明了代碼數(shù)據(jù)對(duì)代碼性能非常重要,因?yàn)?GPT-J 在代碼方面的表現(xiàn)優(yōu)于 GPT-3。他們還為代碼添加了一些 token,這使壓縮率提高了 30%。
5. 只對(duì) CoTed 輸出進(jìn)行微調(diào)
我忘了哪篇論文是這么做的,但依稀記得他們根據(jù)模型的思維鏈輸出對(duì)模型進(jìn)行了微調(diào),結(jié)果變得更好。雖然這在意料之中,但是也值得關(guān)注。
6.FeedME (SFT)
論文地址:https://arxiv.org/pdf/2203.02155.pdf
這種方法在 Instruct GPT 論文中有所描述,但這不一定是該方法起源。該方法的起源更加接近下面這篇論文。
論文地址:https://arxiv.org/pdf/1909.08593.pdf
監(jiān)督微調(diào)使用人工生成的內(nèi)容,然后用于微調(diào)預(yù)訓(xùn)練模型。論文發(fā)現(xiàn),SFT 比基礎(chǔ)預(yù)訓(xùn)練模型表現(xiàn)更好,但 RLHF 比 SFT 表現(xiàn)更好。
7.FLAN
論文地址:https://arxiv.org/pdf/2109.01652.pdf
FLAN 是一個(gè)經(jīng)過指令調(diào)整的模型(在指令格式的 nlp 任務(wù)上進(jìn)行了微調(diào)),可提升零樣本性能。
訓(xùn)練技術(shù)
1. 善于設(shè)置超參數(shù)
沒有論文是專門討論這個(gè)的,但正確設(shè)置超參數(shù)顯然是非常重要的。
通過閱讀以下文章可以獲得一些基準(zhǔn)。
- Chinchilla 論文:https://arxiv.org/pdf/2203.15556.pdf
- Scalling Laws 論文 https://arxiv.org/pdf/2001.08361.pdf
- Jane Street 的有關(guān)理解批大小的博客文章:https://blog.janestreet.com/does-batch-size-matter/
2. 基于人類反饋的預(yù)訓(xùn)練
論文地址:https://arxiv.org/pdf/2302.08582.pdf
盡管 PHF(Pretraining with Human Feedback)在預(yù)訓(xùn)練時(shí)使用了一種簡(jiǎn)單的技術(shù)來標(biāo)記數(shù)據(jù),但預(yù)訓(xùn)練往往采用無監(jiān)督的形式。該方法在訓(xùn)練時(shí)使用兩個(gè)條件 token(好的和壞的)預(yù)置到樣本中,然后在推理時(shí)使用它們進(jìn)行采樣。該研究還嘗試了其他各種目標(biāo)(尤其是把壞數(shù)據(jù)過濾掉),但在 python 風(fēng)格、PII 和毒性上的評(píng)估結(jié)果都很差。
3.MuP
論文地址:https://arxiv.org/pdf/2203.03466.pdf
MuP(Maximal Update Parameterization )是一種參數(shù)化方法,這種方法不僅節(jié)省了參數(shù)掃描計(jì)算,而且更接近最優(yōu)。這篇論文很好地闡述了這一方法的理論依據(jù)。
其他
1. 思維鏈(CoT)
論文地址:https://arxiv.org/pdf/2201.11903.pdf
CoT 是一種讓模型 「step-by-step」思考并產(chǎn)生更好結(jié)果的技術(shù),名字起源于上述論文《 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 》。論文描述了發(fā)表于 2021 年 2 月的論文《Prompt Programming for Large Language Models:Beyond the Few-Shot Paradigm》中技術(shù)的具體應(yīng)用。
論文地址:https://arxiv.org/pdf/2102.07350.pdf
2. 工具使用
關(guān)于規(guī)范工具使用的論文可以最早追溯到 2021 年 12 月的 WebGPT 論文。文中 GPT-3 可以訪問網(wǎng)絡(luò),從而大大增強(qiáng)了模型能力。
論文地址:https://arxiv.org/pdf/2112.09332.pdf
除此以外,DeepMind 還訓(xùn)練了可以借助 RL 工具來完成各種任務(wù)的智能體 ;Meta 發(fā)布語言模型 Toolformer,可以教會(huì)自己使用工具。
- DeepMind 論文:https://arxiv.org/pdf/2202.08137.pdf
- Meta 的 Toolformer:https://arxiv.org/pdf/2302.04761.pdf
3.Fill In the Middle
論文地址:https://arxiv.org/pdf/2207.14255.pdf
這篇論文描述了一種簡(jiǎn)單的數(shù)據(jù)轉(zhuǎn)換,它將子字符串從文本中間移到末尾,并要求模型填充中間部分。這樣,模型就能獲得一種對(duì)代碼補(bǔ)全等任務(wù)非常有用的能力,而不會(huì)影響嚴(yán)格意義上從左到右任務(wù)的性能。
4. 采樣技術(shù):Top-k,Top-p (核),Beam Search
與 Top -P 有關(guān)的論文地址:https://arxiv.org/pdf/1904.09751.pdf
語言模型的輸出基本上是每個(gè)可能 token 的 logit,然后將其 softmax 化為概率。將 logits 轉(zhuǎn)換為 token 的最簡(jiǎn)單方法,就是取最有可能的 token。當(dāng)語言模型有溫度控制時(shí),它將 logits 除以溫度,這使模型對(duì)其首選更有信心 / 更沒有信心。Top -K 采樣從該分布中獲取前 K 個(gè) token 和樣本。Top -P 采樣,或稱核采樣,會(huì)選擇 tokens 中概率累積排名前 P 個(gè)百分比的部分,并從這個(gè)選定的部分進(jìn)行抽樣。
5. 無尾采樣(Tail Free Sampling)
文章地址:https://www.trentonbricken.com/Tail-Free-Sampling/
無尾采樣是 Top-p 采樣的衍生,之所以這樣命名是為了找到 「尾」,因?yàn)?Top-p 采樣可能會(huì)在許多 token 具有相似概率的點(diǎn)上被切斷而失敗。上面這篇文章像是說明了無尾采樣能夠更好進(jìn)行采樣工作的原因,但當(dāng)涉及到提高模型的創(chuàng)造力和范圍時(shí),沒有很好的基準(zhǔn)。
補(bǔ)充地址(文章中提到的其他論文的地址)如下:
- GPT-2 論文(2018):https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
- 擴(kuò)展定律論文:https://arxiv.org/pdf/2001.08361.pdf
- Transformer 論文 2017:https://arxiv.org/pdf/1706.03762.pdf
- Turing NLG 論文:https://arxiv.org/pdf/2201.11990.pdf
- Jurassic J-1 Jumbo 論文:https://uploads-ssl.webflow.com/60fd4503684b466578c0d307/61138924626a6981ee09caf6_jurassic_tech_paper.pdf
- PaLI 論文:https://arxiv.org/pdf/2209.06794.pdf
- post-Chinchilla 論文:https://arxiv.org/pdf/2207.05221.pdf
- 有關(guān)道德自我糾正的論文:https://arxiv.org/pdf/2302.07459.pdf
- 近端策略優(yōu)化論文:https://arxiv.org/pdf/1707.06347.pdf
- Deepmind 的 Sparrow 論文:https://arxiv.org/pdf/2209.14375.pdf
- WebGPT 論文:https://arxiv.org/pdf/2112.09332.pdf
- GopherCite 論文:https://arxiv.org/pdf/2203.11147.pdf