機器學習系統:設計和實現
麥絡、董豪
- 出版商: 清華大學
- 出版日期: 2023-05-01
- 定價: $474
- 售價: 8.5 折 $403
- 語言: 簡體中文
- 頁數: 308
- 裝訂: 平裝
- ISBN: 7302630070
- ISBN-13: 9787302630074
-
相關分類:
Machine Learning
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$398群體智能與仿生計算:Matlab 技術實現, 2/e
-
$780$616 -
$1,200$1,020 -
$648$616 -
$420$332 -
$658分佈式人工智能
-
$414$393 -
$509群體智能與演化博弈
-
$556機器學習應用與實戰(全彩)
-
$714$678 -
$505基於 NLP 的內容理解
-
$714$678 -
$654$621 -
$600$570 -
$280控制系統的仿真與分析 — 基於 MATLAB 的應用
-
$352$331 -
$539$512 -
$594$564 -
$680$530 -
$630$498 -
$403MATLAB 圖形學基礎
-
$356深度強化學習實戰 用OpenAI Gym構建智能體
-
$880$695 -
$403多Agent系統編程實踐
-
$479$455
相關主題
商品描述
本書系統地介紹了機器學習系統的設計原則和實踐經驗,側重於介紹機器學習的原理、神經網絡和優化器、自動差分算法、機器學習系統編程模型、控制流和數據流,異構硬件加速器的原理和編程、數據流圖編譯器前端、數據流圖編譯器後端、數據準備和增強、模型部署相關技術、分佈式訓練、彈性訓練、聯合訓練和評估平臺、調試和優化工具、數據隱私和安全等。在講授的過程中,本書將根據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章 推薦系統 232
11.1 系統基本組成 232
11.1.1 消息隊列 233
11.1.2 特徵存儲 233
11.1.3 稠密神經網絡 234
11.1.4 嵌入表 234
11.1.5 訓練服務器 235
11.1.6 參數服務器 235
11.1.7 推理服務器 236
11.2 多階段推薦系統 236
11.2.1 推薦流水線概述 236
11.2.2 召回 237
11.2.3 排序 239
11.3 模型更新 241
11.3.1 持續更新模型的需求 241
11.3.2 離線更新 242
11.4 案例分析:支持在線模型更新的大型推薦系統 243
11.4.1 系統設計挑戰 244
11.4.2 系統架構 245
11.4.3 點對點模型更新傳播算法 246
11.4.4 模型更新調度器 247
11.4.5 模型狀態管理器 248
11.4.6 小結 249
11.5 總結 249
11.6 擴展閱讀 250
第12章 強化學習系統 251
12.1 強化學習介紹 251
12.2 單節點強化學習系統 252
12.3 分佈式強化學習系統 255
12.4 多智能體強化學習 257
12.5 多智能體強化學習系統 260
12.6 總結 264
第13章 可解釋AI 系統 265
13.1 背景 265
13.2 可解釋AI定義 266
13.3 可解釋AI算法現狀介紹 267
13.3.1 數據驅動的解釋 267
13.3.2 知識感知的解釋 270
13.4 常見可解釋AI系統 272
13.5 案例分析:MindSpore XAI 273
13.5.1 為圖片分類場景提供解釋 273
13.5.2 為表格數據場景提供解釋 275
13.5.3 白盒模型 276
13.6 未來研究方向 277
13.7 總結 277
第14章 機器人系統 278
14.1 機器人系統概述 278
14.1.1 感知系統 279
14.1.2 規劃系統 280
14.1.3 控制系統 281
14.1.4 機器人安全 282
14.2 機器人操作系統 283
14.2.1 ROS2節點 285
14.2.2 ROS2主題 285
14.2.3 ROS2服務 286
14.2.4 ROS2參數 286
14.2.5 ROS2動作 286
14.3 案例分析:使用機器人操作系統 287
14.3.1 創建節點 290
14.3.2 讀取參數 296
14.3.3 服務端-客戶端服務模式 298
14.3.4 客戶端 301
14.3.5 動作模式 303
14.3.6 動作客戶端 305
14.4 總結 308
參考文獻 309