機器學習系統:設計和實現

機器學習系統:設計和實現

《機器學習系統:設計和實現》是2023年清華大學出版社出版的一本圖書,作者是麥絡 董豪。

基本介紹

  • 中文名:機器學習系統:設計和實現 
  • 作者:麥絡 董豪 
  • 出版時間:2023年5月 
  • 出版社:清華大學出版社 
  • ISBN:9787302630074 
圖書簡介,圖書目錄,

圖書簡介

本書系統地介紹了機器學習系統的設計原則和實踐經驗,側重於介紹機器學習的原理、神經網路和最佳化器、自動差分算法、機器學習系統編程模型、控制流和數據流,異構硬體加速器的原理和編程、數據流圖編譯器前端、數據流圖編譯器後端、數據準備和增強、模型部署相關技術、分散式訓練、彈性訓練、聯合訓練和評估平台、調試和最佳化工具、數據隱私和安全等。在講授的過程中,本書將根據MindSpore的自身特點,在各個章節突出討論MindSpore的優勢點,從而將MindSpore並列為與TensorFlow,PyTorch的三大框架。

圖書目錄

基礎篇
第1章 導論 003
1.1 機器學習套用 003
1.2 機器學習框架的設計目標 004
1.3 機器學習框架的基本組成原理 005
1.4 機器學習系統生態 006
1.5 本書結構和讀者對象 007
第2章 編程模型 009
2.1 機器學習系統編程模型的演進 009
2.2 機器學習工作流 011
2.2.1 環境配置 011
2.2.2 數據處理 012
2.2.3 模型定義 013
2.2.4 損失函式和最佳化器 014
2.2.5 訓練及保存模型 015
2.2.6 測試和驗證 016
2.3 定義深度神經網路 017
2.3.1 以層為核心定義神經網路 017
2.3.2 神經網路層的實現原理 021
2.3.3 自定義神經網路層 022
2.3.4 自定義神經網路模型 023
2.4 C/C++編程接口 024
2.4.1 在Python中調用C/C++函式的原理 025
2.4.2 添加C++編寫的自定義運算元 025
2.5 機器學習框架的編程範式 030
2.5.1 機器學習框架編程需求 030
2.5.2 機器學習框架編程範式現狀 030
2.5.3 函式式編程案例 031
2.6 總結 032
2.7 拓展閱讀 032
第3章 計算圖 033
3.1 設計背景和作用 033
3.2 計算圖的基本構成 034
3.2.1 張量和運算元 035
3.2.2 計算依賴 037
3.2.3 控制流 038
3.2.4 基於鏈式法則計算梯度 041
3.3 計算圖的生成 043
3.3.1 靜態生成 043
3.3.2 動態生成 046
3.3.3 動態圖和靜態圖生成的比較 048
3.3.4 動態圖與靜態圖的轉換和融合 049
3.4 計算圖的調度 051
3.4.1 運算元調度執行 051
3.4.2 串列與並行 052
3.4.3 數據載入同步與異步機制 053
3.5 總結 054
3.6 拓展閱讀 055
進階篇
第4章 AI 編譯器和前端技術 059
4.1 AI編譯器設計原理 059
4.2 AI編譯器前端技術概述 061
4.3 中間表示 062
4.3.1 中間表示的基本概念 062
4.3.2 中間表示的種類 063
4.3.3 機器學習框架的中間表示 065
4.4 自動微分 072
4.4.1 自動微分的基本概念 072
4.4.2 前向與反向自動微分 074
4.4.3 自動微分的實現 077
4.5 類型系統和靜態分析 081
4.5.1 類型系統概述 081
4.5.2 靜態分析概述 082
4.6 常見前端編譯最佳化方法 083
4.6.1 前端編譯最佳化簡介 083
4.6.2 常見編譯最佳化方法介紹及實現 083
4.7 總結 085
第5章 AI 編譯器後端和運行時 086
5.1 概述 086
5.2 計算圖最佳化 088
5.2.1 通用硬體最佳化 088
5.2.2 特定硬體最佳化 090
5.3 運算元選擇 091
5.3.1 運算元選擇的基礎概念 091
5.3.2 運算元選擇的過程 095
5.4 記憶體分配 095
5.4.1 Device記憶體概念 096
5.4.2 記憶體分配 096
5.4.3 記憶體復用 098
5.4.4 常見的記憶體分配最佳化手段 099
5.5 計算調度與執行 101
5.5.1 單運算元調度 101
5.5.2 計算圖調度 102
5.5.3 互動式執行 106
5.5.4 下沉式執行 110
5.6 運算元編譯器 110
5.6.1 運算元調度策略 111
5.6.2 子策略組合最佳化 112
5.6.3 調度空間算法最佳化 114
5.6.4 晶片指令集適配 115
5.6.5 運算元表達能力 116
5.6.6 相關編譯最佳化技術 117
5.7 總結 117
5.8 拓展閱讀 118
第6章 硬體加速器 119
6.1 概述 119
6.1.1 硬體加速器設計的意義 119
6.1.2 硬體加速器設計的思路 119
6.2 硬體加速器基本組成原理 120
6.2.1 硬體加速器的架構 120
6.2.2 硬體加速器的存儲單元 121
6.2.3 硬體加速器的計算單元 122
6.2.4 DSA晶片架構 124
6.3 加速器基本編程原理 125
6.3.1 硬體加速器的可程式性 125
6.3.2 硬體加速器的多樣化編程方法 128
6.4 加速器實踐 132
6.4.1 環境 132
6.4.2 廣義矩陣乘法的樸素實現 133
6.4.3 提高計算強度 135
6.4.4 使用共享記憶體快取復用數據 138
6.4.5 減少暫存器使用 139
6.4.6 隱藏共享記憶體讀取延遲 140
6.4.7 隱藏全局記憶體讀取延遲 141
6.4.8 與cuBLAS對比 142
6.4.9 小結 143
6.5 總結 143
6.6 拓展閱讀 144
第7章 數據處理 145
7.1 概述 146
7.1.1 易用性 146
7.1.2 高效性 147
7.1.3 保序性 147
7.2 易用性設計 147
7.2.1 編程抽象與接口 147
7.2.2 自定義運算元支持 151
7.3 高效性設計 153
7.3.1 數據讀取的高效性 154
7.3.2 數據計算的高效性 157
7.4 保序性設計 162
7.5 單機數據處理性能的擴展 163
7.5.1 基於異構計算的數據預處理 163
7.5.2 基於分散式的數據預處理 165
7.6 總結 166
第8章 模型部署 168
8.1 概述 168
8.2 訓練模型到推理模型的轉換及最佳化 169
8.2.1 模型轉換 169
8.2.2 運算元融合 170
8.2.3 運算元替換 172
8.2.4 運算元重排 173
8.3 模型壓縮 173
8.3.1 量化 174
8.3.2 模型稀疏 176
8.3.3 知識蒸餾 178
8.4 模型推理 179
8.4.1 前處理與後處理 179
8.4.2 並行計算 180
8.4.3 運算元最佳化 181
8.5 模型的安全保護 186
8.5.1 概述 186
8.5.2 模型混淆 186
8.6 總結 188
8.7 拓展閱讀 189
第9章 分散式訓練 190
9.1 設計概述 190
9.1.1 設計動機 190
9.1.2 系統架構 191
9.1.3 用戶益處 192
9.2 實現方法 192
9.2.1 方法分類 192
9.2.2 數據並行 194
9.2.3 模型並行 194
9.2.4 混合併行 197
9.3 流水線並行 197
9.4 機器學習集群架構 198
9.5 集合通信 200
9.5.1 常見集合通信運算元 200
9.5.2 基於AllReduce的梯度平均算法 203
9.5.3 集合通信算法性能分析 205
9.5.4 利用集合通信最佳化模型訓練的實踐 206
9.5.5 集合通信在數據並行的實踐 207
9.5.6 集合通信在混合併行的實踐 208
9.6 參數伺服器 210
9.6.1 系統架構 210
9.6.2 異步訓練 211
9.6.3 數據副本 212
9.7 總結 212
9.8 拓展閱讀 213
拓展篇
第10章 聯邦學習系統 217
10.1 概述 217
10.1.1 定義 217
10.1.2 套用場景 217
10.1.3 部署場景 218
10.1.4 常用框架 218
10.2 橫向聯邦學習 219
10.2.1 云云場景中的橫向聯邦 219
10.2.2 端雲場景中的橫向聯邦 220
10.3 縱向聯邦學習 222
10.3.1 縱向聯邦架構 222
10.3.2 樣本對齊 223
10.3.3 聯合訓練 224
10.4 隱私加密算法 225
10.4.1 基於LDP算法的安全聚合 226
10.4.2 基於MPC算法的安全聚合 226
10.4.3 基於LDP-SignDS算法的安全聚合 227
10.5 展望 229
10.5.1 異構場景下的聯邦學習 229
10.5.2 通信效率提升 230
10.5.3 聯邦生態 230
10.6 總結 231
第11章 推薦系統
11.1 系統基本組成
11.1.1 訊息佇列
11.1.2 特徵存儲
11.1.3 稠密神經網路
11.1.4 嵌入表
11.1.5 訓練伺服器
11.1.6 參數伺服器
11.1.7 推理伺服器
11.2 多階段推薦系統
11.2.1 推薦流水線概述
11.2.2 召回
11.2.3 排序
11.3 模型更新
11.3.1 持續更新模型的需求
11.3.2 離線更新
11.4 案例分析:支持線上模型更新的大型推薦系統
11.4.1 系統設計挑戰
11.4.2 系統架構
11.4.3 點對點模型更新傳播算法
11.4.4 模型更新調度器
11.4.5 模型狀態管理器
11.4.6 小結
11.5 總結
11.6 擴展閱讀
第12章 強化學習系統
12.1 強化學習介紹
12.2 單節點強化學習系統
12.3 分散式強化學習系統
12.4 多智慧型體強化學習
12.5 多智慧型體強化學習系統
12.6 總結
第13章 可解釋AI系統
13.1 背景
13.2 可解釋AI定義
13.3 可解釋AI算法現狀介紹
13.3.1 數據驅動的解釋
13.3.2 知識感知的解釋
13.4 常見可解釋AI系統
13.5 案例分析:MindSpore XAI
13.5.1 為圖片分類場景提供解釋
13.5.2 為表格數據場景提供解釋
13.5.3 白盒模型
13.6 未來研究方向
13.7 總結
第14章 機器人系統
14.1 機器人系統概述
14.1.1 感知系統
14.1.2 規劃系統
14.1.3 控制系統
14.1.4 機器人安全
14.2 機器人作業系統
14.2.1 ROS2節點
14.2.2 ROS2主題
14.2.3 ROS2服務
14.2.4 ROS2參數
14.2.5 ROS2動作
14.3 案例分析:使用機器人作業系統
14.3.1 創建節點
14.3.2 讀取參數
14.3.3 服務端-客戶端服務模式
14.3.4 客戶端
14.3.5 動作模式
14.3.6 動作客戶端
14.4 總結
參考文獻

相關詞條

熱門詞條

聯絡我們