-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應(yīng)用
-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調(diào)優(yōu)實踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學(xué)習(xí)
分布式機器學(xué)習(xí)――系統(tǒng)、工程與實戰(zhàn) 版權(quán)信息
- ISBN:9787121458149
- 條形碼:9787121458149 ; 978-7-121-45814-9
- 裝幀:平裝-膠訂
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>
分布式機器學(xué)習(xí)――系統(tǒng)、工程與實戰(zhàn) 本書特色
AI的黃金時代可能才剛剛開啟,各行各業(yè)的生產(chǎn)力革命也會相繼產(chǎn)生。OpenAI已經(jīng)占據(jù)了領(lǐng)先位置,接下來的AI賽道會風(fēng)起云涌,中國企業(yè)勢必會在其中扮演極其重要的角色,也會在深度學(xué)習(xí)棧和基礎(chǔ)設(shè)施領(lǐng)域奮起直追。 “彎道超車”需要建立在技術(shù)沉淀和產(chǎn)品實力之上,我們只有切實地扎根于現(xiàn)有的分布式機器學(xué)習(xí)技術(shù)體系,并對其進行深耕,才能為更好的創(chuàng)新和發(fā)展打下基礎(chǔ)。 本書是作者在分布式機器學(xué)習(xí)領(lǐng)域?qū)W習(xí)和應(yīng)用過程中的總結(jié)和思考,能起到拋磚引玉的作用,帶領(lǐng)大家走入/熟悉分布式機器學(xué)習(xí)這個領(lǐng)域。
分布式機器學(xué)習(xí)――系統(tǒng)、工程與實戰(zhàn) 內(nèi)容簡介
本書主要講解分布式機器學(xué)習(xí)算法和開源框架,讀者既可以從宏觀的設(shè)計上了解分布式機器學(xué)習(xí)的概念和理論,也可以深入核心技術(shù)的細節(jié)設(shè)計中,對分布式機器學(xué)習(xí)形成深刻而直觀的認識,做到學(xué)以致用。 本書共分為5篇,第1篇是分布式基礎(chǔ),首先介紹了分布式機器學(xué)習(xí)的概念、基礎(chǔ)設(shè)施,以及機器學(xué)習(xí)并行化技術(shù)、框架和軟件系統(tǒng),然后對集合通信和參數(shù)服務(wù)器PS-Lite進行了介紹。第2篇是數(shù)據(jù)并行,以PyTorch和Horovod為主對數(shù)據(jù)并行進行分析,讀者可以了解在具體工程領(lǐng)域內(nèi)實現(xiàn)數(shù)據(jù)并行有哪些挑戰(zhàn)和解決方案。第3篇是流水線并行,講解了除模型劃分之外,還通過引入額外的流水線來提高效率,以GPipe / PyTorch / PipeDream為例進行分析。第4篇是模型并行,首先對NVIDIA Megatron進行分析,講解如何進行層內(nèi)分割模型并行,然后講解PyTorch 如何支持模型并行,*后介紹分布式優(yōu)化器。第5篇是TensorFlow分布式,前面幾篇以PyTorch為綱,結(jié)合其他框架/庫來穿插完成,本篇帶領(lǐng)大家進入TensorFlow分布式領(lǐng)域。
分布式機器學(xué)習(xí)――系統(tǒng)、工程與實戰(zhàn) 目錄
第1篇 分布式基礎(chǔ)
第1章 分布式機器學(xué)習(xí) 2
1.1 機器學(xué)習(xí)概念 2
1.2 機器學(xué)習(xí)的特點 3
1.3 分布式訓(xùn)練的必要性 3
1.4 分布式機器學(xué)習(xí)研究領(lǐng)域 6
1.4.1 分布式機器學(xué)習(xí)的目標 6
1.4.2 分布式機器學(xué)習(xí)的分類 6
1.5 從模型角度看如何并行 8
1.5.1 并行方式 8
1.5.2 數(shù)據(jù)并行 9
1.5.3 模型并行 10
1.5.4 流水線并行 11
1.5.5 比對 12
1.6 從訓(xùn)練并發(fā)角度看如何并行 12
1.6.1 參數(shù)分布和通信拓撲 13
1.6.2 模型一致性和通信模式 14
1.6.3 訓(xùn)練分布 19
1.7 分布式機器學(xué)習(xí)編程接口 19
1.7.1 手動同步更新 20
1.7.2 指定任務(wù)和位置 20
1.7.3 猴子補丁優(yōu)化器 21
1.7.4 Python作用域 21
1.8 PyTorch分布式 22
1.8.1 歷史脈絡(luò) 22
1.8.2 基本概念 23
1.9 總結(jié) 24
第2章 集合通信 26
2.1 通信模式 26
2.2 點對點通信 26
2.3 集合通信 28
2.3.1 Broadcast 29
2.3.2 Scatter 29
2.3.3 Gather 30
2.3.4 All-Gather 30
2.3.5 All-to-All 30
2.3.6 Reduce 31
2.3.7 All-Reduce 31
2.3.8 Reduce-Scatter 32
2.4 MPI_AllReduce 32
2.5 Ring All-Reduce 33
2.5.1 特點 34
2.5.2 策略 34
2.5.3 結(jié)構(gòu) 35
2.5.4 Reduce-Scatter 35
2.5.5 All-Gather 38
2.5.6 通信性能 40
2.5.7 區(qū)別 40
第3章 參數(shù)服務(wù)器之PS-Lite 41
3.1 參數(shù)服務(wù)器 41
3.1.1 概念 41
3.1.2 歷史淵源 42
3.1.3 問題 43
3.2 基礎(chǔ)模塊Postoffice 44
3.2.1 基本邏輯 44
3.2.2 系統(tǒng)啟動 45
3.2.3 功能實現(xiàn) 47
3.3 通信模塊Van 51
3.3.1 功能概述 51
3.3.2 定義 51
3.3.3 初始化 52
3.3.4 接收消息 53
3.4 代理人Customer 59
3.4.1 基本思路 59
3.4.2 基礎(chǔ)類 61
3.4.3 Customer 62
3.4.4 功能函數(shù) 66
3.5 應(yīng)用節(jié)點實現(xiàn) 67
3.5.1 SimpleApp 67
3.5.2 KVServer 68
3.5.3 KVWorker 68
3.5.4 總結(jié) 70
第2篇 數(shù)據(jù)并行 73
第4章 PyTorch DataParallel 74
4.1 綜述 74
4.2 示例 76
4.3 定義 77
4.4 前向傳播 78
4.5 計算損失 87
4.6 反向傳播 88
4.7 總結(jié) 91
第5章 PyTorch DDP的基礎(chǔ)架構(gòu) 93
5.1 DDP總述 93
5.1.1 DDP的運行邏輯 93
5.1.2 DDP的使用 94
5.2 設(shè)計理念 97
5.2.1 系統(tǒng)設(shè)計 97
5.2.2 梯度歸約 98
5.2.3 實施 99
5.3 基礎(chǔ)概念 101
5.3.1 初始化方法 101
5.3.2 Store類 102
5.3.3 TCPStore類 104
5.3.4 進程組概念 107
5.3.5 構(gòu)建進程組 109
5.4 架構(gòu)和初始化 111
5.4.1 架構(gòu)與迭代流程 111
5.4.2 初始化DDP 114
第6章 PyTorch DDP的動態(tài)邏輯 122
6.1 Reducer類 122
6.1.1 調(diào)用Reducer類 122
6.1.2 定義Reducer類 122
6.1.3 Bucket類 124
6.1.4 BucketReplica類 126
6.1.5 查詢數(shù)據(jù)結(jié)構(gòu) 128
6.1.6 梯度累積相關(guān)成員變量 131
6.1.7 初始化 135
6.1.8 靜態(tài)圖 141
6.1.9 Join操作 142
6.2 前向/反向傳播 143
6.2.1 前向傳播 143
6.2.2 反向傳播 149
第7章 Horovod 161
7.1 從使用者角度切入 161
7.1.1 機制概述 161
7.1.2 示例代碼 162
7.1.3 運行邏輯 163
7.2 horovodrun 167
7.2.1 入口點 167
7.2.2 運行訓(xùn)練Job 168
7.2.3 Gloo實現(xiàn) 169
7.2.4 MPI實現(xiàn) 174
7.2.5 總結(jié) 174
7.3 網(wǎng)絡(luò)基礎(chǔ)和Driver 174
7.3.1 總體架構(gòu) 175
7.3.2 基礎(chǔ)網(wǎng)絡(luò)服務(wù) 176
7.3.3 Driver服務(wù) 177
7.3.4 Task服務(wù) 178
7.3.5 總結(jié) 180
7.4 DistributedOptimizer 181
7.4.1 問題點 181
7.4.2 解決思路 182
7.4.3 TensorFlow 1.x 183
7.5 融合框架 191
7.5.1 總體架構(gòu) 191
7.5.2 算子類體系 192
7.5.3 后臺線程 194
7.5.4 執(zhí)行線程 195
7.5.5 總結(jié) 196
7.6 后臺線程架構(gòu) 198
7.6.1 設(shè)計要點 198
7.6.2 總體代碼 201
7.6.3 業(yè)務(wù)邏輯 202
第3篇 流水線并行
第8章 GPipe 210
8.1 流水線基本實現(xiàn) 210
8.1.1 流水線并行 210
8.1.2 GPipe概述 211
8.1.3 計算內(nèi)存 213
8.1.4 計算算力 213
8.1.5 自動并行 214
8.2 梯度累積 218
8.2.1 基本概念 218
8.2.2 PyTorch實現(xiàn) 219
8.2.3 GPipe實現(xiàn) 223
8.3 Checkpointing 225
8.3.1 問題 225
8.3.2 解決方案 225
8.3.3 OpenAI 226
8.3.4 PyTorch實現(xiàn) 228
8.3.5 GPipe實現(xiàn) 240
第9章 PyTorch流水線并行 243
9.1 如何劃分模型 243
9.1.1 使用方法 244
9.1.2 自動平衡 245
9.1.3 模型劃分 247
9.2 切分數(shù)據(jù)和Runtime系統(tǒng) 249
9.2.1 分發(fā)小批量 249
9.2.2 Runtime 250
9.3 前向計算 255
9.3.1 設(shè)計 255
9.3.2 執(zhí)行順序 260
9.4 計算依賴 265
9.4.1 反向傳播依賴 266
9.4.2 前向傳播依賴 270
9.5 并行計算 274
9.5.1 總體架構(gòu) 274
9.5.2 并行復(fù)制和計算 276
9.5.3 重計算 278
第10章 PipeDream之基礎(chǔ)架構(gòu) 280
10.1 總體思路 280
10.1.1 目前問題 280
10.1.2 1F1B策略概述 282
10.1.3 流水線方案 283
10.2 profile階段 285
10.3 計算分區(qū)階段 288
10.3.1 構(gòu)建圖 288
10.3.2 構(gòu)建反鏈 289
10.3.3 計算分區(qū) 295
10.3.4 分析分區(qū) 302
10.3.5 輸出 305
10.4 轉(zhuǎn)換模型階段 305
10.4.1 分離子圖 306
10.4.2 轉(zhuǎn)換模型 307
10.4.3 融合模型 308
第11章 PipeDream之動態(tài)邏輯 312
11.1 Runtime引擎 312
11.1.1 功能 312
11.1.2 總體邏輯 313
11.1.3 加載模型 314
11.1.4 實現(xiàn) 314
11.2 通信模塊 323
11.2.1 類定義 324
11.2.2 構(gòu)建 325
11.2.3 發(fā)送和接收 331
11.3 1F1B策略 333
11.3.1 設(shè)計思路 333
11.3.2 權(quán)重問題 335
11.3.3 實現(xiàn) 340
第4篇 模型并行
第12章 Megatron 346
12.1 設(shè)計思路 346
12.1.1 背景 346
12.1.2 張量模型并行 348
12.1.3 并行配置 354
12.1.4 結(jié)論 354
12.2 模型并行實現(xiàn) 354
12.2.1 并行MLP 355
12.2.2 ColumnParallelLinear 358
12.2.3 RowParallelLinear 363
12.2.4 總結(jié) 367
12.3 如何設(shè)置各種并行 367
12.3.1 初始化 368
12.3.2 起始狀態(tài) 371
12.3.3 設(shè)置張量模型并行 373
12.3.4 設(shè)置流水線并行 375
12.3.5 設(shè)置數(shù)據(jù)并行 378
12.3.6 模型并行組 380
12.3.7 如何把模型分塊到GPU上 381
12.4 Pipedream的流水線刷新 383
第13章 PyTorch如何實現(xiàn)模型并行 387
13.1 PyTorch模型并行 387
13.1.1 PyTorch特點 387
13.1.2 示例 387
13.2 分布式自動求導(dǎo)之設(shè)計 389
13.2.1 分布式RPC框架 389
13.2.2 自動求導(dǎo)記錄 390
13.2.3 分布式自動求導(dǎo)上下文 391
13.2.4 分布式反向傳播算法 392
13.2.5 分布式優(yōu)化器 396
13.3 RPC基礎(chǔ) 396
13.3.1 RPC代理 396
13.3.2 發(fā)送邏輯 396
13.3.3 接收邏輯 398
13.4 上下文相關(guān) 399
13.4.1 設(shè)計脈絡(luò) 400
13.4.2 AutogradMetadata 401
13.4.3 DistAutogradContainer 403
13.4.4 DistAutogradContext 403
13.4.5 前向傳播交互過程 408
13.5 如何切入引擎 411
13.5.1 反向傳播 411
13.5.2 SendRpcBackward 415
13.5.3 總結(jié) 417
13.6 自動求導(dǎo)引擎 417
13.6.1 原生引擎 417
13.6.2 分布式引擎 419
13.6.3 總體執(zhí)行 421
13.6.4 驗證節(jié)點和邊 421
13.6.5 計算依賴 422
13.6.6 執(zhí)行GraphTask 429
13.6.7 RPC調(diào)用閉環(huán) 433
13.6.8 DistAccumulateGradCapture-
Hook 436
13.6.9 等待完成 442
第14章 分布式優(yōu)化器 443
14.1 原生優(yōu)化器 443
14.2 DP的優(yōu)化器 445
14.3 DDP的優(yōu)化器 446
14.3.1 流程 446
14.3.2 優(yōu)化器狀態(tài) 446
14.4 Horovod的優(yōu)化器 447
14.4.1 利用鉤子同步梯度 448
14.4.2 利用step()函數(shù)同步梯度 449
14.5 模型并行的分布式問題 450
14.6 PyTorch分布式優(yōu)化器 451
14.6.1 初始化 452
14.6.2 更新參數(shù) 453
14.7 PipeDream分布式優(yōu)化器 455
14.7.1 如何確定優(yōu)化參數(shù) 456
14.7.2 優(yōu)化 458
第5篇 TensorFlow分布式
第15章 分布式運行環(huán)境之靜態(tài)架構(gòu) 462
15.1 總體架構(gòu) 462
15.1.1 集群角度 462
15.1.2 分布式角度 463
15.1.3 系統(tǒng)角度 465
15.1.4 圖操作角度 467
15.1.5 通信角度 468
15.2 Server 469
15.2.1 邏輯概念 469
15.2.2 GrpcServer 471
15.3 Master的靜態(tài)邏輯 474
15.3.1 總述 474
15.3.2 接口 474
15.3.3 LocalMaster 476
15.3.4 GrpcRemoteMaster 478
15.3.5 GrpcMasterService 478
15.3.6 業(yè)務(wù)實現(xiàn)Master類 480
15.4 Worker的靜態(tài)邏輯 481
15.4.1 邏輯關(guān)系 481
15.4.2 GrpcRemoteWorker 483
15.4.3 GrpcWorkerService 483
15.4.4 Worker 487
15.4.5 GrpcWorker 488
第16章 分布式運行環(huán)境之動態(tài)邏輯 489
16.1 Session機制 489
16.1.1 概述
分布式機器學(xué)習(xí)――系統(tǒng)、工程與實戰(zhàn) 相關(guān)資料
浙江大學(xué)計算機學(xué)院教授、博士生導(dǎo)師 童若鋒 柳浩在分布式機器學(xué)習(xí)領(lǐng)域有著豐富的實踐經(jīng)驗,對該領(lǐng)域的前沿知識理解深刻。本書很好地平衡了理論介紹和工程實踐,不僅對概念、原理和算法進行了解讀,而且結(jié)合開源框架的具體代碼對其關(guān)鍵之處進行了詳細剖析,幫助讀者逐一擊破難點。全書深入淺出,理論結(jié)合實踐,讓讀者可以學(xué)以致用。 愛奇藝首席技術(shù)官 劉文峰 我一直知道我的大學(xué)同學(xué)柳浩在機器學(xué)習(xí)方面的造詣很深,但沒想到他的寫作能力也如此出類拔萃。他的新書《分布式機器學(xué)習(xí)——系統(tǒng)、工程與實戰(zhàn)》極具深度和廣度,覆蓋了分布式機器學(xué)習(xí)的原理、基礎(chǔ)、系統(tǒng)和多個框架下的實踐等內(nèi)容。本書易于理解又有很強的實踐性,對初學(xué)者和專業(yè)人士都非常有益。如果你對分布式機器學(xué)習(xí)有興趣,那么我強烈推薦你閱讀這本書。 TCL實業(yè)CTO 孫力 分布式機器學(xué)習(xí)是提升大模型訓(xùn)練速度的必然方式。本書深入淺出地梳理了集合通信、參數(shù)服務(wù)器、數(shù)據(jù)并行、模型并行、流水線并行等分布式機器學(xué)習(xí)的幾項關(guān)鍵技術(shù),無論是對在校學(xué)生、行業(yè)新人,還是對資深開發(fā)者,都很適用。 北京三星研究院副總經(jīng)理 史媛媛 盡管市面上關(guān)于分布式機器學(xué)習(xí)的書籍越來越多,但目前迫切需要一本書來幫助廣大從業(yè)者,尤其是開發(fā)、部署和利用分布式機器學(xué)習(xí)技術(shù)、框架與系統(tǒng)的工程技術(shù)人員,深入理解分布式機器學(xué)習(xí)相關(guān)技術(shù)背后的設(shè)計思想、邏輯和操作實例。本書最鮮明的特點就是針對TensorFlow、PyTorch、Horovod等主流開源框架進行了深入解讀,同時對大量源碼進行了分析和設(shè)計反推。期待本書能夠幫助讀者在這一領(lǐng)域更上一層樓。 OneFlow創(chuàng)始人 袁進輝 分布式機器學(xué)習(xí)是近十年發(fā)展最快、最迷人的技術(shù)方向之一,多位傳奇的技術(shù)領(lǐng)袖都投身其中,業(yè)界涌現(xiàn)了許多高質(zhì)量開源項目,發(fā)表了大量論文和研究報告。這個方向的發(fā)展如此之快,以至于從業(yè)者無暇沉淀、總結(jié)和梳理相關(guān)進展。令人欣慰的是,一直有像“羅西的思考”這樣的公眾號穩(wěn)定更新主流分布式深度學(xué)習(xí)開源項目,從概念、設(shè)計和實現(xiàn)等多個層次進行技術(shù)解析,甚至結(jié)集成書。隨著ChatGPT的突破,預(yù)訓(xùn)練大模型成為焦點,越來越多的人開始關(guān)注大模型所需要的分布式技術(shù),這本書可以說恰逢其時,既可以作為系統(tǒng)學(xué)習(xí)分布式機器學(xué)習(xí)的教材,也可以作為手邊備查的手冊,很高興向讀者推薦這本書。 阿里巴巴資深技術(shù)專家,計算平臺事業(yè)部,PAI 機器學(xué)習(xí)平臺 李永(九豐) 如果你是一名機器學(xué)習(xí)工程師,那么你一定不要錯過《分布式機器學(xué)習(xí)——系統(tǒng)、工程與實戰(zhàn)》這本書。作為一本針對分布式深度學(xué)習(xí)引擎的優(yōu)秀著作,它提供了深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)的最佳實踐案例和使用技巧,同時詳細闡述了各種分布式并行策略算法和實現(xiàn)。相信本書一定能讓你對大模型分布式訓(xùn)練理解得更加透徹。
分布式機器學(xué)習(xí)――系統(tǒng)、工程與實戰(zhàn) 作者簡介
柳浩,網(wǎng)名“羅西的思考”,浙江大學(xué)碩士。曾就職于多家世界500強企業(yè),主導(dǎo)過多個大型項目,現(xiàn)就職于某新能源車企。技術(shù)棧廣博,有豐富的各種大型軟件開發(fā)和系統(tǒng)架構(gòu)經(jīng)驗,對機器學(xué)習(xí)框架、微服務(wù)框架、大數(shù)據(jù)引擎、NoSQL、消息隊列、分布式追蹤系統(tǒng)、可觀測系統(tǒng)、可靠性設(shè)計、移動開發(fā)方案和源碼有著深刻的理解和認識。
- >
推拿
- >
羅曼·羅蘭讀書隨筆-精裝
- >
莉莉和章魚
- >
伯納黛特,你要去哪(2021新版)
- >
人文閱讀與收藏·良友文學(xué)叢書:一天的工作
- >
唐代進士錄
- >
經(jīng)典常談
- >
【精裝繪本】畫給孩子的中國神話