MLNLP 社區(qū)是國內(nèi)外知名的機器學習與自然語言處理社區(qū),受眾覆蓋國內(nèi)外NLP碩博生、高校老師以及企業(yè)研究人員。 社區(qū)的愿景 是促進國內(nèi)外自然語言處理,機器學習學術界、產(chǎn)業(yè)界和廣大愛好者之間的交流和進步,特別是初學者同學們的進步。 前言:最近 LLM 大火,相關領域熟人都想往這個方向靠,好幾個朋友咨詢了這塊,也有幫做模擬面試。最近有個哥們讓我推薦對這個領域整體快速了解的資料。于是我就花了些時間整理資料,希望可以俯瞰當前 LLM 領域,能夠給個整體的印象,如若對某個細分板塊感興趣,讀者也可以找更深入的資料。
本文假設讀者有一定相關領域的知識,至少是機器學習,深度學習,或者數(shù)據(jù)科學的經(jīng)驗。
Overview 概觀 前沿模型觀摩 大概看看現(xiàn)在最好能做到什么程度,雖然細節(jié)干貨少。
接著按不同模塊分別推薦些我能想到的比較重要入門論文和資料,精力有限,肯定是掛一漏萬,歡迎指正完善。
預訓練 整體 預訓練可先看一些經(jīng)典基座模型訓練流程:
LLAMA:經(jīng)歷各種檢驗最靠譜英文模型,很多訓練細節(jié)值得參考
BloombergGPT:雖是金融領域模型,但各種思想都類似,很踏實,特別給訓領域模型借鑒
Transformer Math 101:很干的一篇關于訓練中各種計算的博客,扎實
[可選] 谷歌系的:PaLM,F(xiàn)lan-PaLM:一個預訓練,一個指令微調(diào),大公司還是挺多insight可學習
[可選] BLOOM,BLOOMZ:可以大概看看,比較糙,特別是和大公司幾篇對比
數(shù)據(jù)相關 訓練相關 Megatron-DeepSpeed:現(xiàn)在基本都基于這套框架訓,有必要瀏覽下原論文
DeepSpeed 相關:ZeRO優(yōu)化器必看,可能看視頻會更好理解些
lilian寫的關于大規(guī)模分布式訓練相關的綜述:How to Train Really Large Models on Many GPUs?
Tokenization SFT(Supervised FineTuning)/Instruction Tuning 就是搜集到指令數(shù)據(jù),然后直接 finetune 訓練,難點在于在于怎么收集到較好的SFT數(shù)據(jù)。
主要可分成下面幾種方法:
SFT 模型 RLHF 部分 建議給 OpenAI 在這塊的努力都刷一遍,會有很清晰了解,各種細節(jié)。現(xiàn)在大多引 22 年 InstructGPT,但 OpenAI 這整套流程也都是一步步完善出來的。最早期在 GPT2 就探索用 Human Preference,中間如何嘗試、遇到什么問題、以及怎么解決都寫得挺清楚,甚至還專門寫了怎么培訓標注人員,當時 OpenAI 是真的挺 Open:
Fine-Tuning GPT-2 from Human Preference(Blog):做 SFT 來獲得人類偏好,但 SFT 數(shù)據(jù)都是模型采樣后人標出來的
Learning to summarize from human feedback(Blog):基本這套 SFT、Reward Model、RLHF 流程齊全了,用在 Summarization 任務,只標了 Pair-wise 的數(shù)據(jù),而不是后面的 Rank
Summarizing Books with Human Feedback(Blog):當摸清楚這套流程之后,OpenAI 開始對 RLHF 增大規(guī)模,也開始發(fā)現(xiàn)生成這塊的評估難,引入模型輔助的評估
WebGPT: Improving the Factual Accuracy of Language Models through Web Browsing[Blog]:OpenAI 想用強化來訓練模型瀏覽網(wǎng)絡,然后做檢索增強
InstructGPT:Training language models to follow instructions with human feedback[Blog]:最后才到 InstructGPT,羅馬不是一天建成,能看到 OpenAI 在 RLHF 上是積累了很長時間的,到 InstructGPT 可能是 API 用戶反饋有類似需求,當時沒引起太大反響,直到加入了對話數(shù)據(jù),并且給模型放出來給大家用,也就是 ChatGPT.
推理使用 解碼方法 Prompt Engineering Zero-shot 和 Few-Shot 給 GPT3 那篇看完就差不多懂了,這里列些較經(jīng)典方法
Chain-of-Thought Prompting Elicits Reasoning in Large Language Models:思維鏈,開山之作,本質(zhì)上給LLM模型更多 token 來用來思考,增加結(jié)果準確性
Self-Consistency Improves Chain of Thought Reasoning in Language Models:思維鏈后續(xù),其實就是類似search算法給搜索空間擴大,比如beam從1改成多個,然后最后結(jié)果 ensemble 一下
Tree of Thoughts: Deliberate Problem Solving with Large Language Models:給鏈擴展成樹,進行檢索和集成,上面兩種都變成樹的某個特例
[可選] ChatGPT Prompt Engineering for Developers:吳教授 DeepLearning AI 關于 ChatGPT prompt 相關
反思以及其他高階應用 Reflexion: Language Agents with Verbal Reinforcement Learning:提出反思系統(tǒng),模型能對自己之前的結(jié)果進行反思,之后再做出修改
AutoGPT介紹:基于 GPT API 非常酷的應用,通過設計維護幾個GPT角色,還有Memory系統(tǒng),給AutoGPT一個目標和初始任務,就能讓它成為一個無情的做任務機器人,完成任務,創(chuàng)造新任務,排好優(yōu)先級,繼續(xù)做任務
[可選] Generative Agents: Interactive Simulacra of Human Behavior:寫 AutoGPT 的時候莫名讓我想起這篇,雖然是講用GPT做游戲任務的思考機器,但是本身里面就涉及到大量應用相關的設計
[可選] Large Language Models as Tool Makers:idea 也很酷,維護幾個GPT角色,讓一個做工具,一個使用工具解決問題,還有個判斷什么時候需要做新工具,也是系統(tǒng)的設計
其他 Tools (API 調(diào)用) 有些能力調(diào)外部接口會容易很多,包括最新信息獲取
Toolformer: Language Models Can Teach Themselves to Use Tools:占坑之作,方法較 naive
TaskMatrix.AI: Completing Tasks by Connecting Foundation Models with Millions of APIs:給 Tools 理念推到更大的框架
搜索增強LLM(雖然我認為檢索也只是一個工具):REPLUG: Retrieval-Augmented Black-Box Language Models
Code Related Math Related 因為數(shù)學涉及到模型的推理能力,所以一般認為較重要
[可選] GPT API相關應用 [可選] 損失函數(shù)