定 價(jià):¥99.00
作 者: | (美)冠華·王 |
出版社: | 清華大學(xué)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787302633112 | 出版時(shí)間: | 2023-04-01 | 包裝: | 平裝 |
開(kāi)本: | 16開(kāi) | 頁(yè)數(shù): | 字?jǐn)?shù): |
第1篇 數(shù) 據(jù) 并 行
第1章 拆分輸入數(shù)據(jù) 3
1.1 單節(jié)點(diǎn)訓(xùn)練太慢 3
1.1.1 數(shù)據(jù)加載帶寬和模型訓(xùn)練帶寬之間的不匹配 5
1.1.2 流行數(shù)據(jù)集的單節(jié)點(diǎn)訓(xùn)練時(shí)間 5
1.1.3 使用數(shù)據(jù)并行加速訓(xùn)練過(guò)程 7
1.2 數(shù)據(jù)并行 8
1.2.1 隨機(jī)梯度下降 11
1.2.2 模型同步 12
1.3 超參數(shù)調(diào)優(yōu) 14
1.3.1 全局批次大小 14
1.3.2 學(xué)習(xí)率調(diào)整 14
1.3.3 模型同步方案 15
1.4 小結(jié) 16
第2章 參數(shù)服務(wù)器和All-Reduce 17
2.1 技術(shù)要求 18
2.2 參數(shù)服務(wù)器架構(gòu) 18
2.2.1 參數(shù)服務(wù)器架構(gòu)中的通信瓶頸 19
2.2.2 在參數(shù)服務(wù)器之間分片模型 21
2.3 實(shí)現(xiàn)參數(shù)服務(wù)器 23
2.3.1 定義模型層 23
2.3.2 定義參數(shù)服務(wù)器 24
2.3.3 定義工作節(jié)點(diǎn) 25
2.3.4 在參數(shù)服務(wù)器和工作節(jié)點(diǎn)之間傳遞數(shù)據(jù) 26
2.4 參數(shù)服務(wù)器的問(wèn)題 27
2.4.1 情況1—更多參數(shù)服務(wù)器 28
2.4.2 情況2—更多工作節(jié)點(diǎn) 28
2.4.3 參數(shù)服務(wù)器架構(gòu)為從業(yè)者帶來(lái)了很高的編碼復(fù)雜度 28
2.5 All-Reduce架構(gòu) 29
2.5.1 Reduce 29
2.5.2 All-Reduce 30
2.5.3 Ring All-Reduce 31
2.6 集體通信 33
2.6.1 Broadcast 33
2.6.2 Gather 34
2.6.3 All-Gather 35
2.7 小結(jié) 36
第3章 構(gòu)建數(shù)據(jù)并行訓(xùn)練和服務(wù)管道 37
3.1 技術(shù)要求 37
3.2 數(shù)據(jù)并行訓(xùn)練管道概述 38
3.2.1 輸入預(yù)處理 39
3.2.2 輸入數(shù)據(jù)分區(qū) 40
3.2.3 數(shù)據(jù)加載 41
3.2.4 數(shù)據(jù)訓(xùn)練 41
3.2.5 模型同步 42
3.2.6 模型更新 42
3.3 單機(jī)多GPU和多機(jī)多GPU 42
3.3.1 單機(jī)多GPU 43
3.3.2 多機(jī)多GPU 46
3.4 檢查點(diǎn)和容錯(cuò) 52
3.4.1 模型檢查點(diǎn) 52
3.4.2 加載模型檢查點(diǎn) 53
3.5 模型評(píng)估和超參數(shù)調(diào)優(yōu) 55
3.6 數(shù)據(jù)并行中的模型服務(wù) 57
3.7 小結(jié) 59
第4章 瓶頸和解決方案 61
4.1 數(shù)據(jù)并行訓(xùn)練中的通信瓶頸 62
4.1.1 通信工作負(fù)載分析 62
4.1.2 參數(shù)服務(wù)器架構(gòu) 62
4.1.3 All-Reduce架構(gòu) 65
4.1.4 最新通信方案的效率問(wèn)題 68
4.2 利用空閑鏈路和主機(jī)資源 69
4.2.1 Tree All-Reduce 69
4.2.2 通過(guò)PCIe和NVLink進(jìn)行混合數(shù)據(jù)傳輸 75
4.3 設(shè)備內(nèi)存瓶頸 76
4.4 重新計(jì)算和量化 77
4.4.1 重新計(jì)算 77
4.4.2 量化 81
4.5 小結(jié) 82
第2篇 模 型 并 行
第5章 拆分模型 85
5.1 技術(shù)要求 86
5.2 單節(jié)點(diǎn)訓(xùn)練錯(cuò)誤—內(nèi)存不足 86
5.2.1 在單個(gè)GPU上微調(diào)BERT 86
5.2.2 嘗試將一個(gè)巨型模型打包到單個(gè)GPU中 88
5.3 ELMo、BERT和GPT 90
5.3.1 基本概念 91
5.3.2 循環(huán)神經(jīng)網(wǎng)絡(luò) 94
5.3.3 ELMo 97
5.3.4 BERT 99
5.3.5 GPT 101
5.4 預(yù)訓(xùn)練和微調(diào) 102
5.5 最先進(jìn)的硬件 103
5.5.1 P100、V100和DGX-1 103
5.5.2 NVLink 104
5.5.3 A100和DGX-2 105
5.5.4 NVSwitch 105
5.6 小結(jié) 105
第6章 管道輸入和層拆分 107
6.1 普通模型并行的低效問(wèn)題 108
6.1.1 前向傳播 109
6.1.2 反向傳播 110
6.1.3 前向傳播和反向傳播之間的GPU空閑時(shí)間 111
6.2 管道輸入 114
6.3 管道并行的優(yōu)缺點(diǎn) 118
6.3.1 管道并行的優(yōu)勢(shì) 118
6.3.2 管道并行的缺點(diǎn) 118
6.4 層拆分 119
6.5 關(guān)于層內(nèi)模型并行的注意事項(xiàng) 121
6.6 小結(jié) 122
第7章 實(shí)現(xiàn)模型并行訓(xùn)練和服務(wù)工作流程 123
7.1 技術(shù)要求 124
7.2 整個(gè)模型并行管道概述 124
7.2.1 模型并行訓(xùn)練概述 124
7.2.2 實(shí)現(xiàn)模型并行訓(xùn)練管道 125
7.2.3 指定GPU之間的通信協(xié)議 127
7.2.4 模型并行服務(wù) 131
7.3 微調(diào)Transformer 134
7.4 模型并行中的超參數(shù)調(diào)優(yōu) 136
7.4.1 平衡GPU之間的工作負(fù)載 136
7.4.2 啟用/禁用管道并行 136
7.5 NLP模型服務(wù) 137
7.6 小結(jié) 138
第8章 實(shí)現(xiàn)更高的吞吐量和更低的延遲 139
8.1 技術(shù)要求 140
8.2 凍結(jié)層 140
8.2.1 在前向傳播期間凍結(jié)層 141
8.2.2 在前向傳播期間降低計(jì)算成本 144
8.2.3 在反向傳播期間凍結(jié)層 145
8.3 探索內(nèi)存和存儲(chǔ)資源 147
8.4 了解模型分解和蒸餾 150
8.4.1 模型分解 151
8.4.2 模型蒸餾 153
8.5 減少硬件中的位數(shù) 153
8.6 小結(jié) 154
第3篇 高級(jí)并行范式
第9章 數(shù)據(jù)并行和模型并行的混合 157
9.1 技術(shù)要求 158
9.2 Megatron-LM用例研究 158
9.2.1 模型并行和層拆分 159
9.2.2 按行試錯(cuò)法 161
9.2.3 按列試錯(cuò)法 165
9.2.4 跨機(jī)數(shù)據(jù)并行 168
9.3 Megatron-LM的實(shí)現(xiàn) 169
9.4 Mesh-TensorFlow用例研究 171
9.5 Mesh-TensorFlow的實(shí)現(xiàn) 172
9.6 Megatron-LM和Mesh-TensorFlow的比較 172
9.7 小結(jié) 173
第10章 聯(lián)合學(xué)習(xí)和邊緣設(shè)備 175
10.1 技術(shù)要求 176
10.2 共享知識(shí)而不共享數(shù)據(jù) 176
10.2.1 傳統(tǒng)數(shù)據(jù)并行模型訓(xùn)練范式 176
10.2.2 工作節(jié)點(diǎn)之間沒(méi)有輸入共享 178
10.2.3 在工作節(jié)點(diǎn)之間通信以同步梯度 179
10.3 用例研究:TensorFlow Federated 183
10.4 使用TinyML運(yùn)行邊緣設(shè)備 185
10.5 用例研究:TensorFlow Lite 185
10.6 小結(jié) 186