隨著ChatGPT等大語言模型的迅速發(fā)展,大語言模型已經(jīng)成為人工智能領域發(fā)展的快車道,不同領域涌現(xiàn)出各種強大的新模型。開發(fā)者想要獨立構建、部署符合自身需求的大語言模型,需要理解大語言模型的實現(xiàn)框架和基本原理。
本書梳理大語言模型的發(fā)展,首先介紹Transformer模型的基本原理、結構和模塊及在NLP任務中的應用;然后介紹由只編碼(Encoder-Only)到只解碼(Decoder-Only)的技術路線發(fā)展過程中對應的 BERT、GPT等大語言模型;接下來介紹大語言模型在部署、訓練、調優(yōu)過程中涉及的各種關鍵技術,如自動并行、預訓練與微調、RLHF等,并提供相應的實踐指導;最后以開源大語言模型BLOOM和LLaMA為樣例,介紹其架構和實現(xiàn)過程,幫助讀者理解并構建、部署自己的大語言模型。本書還提供了基于MindSpore框架的豐富樣例代碼。
本書適合人工智能、智能科學與技術、計算機科學與技術、電子信息工程、自動化等專業(yè)的本科生和研究生閱讀,同時也為從事大語言模型相關工作的軟件開發(fā)工程師和科研人員提供翔實的參考資料。
1、本書以MindSpore人工智能框架在大語言模型領域的應用為主要內容,詳盡闡述了MindSpore框架在大語言模型中的應用。
2、無論是開發(fā)者、從業(yè)者還是學生,希望能夠快速理解并構建大模型,本書以實踐為主,能夠幫助開發(fā)者快速理解并打造自己的大模型。
3、本書強調實戰(zhàn)應用,提供了豐富的實戰(zhàn)案例和代碼示例,助力讀者在實踐中掌握構建和優(yōu)化大語言模型的關鍵技術。
陳雷 加拿大滑鐵盧大學計算機博士,F(xiàn)擔任香港科技大學(廣州)信息樞紐院長,數(shù)據(jù)科學與分析學域講座教授,廣州市大數(shù)據(jù)智能重點實驗室主任。研究方向包括數(shù)據(jù)驅動的人工智能、大數(shù)據(jù)分析、知識圖譜、眾包、區(qū)塊鏈、圖數(shù)據(jù)庫、概率和不確定數(shù)據(jù)庫,以及時空和時間序列數(shù)據(jù)庫。曾獲2020年度中國電子學會科學技術獎一等獎、2015年ACM SIGMOD時間檢測獎2022 WLDB研究論文獎、2014LDB示范獎。曾擔任ICDE2023和VLDB2019 PC聯(lián)合主席、VLDB Journal聯(lián)合主編、VLDB基金會執(zhí)行委員。目前擔任IEEETKDE主編、DASFAA國際會議指導委員會主席、長江講座教授,當選IEEE會士和ACM杰出科學家,獲得國家杰出青年科學基金海外青年學者合作研究項目支持。
第1章 大語言模型的發(fā)展 001
1.1 人工智能的發(fā)展階段 002
1.2 從深度學習到大語言模型 004
第2章 Transformer模型 006
2.1 Transformer模型的基本原理 007
2.1.1 注意力機制 007
2.1.2 自注意力機制 010
2.1.3 多頭注意力機制 011
2.2 Transformer模型的結構和模塊 013
2.2.1 位置編碼 014
2.2.2 編碼器 016
2.2.3 解碼器 020
2.2.4 模型代碼 024
2.3 Transformer模型在NLP任務中的應用 025
2.4 使用MindSpore實現(xiàn)基于Transformer模型的文本機器翻譯模型 026
2.4.1 數(shù)據(jù)集準備與數(shù)據(jù)預處理 026
2.4.2 模型構建 033
2.4.3 模型訓練與評估 034
2.4.4 模型推理 037
2.5參考文獻 040
第3章 BERT實踐 041
3.1 BERT基本原理 042
3.2 BERT結構 043
3.3 BERT預訓練 045
3.4 BERT微調 046
3.5 使用MindSpore實現(xiàn)數(shù)據(jù)并行的BERT預訓練 047
3.6 參考文獻 050
第4章 GPT實踐 051
4.1 GPT基本原理 052
4.2 GPT訓練框架 053
4.2.1 無監(jiān)督預訓練 054
4.2.2 有監(jiān)督微調 054
4.2.3 GPT下游任務及模型輸入 055
4.3 使用MindSpore實現(xiàn)GPT的微調 056
4.3.1 數(shù)據(jù)預處理 056
4.3.2 模型定義 059
4.3.3 模型訓練 066
4.3.4 模型評估 067
4.4 參考文獻 067
第5章 GPT-2實踐 068
5.1 GPT-2的基本原理 069
5.2 GPT-2的技術創(chuàng)新與改進 070
5.3 GPT-2的優(yōu)缺點 071
5.4 使用MindSpore實現(xiàn)GPT-2的微調 072
5.5 參考文獻 076
第6章 自動并行 077
6.1數(shù)據(jù)并行原理 078
6.2 算子并行原理 080
6.3 優(yōu)化器并行原理 082
6.3.1 背景及意義 082
6.3.2 基本原理 083
6.4 流水線并行原理 085
6.4.1 背景及意義 085
6.4.2 基本原理 085
6.5 MoE并行原理 086
6.5.1 背景及意義 086
6.5.2 算法原理 088
6.6 自動并行策略搜索 089
6.6.1 策略搜索定位 090
6.6.2 策略搜索算法 091
6.6.3 MindSpore實踐 092
6.7 異構計算 092
6.7.1 計算流程 092
6.7.2 優(yōu)化器異構 093
6.7.3 詞表異構 094
6.7.4 參數(shù)服務器異構 095
6.7.5 多層存儲 096
6.8 大語言模型性能分析 097
6.8.1 縮短單個模塊耗時 097
6.8.2 提高不同模塊任務間的并行度 097
6.9 MindFormers接口 099
6.9.1 準備工作 099
6.9.2 Trainer高階接口快速入門 099
6.9.3 Pipeline推理接口快速入門 101
6.9.4 AutoClass快速入門 101
6.9.5 Transformer接口介紹 102
6.10 參考文獻 103
第7章 大語言模型預訓練與微調 106
7.1 預訓練大語言模型代碼生成 107
7.1.1 多語言代碼生成模型CodeGeeX 107
7.1.2 多語言代碼生成基準HumanEval-X 109
7.2 提示調優(yōu) 111
7.2.1 提示流程 111
7.2.2 提示模板 114
7.2.3 優(yōu)缺點分析 115
7.3 指令調優(yōu) 116
7.3.1 基本流程 116
7.3.2 指令模板 117
7.3.3 優(yōu)缺點分析 118
7.4 參考文獻 119
第8章 基于人類反饋的強化學習 121
8.1 基本原理 122
8.2 強化學習 122
8.2.1 核心思想 122
8.2.2 關鍵元素 123
8.2.3 策略與價值函數(shù) 123
8.2.4 PPO算法 124
8.3 InstructGPT和ChatGPT中的RLHF 126
8.3.1 訓練流程 126
8.3.2 訓練任務 127
8.3.3 模型效果 128
8.4 優(yōu)缺點分析 129
8.5 參考文獻 130
第9章 BLOOM和LLaMA模型實踐 131
9.1 BLOOM介紹 132
9.1.1 模型結構 132
9.1.2 預訓練數(shù)據(jù)集 134
9.2 BLOOM實現(xiàn) 136
9.2.1 BLOOM架構實現(xiàn) 136
9.2.2 BLOOM總結 142
9.3 基于BLOOM的微調 142
9.3.1 數(shù)據(jù)集準備 142
9.3.2 Checkpoint轉換 142
9.3.3 生成集群通信表 143
9.3.4 啟動預訓練或微調 143
9.3.5 微調后的對話效果 144
9.4 LLaMA模型介紹 148
9.4.1 模型結構 148
9.4.2 預訓練 152
9.4.3 SFT與RLHF 152
9.5 LLaMA模型實現(xiàn) 153
9.5.1 LLaMA模型模塊實現(xiàn) 153
9.5.2 LLaMA模型結構實現(xiàn) 155
9.6 基于LLaMA模型的微調 159
9.6.1 數(shù)據(jù)集準備 159
9.6.2 ckpt轉換 159
9.6.3 生成集群通信表 159
9.6.4 啟動微調 160
9.6.5 微調效果 160
9.7 參考文獻 161