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