分佈式機器學習模式 Distributed Machine Learning Patterns

唐源(Yuan Tang)著 梁豪 譯

  • 分佈式機器學習模式-preview-1
  • 分佈式機器學習模式-preview-2
  • 分佈式機器學習模式-preview-3
分佈式機器學習模式-preview-1

相關主題

商品描述

" 《分佈式機器學習模式》將詳細介紹數十種設計和部署分佈式機器學習系統的技術。你將使用各種模式解決如下問題:如何進行分佈式模型訓練、如何應對突發的系統故障,以及如何部署動態的模型服務。本書為每種模式都配備了實際的案例分析,以及基於 Kubernetes 實現分佈式模型訓練和彈性推理的完整項目。 主要內容 ● 數據攝取、分佈式訓練、模型服務等概念 ● 使用 Kubeflow 和 Argo 工作流在 Kubernetes 上實現 TensorFlow 的自動化部署 ● 管理和監控大規模機器學習工作負載 "

目錄大綱

目    錄 

 

第I部分 基本概念和背景

第1章 瞭解開發環境 3

1.1 大規模機器學習 4

1.1.1 不斷擴大的規模 4

1.1.2 解決方案 5

1.2 分佈式系統 6

1.2.1 分佈式系統基本概念 7

1.2.2 復雜性和模式 7

1.3 分佈式機器學習系統 8

1.3.1 分佈式機器學習系統基本概念 8

1.3.2 類似的模式 9

1.3.3 分佈式機器學習系統的應用場景 10

1.3.4 不適合使用分佈式機器學習系統的場景 11

1.4 本書涵蓋的內容 11

1.5 本章小結 12

第II部分 分佈式機器學習系統模式

第2章 數據攝取模式 17

2.1 數據攝取的基本概念 18

2.2 Fashion-MNIST數據集 19

2.3 批處理模式 22

2.3.1 問題:在內存有限的情況下對 Fashion-MNIST數據集執行耗費資源的操作 22

2.3.2 解決方案 24

2.3.3 討論 26

2.3.4 練習 27

2.4 分片模式:在多台機器之間分割極大的數據集 28

2.4.1 問題 28

2.4.2 解決方案 29

2.4.3 討論 32

2.4.4 練習 34

2.5 緩存模式 34

2.5.1  問題:重新訪問之前使用過的數據以進行高效的多輪模型訓練 35

2.5.2  解決方案 36

2.5.3  討論 38

2.5.4  練習 39

2.6  習題答案 39

2.7 本章小結 40

第3章 分佈式訓練模式 41

3.1 分佈式訓練的基本概念 42

3.2 參數服務器模式:800萬樣本的實體標記 43

3.2.1 問題 45

3.2.2 解決方案 45

3.2.3 討論 50

3.2.4 練習 50

3.3 集合通信模式 51

3.3.1 問題:當參數服務器成為瓶頸時提高性能 52

3.3.2 解決方案 52

3.3.3 討論 58

3.3.4 練習 59

3.4 彈性與容錯模式 59

3.4.1 問題:使用有限的計算資源處理訓練時的意外故障 59

3.4.2 解決方案 60

3.4.3 討論 62

3.4.4 練習 63

3.5 習題答案 63

3.6 本章小結 64

第4章 模型服務模式 65

4.1 模型服務的基本概念 66

4.2 副本服務模式:處理不斷增長的服務請求 67

4.2.1 問題 69

4.2.2 解決方案 69

4.2.3 討論 72

4.2.4 練習 72

4.3 分片服務模式 73

4.3.1 問題:處理包含高分辨率視頻的大型模型服務請求 74

4.3.2 解決方案 74

4.3.3 討論 76

4.3.4 練習 77

4.4 事件驅動處理模式 77

4.4.1 問題:基於事件響應模型服務請求 79

4.4.2 解決方案 80

4.4.3 討論 84

4.4.4 練習 85

4.5 習題答案 85

4.6 本章小結 86

第5章 工作流模式 87

5.1 工作流的基本概念 88

5.2 扇入和扇出模式:組成復雜的機器學習工作流 91

5.2.1 問題 92

5.2.2 解決方案 93

5.2.3 討論 97

5.2.4 練習 98

5.3 同步和異步模式:通過並發加速工作流 98

5.3.1 問題 99

5.3.2 解決方案 99

5.3.3 討論 102

5.3.4 練習 103

5.4 步驟記憶化模式:通過使用緩存跳過重復冗餘的步驟 103

5.4.1 問題 105

5.4.2 解決方案 105

5.4.3 討論 107

5.4.4 練習 108

5.5 習題答案 108

5.6 本章小結 109

第6章 運維模式 111

6.1 機器學習系統中運維的基本概念 112

6.2 調度模式:在共享集群中有效分配資源 113

6.2.1 問題 114

6.2.2 解決方案 115

6.2.3 討論 121

6.2.4 練習 122

6.3 元數據模式:合理處理故障,最小化對用戶的負面影響 122

6.3.1 問題 123

6.3.2 解決方案 124

6.3.3 討論 128

6.3.4 練習 129

6.4 習題答案 129

6.5 本章小結 129

 

第III部分 構建分佈式機器學習工作流

第7章 項目概述及系統架構 133

7.1 項目概況 134

7.1.1 項目背景 134

7.1.2 系統組件 135

7.2 數據攝取 135

7.2.1 問題 137

7.2.2 解決方案 137

7.2.3 練習 139

7.3 模型訓練 140

7.3.1 問題 140

7.3.2 解決方案 140

7.3.3 練習 142

7.4 模型服務 142

7.4.1 問題 143

7.4.2 解決方案 143

7.4.3 練習 145

7.5 端到端工作流 145

7.5.1 存在的問題 145

7.5.2 解決方案 146

7.5.3 練習 148

7.6 習題答案 148

7.7 本章小結 149

第8章 相關技術概述 151

8.1 TensorFlow:機器學習框架 151

8.1.1 基礎知識 152

8.1.2 練習 158

8.2 Kubernetes:分佈式容器編排系統 158

8.2.1 基礎知識 159

8.2.2 練習 165

8.3 Kubeflow:在Kubernetes上運行機器學習工作負載 165

8.3.1 基礎知識 168

8.3.2 練習 172

8.4 Argo Workflows:容器原生工作流引擎 173

8.4.1 基礎知識 174

8.4.2 練習 182

8.5 習題答案 182

8.6 本章小結 183

第9章 完整實現 185

9.1 數據攝取 185

9.1.1 單節點數據流水線 187

9.1.2 分佈式數據流水線 188

9.2 模型訓練 189

9.2.1 模型定義和單節點訓練 190

9.2.2 分佈式模型訓練 193

9.2.3 模型選擇 198

9.3 模型服務 200

9.3.1 單服務器模型推理 200

9.3.2 副本模型服務器 205

9.4 端到端工作流 208

9.4.1 順序步驟 208

9.4.2 步驟記憶化 213

9.5 本章小結 216