本書是關(guān)于如何從零開始構(gòu)建大模型的指南,由暢銷書作家塞巴斯蒂安·拉施卡撰寫,通過清晰的文字、圖表和實例,逐步指導(dǎo)讀者創(chuàng)建自己的大模型。在本書中,讀者將學(xué)習(xí)如何規(guī)劃和編寫大模型的各個組成部分、為大模型訓(xùn)練準(zhǔn)備適當(dāng)?shù)臄?shù)據(jù)集、進(jìn)行通用語料庫的預(yù)訓(xùn)練,以及定制特定任務(wù)的微調(diào)。此外,本書還將探討如何利用人工反饋確保大模型遵循指令,以及如何將預(yù)訓(xùn)練權(quán)重加載到大模型中。
Github4萬星神作,數(shù)據(jù)處理 模型搭建 無監(jiān)督訓(xùn)練 任務(wù)微調(diào),僅需掌握Python,帶你從零構(gòu)建AI大模型;
揭開大模型背后的面紗,讓讀者了解其工作原理,學(xué)習(xí)如何評估其質(zhì)量,并掌握微調(diào)和改進(jìn)的具體技術(shù);
強(qiáng)調(diào)親手實踐,使用PyTorch而不依賴現(xiàn)有庫,通過各種圖表和圖解幫助讀者深入理解LLM的工作機(jī)制、局限性和定制方式;
通過本書的學(xué)習(xí),讀者可以創(chuàng)建自己的小型但功能強(qiáng)大的模型,并將其作為個人助手使用;
更有驚喜彩蛋:深度解析DeepSeek大模型背后技術(shù),揭秘行業(yè)前沿!
塞巴斯蒂安·拉施卡(Sebastian Raschka),極具影響力的人工智能專家,本書配套GitHub項目LLMs-from-scratch達(dá)4萬星。現(xiàn)在大模型獨角獸公司Lightning Al任資深研究工程師。博士畢業(yè)于密歇根州立大學(xué),2018~2023年威斯康星大學(xué)麥迪遜分校助理教授(終身教職),從事深度學(xué)習(xí)科研和教學(xué)。除本書外,他還寫作了暢銷書《大模型技術(shù)30講》和《Python機(jī)器學(xué)習(xí)》。 【譯者簡介】 覃立波,中南大學(xué)特聘教授,博士生導(dǎo)師。現(xiàn)任中國中文信息學(xué)會青工委秘書長。主要研究興趣為人工智能、自然語言處理、大模型等。曾擔(dān)任ACL.EMNLP、NAACL、IJCAI等國際會議領(lǐng)域主席或高級程序委員會委員。 馮驍騁,哈爾濱工業(yè)大學(xué)計算學(xué)部社會計算與交互機(jī)器人研究中心教授,博士生導(dǎo)師,人工智能學(xué)院副院長。研究興趣包括自然語言處理、大模型等。在ACL、AAAl、IJCAl、TKDE、TOIS 等CCFA/B類國際會議及期刊發(fā)表論文50余篇。 劉乾,新加坡某公司的研究科學(xué)家,主要研究方向是代碼生成與自然語言推理。他在頂級人工智能會議(如ICLR、NeurlPS、ICML)上發(fā)表了數(shù)十篇論文,曾獲得2020年百度獎學(xué)金提名獎、北京市2023年優(yōu)秀博士論文提名獎、2024年 KAUST Rising Stars in Al等榮譽(yù)。 【主審人簡介】 車萬翔,哈爾濱工業(yè)大學(xué)計算學(xué)部長聘教授,博士生導(dǎo)師,人工智能研究院副院長,國家級青年人才,斯坦福大學(xué)訪問學(xué)者。 黃科科,中南大學(xué)教授,博士生導(dǎo)師,自動化學(xué)院副院長,國家級青年人才。
第 1章 理解大語言模型 1
1.1 什么是大語言模型 2
1.2 大語言模型的應(yīng)用 3
1.3 構(gòu)建和使用大語言模型的各個階段 4
1.4 Transformer架構(gòu)介紹 6
1.5 利用大型數(shù)據(jù)集 9
1.6 深入剖析GPT架構(gòu) 11
1.7 構(gòu)建大語言模型 13
1.8 小結(jié) 14
第 2章 處理文本數(shù)據(jù) 15
2.1 理解詞嵌入 16
2.2 文本分詞 18
2.3 將詞元轉(zhuǎn)換為詞元ID 21
2.4 引入特殊上下文詞元 25
2.5 BPE 29
2.6 使用滑動窗口進(jìn)行數(shù)據(jù)采樣 31
2.7 創(chuàng)建詞元嵌入 37
2.8 編碼單詞位置信息 40
2.9 小結(jié) 44
第3章 編碼注意力機(jī)制 45
3.1 長序列建模中的問題 46
3.2 使用注意力機(jī)制捕捉數(shù)據(jù)依賴關(guān)系 48
3.3 通過自注意力機(jī)制關(guān)注輸入的不同部分 49
3.3.1 無可訓(xùn)練權(quán)重的簡單自注意力機(jī)制 50
3.3.2 計算所有輸入詞元的注意力權(quán)重 54
3.4 實現(xiàn)帶可訓(xùn)練權(quán)重的自注意力機(jī)制 57
3.4.1 逐步計算注意力權(quán)重 58
3.4.2 實現(xiàn)一個簡化的自注意力Python類 63
3.5 利用因果注意力隱藏未來詞匯 66
3.5.1 因果注意力的掩碼實現(xiàn) 67
3.5.2 利用dropout掩碼額外的注意力權(quán)重 70
3.5.3 實現(xiàn)一個簡化的因果注意力類 72
3.6 將單頭注意力擴(kuò)展到多頭注意力 74
3.6.1 疊加多個單頭注意力層 74
3.6.2 通過權(quán)重劃分實現(xiàn)多頭注意力 77
3.7 小結(jié) 82
第4章 從頭實現(xiàn)GPT模型進(jìn)行文本生成 83
4.1 構(gòu)建一個大語言模型架構(gòu) 84
4.2 使用層歸一化進(jìn)行歸一化激活 89
4.3 實現(xiàn)具有GELU激活函數(shù)的前饋神經(jīng)網(wǎng)絡(luò) 94
4.4 添加快捷連接 99
4.5 連接Transformer塊中的注意力層和線性層 102
4.6 實現(xiàn)GPT模型 105
4.7 生成文本 110
4.8 小結(jié) 115
第5章 在無標(biāo)簽數(shù)據(jù)上進(jìn)行預(yù)訓(xùn)練 116
5.1 評估文本生成模型 117
5.1.1 使用GPT來生成文本 117
5.1.2 計算文本生成損失 119
5.1.3 計算訓(xùn)練集和驗證集的損失 126
5.2 訓(xùn)練大語言模型 131
5.3 控制隨機(jī)性的解碼策略 137
5.3.1 溫度縮放 138
5.3.2 Top-k采樣 141
5.3.3 修改文本生成函數(shù) 142
5.4 使用PyTorch加載和保存模型權(quán)重 144
5.5 從OpenAI加載預(yù)訓(xùn)練權(quán)重 145
5.6 小結(jié) 152
第6章 針對分類的微調(diào) 153
6.1 不同類型的微調(diào) 154
6.2 準(zhǔn)備數(shù)據(jù)集 155
6.3 創(chuàng)建數(shù)據(jù)加載器 159
6.4 初始化帶有預(yù)訓(xùn)練權(quán)重的模型 163
6.5 添加分類頭 166
6.6 計算分類損失和準(zhǔn)確率 172
6.7 在有監(jiān)督數(shù)據(jù)上微調(diào)模型 176
6.8 使用大語言模型作為垃圾消息分類器 182
6.9 小結(jié) 184
第7章 通過微調(diào)遵循人類指令 185
7.1 指令微調(diào)介紹 186
7.2 為有監(jiān)督指令微調(diào)準(zhǔn)備數(shù)據(jù)集 187
7.3 將數(shù)據(jù)組織成訓(xùn)練批次 190
7.4 創(chuàng)建指令數(shù)據(jù)集的數(shù)據(jù)加載器 201
7.5 加載預(yù)訓(xùn)練的大語言模型 204
7.6 在指令數(shù)據(jù)上微調(diào)大語言模型 207
7.7 抽取并保存模型回復(fù) 211
7.8 評估微調(diào)后的大語言模型 216
7.9 結(jié)論 224
7.9.1 下一步 225
7.9.2 跟上領(lǐng)域的最新進(jìn)展 225
7.9.3 寫在最后 225
7.10 小結(jié) 225
附錄A PyTorch簡介 227
附錄B 參考文獻(xiàn)和延伸閱讀 263
附錄C 練習(xí)的解決方案 273
附錄D 為訓(xùn)練循環(huán)添加更多細(xì)節(jié)和優(yōu)化功能 285
附錄E 使用LoRA進(jìn)行參數(shù)高效微調(diào) 294
附錄F 理解推理大語言模型:構(gòu)建與優(yōu)化推理模型的方法和策略 308