本書以打造行業(yè)智能助手為主線,全面介紹大模型的理論與實(shí)踐。本書在內(nèi)容上側(cè)重于實(shí)踐,兼顧理論的系統(tǒng)性。全書共4部分: 第1部分為大模型導(dǎo)論(第1章),介紹大模型的相關(guān)概念以及大模型的過去、現(xiàn)在與未來;第2部分為理論知識(第2、3章),介紹大模型基礎(chǔ)知識和大語言模型分布式訓(xùn)練;第3部分為實(shí)踐(第4~7章),介紹大模型的繼續(xù)預(yù)訓(xùn)練、對齊、推理與部署,通過實(shí)際案例詳細(xì)介紹如何打造行業(yè)智能助手并將其部署到生產(chǎn)環(huán)境中;第4部分為高級主題(第8、9章),介紹多模態(tài)大模型、AI智能體的最新進(jìn)展。
本書可以作為大模型領(lǐng)域技術(shù)人員的參考書,同時(shí)也可以供有志于從事大模型工作的高校相關(guān)專業(yè)本科生以及從搜索、自然語言處理等方向轉(zhuǎn)向大模型的專業(yè)人員自學(xué)。
這一次的大模型浪潮可謂洶涌澎湃,業(yè)界一致認(rèn)為它將成為自互聯(lián)網(wǎng)時(shí)代以來最大的一次生產(chǎn)力變革。ChatGPT發(fā)布已兩年多,大模型在業(yè)務(wù)場景的落地并不盡如人意,出現(xiàn)了很多看衰大模型前景的聲音。事實(shí)上,歷史上任何一項(xiàng)革命性技術(shù)都經(jīng)歷過類似的階段,大模型也不例外。不同于以往的任何一項(xiàng)技術(shù),大模型是非常令人驚艷的,它在人類歷史上第一次展示出人工智能(AI)可以理解人類語言。大模型首先以聊天機(jī)器人ChatGPT的產(chǎn)品形態(tài)展示了能力,任何人都可以通過跟它對話來測試它的能力。因此,任何人都可以參與討論大模型的能力。然而,實(shí)際上大多數(shù)非專業(yè)人士對大模型背后的技術(shù)卻并不了解,尤其不了解大模型技術(shù)的局限性。因此,在初期,大眾很容易對大模型抱有過高的期望。隨著時(shí)間的流逝,當(dāng)人們的新鮮感過去,大模型在聊天中暴露出越來越多的問題,特別是幻覺問題,大模型被人們普遍認(rèn)為是AI的又一個(gè)巨大的泡沫。
作為一個(gè)在互聯(lián)網(wǎng)一線長期深耕的技術(shù)人員,我對大模型技術(shù)一直是持短期謹(jǐn)慎、長期堅(jiān)信的態(tài)度。因此,在2023年年初,我毫不猶豫地全力投入大模型領(lǐng)域,當(dāng)時(shí)我有幸作為主要負(fù)責(zé)人參與打造醫(yī)療大模型。今年,我又有機(jī)會在智能汽車領(lǐng)域參與AI智能體的開發(fā)。在這個(gè)過程中,我得到了不少教訓(xùn),也快速積累了一些一手經(jīng)驗(yàn)。鑒于大模型的變革性前景,我認(rèn)為未來幾年我國將需要大量的大模型人才。目前市面上缺乏一本既重視實(shí)踐又不忽視理論的技術(shù)圖書。因此,從2023年9月起,我就有意地對自己的經(jīng)驗(yàn)加以總結(jié),通過實(shí)際案例幫助讀者快速學(xué)會如何打造一款支持多輪對話的行業(yè)智能助手,進(jìn)一步從實(shí)踐出發(fā),揭示關(guān)鍵技術(shù)背后的原理,從而讓讀者有能力持續(xù)改進(jìn)實(shí)踐效果。希望本書能夠幫助那些有志于從事大模型工作的應(yīng)屆畢業(yè)生以及想從其他方向(特別是搜索、自然語言處理方向)轉(zhuǎn)向大模型方向的從業(yè)人員,快速掌握大模型技術(shù)。不過,由于工作繁忙,我寫了幾個(gè)月以后中斷了一段時(shí)間。在此期間,大模型技術(shù),包括多模態(tài)大模型(GPT4o)、AI智能體、文生視頻(Sora)等,又有了很多新的進(jìn)展,我也將這些進(jìn)展包含到本書里。當(dāng)我完成本書的寫作時(shí),OpenAI發(fā)布了o1大模型。強(qiáng)化學(xué)習(xí)作為最近20年人工智能領(lǐng)域與深度學(xué)習(xí)幾乎同等重要的技術(shù),在o1大模型中發(fā)揮了主要的作用,將大模型的能力提升帶入新的方向。實(shí)際上我一直在期待這一突破的到來。只是限于時(shí)間和精力,暫未將這一新技術(shù)的內(nèi)容納入本書。此外,增強(qiáng)大模型對物理世界的感知和理解也是我非?春玫囊粋(gè)未來方向,希望以后能夠有機(jī)會跟大家分享相關(guān)的技術(shù)。
如圖1所示,本書內(nèi)容分為4部分: 大模型導(dǎo)論、理論知識、實(shí)踐、高級主題。
圖1本書的內(nèi)容結(jié)構(gòu)
第1部分為大模型導(dǎo)論,包括第1章,介紹大模型的相關(guān)概念以及大模型的過去、現(xiàn)在與未來。
第2部分為理論知識,包括第2、3章,介紹大模型基礎(chǔ)知識和大語言模型分布式訓(xùn)練。
第3部分為實(shí)踐,包括第4~7章,介紹大模型的繼續(xù)預(yù)訓(xùn)練、對齊、推理與部署,通過實(shí)際案例詳細(xì)介紹如何打造行業(yè)智能助手并將其部署到生產(chǎn)環(huán)境中。
第4部分為高級主題,包括第8、9章,介紹多模態(tài)大模型、AI智能體的最新進(jìn)展。
感謝我的家人。在我寫作期間,妻子承擔(dān)了幾乎所有的家務(wù)與照看孩子的事情。女兒經(jīng)常好奇地詢問我的寫作進(jìn)度。家人的支持與理解使我能夠安下心來,順利完成本書的寫作。
感謝我的導(dǎo)師將我引薦給清華大學(xué)出版社。
限于作者的水平,書中不足之處在所難免,敬請專家與讀者批評指正。
作者2025年2月
第1章大模型導(dǎo)論1
1.1大模型概念1
1.1.1預(yù)訓(xùn)練2
1.1.2有監(jiān)督微調(diào)2
1.1.3偏好對齊2
1.2大模型的過去、現(xiàn)在與未來2
1.2.1大模型簡史2
1.2.2大模型的現(xiàn)狀4
1.2.3大模型未來展望8
1.3本書的讀者對象與內(nèi)容11
參考文獻(xiàn)12
第2章大模型基礎(chǔ)知識13
2.1分詞13
2.1.1粒度13
2.1.2子詞拆分算法13
2.1.3實(shí)現(xiàn)14
2.2位置編碼15
2.2.1RoPE15
2.2.2ALiBi16
2.3網(wǎng)絡(luò)結(jié)構(gòu)17
2.3.1Transformer架構(gòu)17
2.3.2大模型的Transformer架構(gòu)20
2.3.3MoE模型22
2.4長上下文25
2.4.1采用RoPE位置編碼的長上下文擴(kuò)展25
2.4.2注意力操作優(yōu)化27
參考文獻(xiàn)31
第3章大語言模型分布式訓(xùn)練33
3.1大語言模型高效訓(xùn)練技術(shù)要點(diǎn)33
3.2并行模式34
3.2.1數(shù)據(jù)并行化35
3.2.2流水線并行化35
3.2.3張量并行化37
3.3集合通信38
3.3.1allreduce操作的分解39
3.3.2allreduce操作的高效實(shí)現(xiàn)39
3.4DeepSpeed訓(xùn)練加速框架40
3.4.1ZeRO技術(shù)41
3.4.2ZeRO技術(shù)與流水線并行化結(jié)合43
3.4.3ZeRO技術(shù)與張量并行化結(jié)合43
3.5DeepSpeed訓(xùn)練方案建議44
參考文獻(xiàn)45
第4章繼續(xù)預(yù)訓(xùn)練46
4.1繼續(xù)預(yù)訓(xùn)練的必要性46
4.2數(shù)據(jù)預(yù)處理47
4.2.1低質(zhì)數(shù)據(jù)過濾48
4.2.2去重48
4.3實(shí)戰(zhàn): 行業(yè)大模型的繼續(xù)預(yù)訓(xùn)練49
4.3.1數(shù)據(jù)準(zhǔn)備49
4.3.2數(shù)據(jù)處理50
4.3.3模型訓(xùn)練50
參考文獻(xiàn)59
第5章對齊(上)指令微調(diào)60
5.1指令微調(diào)的必要性60
5.2微調(diào)方法61
5.2.1全參微調(diào)61
5.2.2部分參數(shù)微調(diào)61
5.3指令集的自動構(gòu)造64
5.3.1指令的大規(guī)模自動生成64
5.3.2指令集的進(jìn)化66
5.3.3拒絕采樣66
5.4實(shí)戰(zhàn): 打造具有多輪對話能力的行業(yè)智能助手66
5.4.1數(shù)據(jù)準(zhǔn)備67
5.4.2數(shù)據(jù)處理67
5.4.3模型訓(xùn)練69
5.4.4評測74
參考文獻(xiàn)75
第6章對齊(下)強(qiáng)化學(xué)習(xí)微調(diào)76
6.1強(qiáng)化學(xué)習(xí)微調(diào)的必要性76
6.2人類偏好對齊的強(qiáng)化學(xué)習(xí)建模77
6.3RLHF78
6.3.1RLHF技術(shù)基本流程78
6.3.2獎勵模型78
6.3.3PPO算法79
6.4RLAIF81
6.4.1偏好標(biāo)注81
6.4.2微調(diào)技術(shù)路線83
6.4.3評估83
6.5實(shí)戰(zhàn): DeepSpeedChat代碼解析84
6.5.1訓(xùn)練獎勵模型84
6.5.2PPO訓(xùn)練85
6.6DPO算法90
6.6.1DPO算法目標(biāo)函數(shù)推導(dǎo)91
6.6.2Online DPO算法92
參考文獻(xiàn)94
第7章推理與部署95
7.1推理加速95
7.1.1常規(guī)工程化手段95
7.1.2自注意力計(jì)算訪存優(yōu)化97
7.1.3推測解碼97
7.2量化102
7.2.1量化感知訓(xùn)練103
7.2.2訓(xùn)練后量化104
7.3部署109
7.3.1TensorRTLLM109
7.3.2vLLM111
7.3.3DeepSpeed Inference111
7.3.4SGLang112
7.3.5平臺選型建議112
7.4實(shí)戰(zhàn): 使用FastChat部署Qwen 14B113
7.4.1準(zhǔn)備工作113
7.4.2部署113
參考文獻(xiàn)115
第8章多模態(tài)大模型116
8.1多模態(tài)技術(shù)路線116
8.2橋接多模態(tài)大模型120
8.2.1Flamingo121
8.2.2BLIP系列124
8.2.3LLaVA128
8.2.4OneLLM129
8.3原生多模態(tài)大模型131
8.3.1Gemini132
8.3.2GPT4o133
8.3.3Chameleon133
參考文獻(xiàn)136
第9章AI智能體137
9.1AI智能體架構(gòu)138
9.1.1感知139
9.1.2規(guī)劃139
9.1.3記憶143
9.1.4行動147
9.2開發(fā)框架149
9.2.1LangChain149
9.2.2AutoGen150
9.2.3AGENTS151
9.2.4MetaGPT153
參考文獻(xiàn)154