從零構建大模型:算法、訓練與微調
梁楠
相關主題
商品描述
目錄大綱
目 錄
引言 1
一、大模型技術的發展歷史 1
1. 基於規則和統計學習的早期階段 1
2. 神經網絡與深度學習的崛起 2
3. Transformer的誕生與自註意力機制的崛起 2
4. 預訓練模型的興起:BERT、GPT和T5 2
5. 超大規模模型與多模態應用 3
二、開發環境配置基礎 3
1. 硬件配置要求 3
2. 軟件依賴與環境搭建 4
3. 常見問題與解決方案 5
第 1 章 Transformer模型基礎 6
1.1 Seq2Seq模型 6
1.1.1 編碼器-解碼器工作原理 7
1.1.2 Seq2Seq結構實現 7
1.2 分詞與嵌入層 11
1.2.1 分詞器:將文本轉換為嵌入向量 11
1.2.2 PyTorch實現嵌入層(將分詞後的結果輸入模型) 11
1.3 自註意力與多頭註意力機制 15
1.3.1 自註意力機制計算過程(QKV矩陣生成和點積運算) 15
1.3.2 多頭註意力機制與Transformer 18
1.4 殘差連接與層歸一化 22
1.4.1 殘差連接層的實現 22
1.4.2 層歸一化與訓練穩定性 25
1.5 位置編碼器 28
1.5.1 位置編碼的計算與實現 28
1.5.2 位置編碼在無序文本數據中的作用 30
1.6 本章小結 35
1.7 思考題 35
第 2 章 GPT模型文本生成核心原理與實現 37
2.1 GPT-2核心模塊 37
2.1.1 層堆疊 37
2.1.2 GPT-2中的註意力機制 41
2.2 GPT模型的文本生成過程 44
2.2.1 詳解GPT-2文本生成過程 44
2.2.2 Greedy Search和Beam Search算法的實現與對比 47
2.3 模型效果評估與調優 51
2.3.1 模型常見評估方法 51
2.3.2 基於困惑度的評估過程 56
2.4 本章小結 60
2.5 思考題 60
第 3 章 BERT模型核心實現與預訓練 62
3.1 BERT模型的核心實現 62
3.1.1 編碼器堆疊 62
3.1.2 BERT的自註意力機制與掩碼任務 67
3.2 預訓練任務:掩碼語言模型(MLM) 71
3.2.1 MLM任務實現過程 71
3.2.2 如何對輸入數據進行隨機遮掩並預測 72
3.3 BERT模型的微調與分類任務應用 77
3.4 本章小結 81
3.5 思考題 81
第 4 章 ViT模型 83
4.1 圖像分塊與嵌入 83
4.2 ViT模型的核心架構實現 89
4.2.1 ViT模型的基礎結構 89
4.2.2 自註意力和多頭註意力在圖像處理中的應用 91
4.3 訓練與評估ViT模型 96
4.4 ViT模型與註意力嚴格量化分析 100
4.5 本章小結 105
4.6 思考題 105
第 5 章 高階微調策略:Adapter Tuning與P-Tuning 107
5.1 Adapter Tuning的實現 107
5.2 LoRA Tuning實現 111
5.3 Prompt Tuning與P-Tuning的應用 114
5.3.1 Prompt Tuning 114
5.3.2 P-Tuning 117
5.3.3 Prompt Tuning和P-Tuning組合微調 120
5.3.4 長文本情感分類模型的微調與驗證 122
5.4 本章小結 125
5.5 思考題 125
第 6 章 數據處理與數據增強 127
6.1 數據預處理與清洗 127
6.1.1 文本數據預處理 127
6.1.2 文本數據清洗 130
6.2 文本數據增強 133
6.2.1 同義詞替換 133
6.2.2 隨機插入 135
6.2.3 其他類型的文本數據增強方法 137
6.3 分詞與嵌入層的應用 139
6.3.1 深度理解分詞技術 140
6.3.2 嵌入向量的生成與優化 142
6.3.3 文本預處理與數據增強綜合案例 144
6.4 本章小結 146
6.5 思考題 147
第 7 章 模型性能優化:混合精度訓練與分佈式訓練 148
7.1 混合精度訓練的實現 148
7.2 多GPU並行與分佈式訓練的實現 150
7.2.1 分佈式訓練流程與常規配置方案 150
7.2.2 Data Parallel方案 152
7.2.3 Model Parallel方案 154
7.3 梯度累積的實現 157
7.3.1 梯度累積初步實現 157
7.3.2 小批量訓練中的梯度累積 159
7.3.3 梯度累積處理文本分類任務 161
7.4 本章小結 164
7.5 思考題 165
第 8 章 對比學習與對抗訓練 166
8.1 對比學習 166
8.1.1 構建正負樣本對及損失函數 166
8.1.2 SimCLR的實現與初步應用 171
8.2 基於對比學習的預訓練與微調 174
8.2.1 通過對比學習進行自監督預訓練 175
8.2.2 對比學習在分類、聚類等任務中的表現 180
8.3 生成式對抗網絡的實現與優化 183
8.4 對抗訓練在大模型中的應用 188
8.5 本章小結 192
8.6 思考題 192
第 9 章 自適應優化器與動態學習率調度 194
9.1 AdamW優化器與LAMB優化器的實現 194
9.1.1 AdamW優化器 194
9.1.2 LAMB優化器 197
9.2 基於梯度累積的優化技巧 200
9.2.1 大批量內存受限環境 200
9.2.2 梯度累積的應用場景和參數調整對訓練效果的影響 203
9.3 動態學習率調度 205
9.3.1 線性衰減 205
9.3.2 餘弦退火 207
9.4 Warmup與循環學習率調度 209
9.4.1 Warmup策略實現 209
9.4.2 循環學習率調度 211
9.4.3 其他幾種常見的動態學習調度器 214
9.5 本章小結 217
9.6 思考題 218
第 10 章 模型蒸餾與剪枝 219
10.1 知識蒸餾:教師-學生模型 219
10.1.1 知識蒸餾核心過程 219
10.1.2 教師-學生模型 221
10.1.3 蒸餾損失 224
10.2 知識蒸餾在文本模型中的應用 226
10.2.1 知識蒸餾在文本分類模型中的應用 226
10.2.2 模型蒸餾效率分析 229
10.2.3 文本情感分析任務中的知識蒸餾效率對比 231
10.3 模型剪枝技術 234
10.3.1 權重剪枝 234
10.3.2 結構化剪枝 237
10.3.3 在嵌入式設備上部署手寫數字識別模型 240
10.3.4 BERT模型的多頭註意力剪枝 243
10.4 本章小結 247
10.5 思考題 248
第 11 章 模型訓練實戰 249
11.1 數據預處理與Tokenization細節 249
11.1.1 大規模文本數據清洗 249
11.1.2 常用分詞器的使用 252
11.2 大規模預訓練模型的設置與啟動 255
11.3 預訓練過程中的監控與中間結果保存 258
11.4 訓練中斷與恢復機制 262
11.5 綜合案例:IMDB文本分類訓練全流程 265
11.5.1 數據預處理與Tokenization 265
11.5.2 多GPU與分佈式訓練設置 266
11.5.3 訓練過程中的監控與中間結果保存 266
11.5.4 訓練中斷與恢復 267
11.5.5 測試模型性能 268
11.6 本章小結 269
11.7 思考題 270
第 12 章 模型微調實戰 271
12.1 微調數據集的選擇與準備 271
12.1.1 數據集準備與清洗 271
12.1.2 數據集分割 272
12.1.3 數據增強 272
12.2 層級凍結與部分解凍策略 274
12.3 模型參數調整與優化技巧 276
12.4 微調後的模型評估與推理優化 278
12.5 綜合微調應用案例 280
12.6 本章小結 283
12.7 思考題 283