Python數據科學加速:Dask、Ray、Xorbits、mpi4py
魯蔚徵、秦續業
- 出版商: 清華大學
- 出版日期: 2024-11-01
- 定價: $534
- 售價: 8.5 折 $454
- 語言: 簡體中文
- ISBN: 730267518X
- ISBN-13: 9787302675181
-
相關分類:
Data Science
下單後立即進貨 (約4週~6週)
相關主題
商品描述
目錄大綱
目 錄
第1章 並行計算基礎1
1.1 現代電腦體系結構 1
1.1.1 CPU 2
1.1.2 網卡 2
1.1.3 異構計算 2
1.2 串行執行與並行執行 2
1.3 線程和進程3
1.3.1 進程與線程 ·3
1.3.2 線程安全 5
1.3.3 全局解釋器鎖 6
1.4 並行程序設計方法 7
1.4.1 PCAM 7
1.4.2 切分方式 8
1.4.3 案例:MapReduce 8
1.5 性能指標 9
1.5.1 FLOPS 9
1.5.2 加速比 10
第2章 數據科學 11
2.1 數據科學生命周期 11
2.1.1 理解業務 12
2.1.2 理解數據 12
2.1.3 準備數據 13
2.1.4 建模 14
2.1.5 驗證 14
2.1.6 部署 15
2.1.7 小結 15
2.2 機器學習 15
2.2.1 機器學習的定義 15
2.2.2 線性回歸15
2.2.3 邏輯回歸 17
2.3 深度學習 18
2.3.1 深度神經網絡 18
2.3.2 前向傳播 19
2.3.3 反向傳播 20
2.3.4 超參數 21
2.3.5 實現細節 21
2.3.6 推理 23
2.4 超參數調優 23
2.4.1 搜索算法 23
2.4.2 調度器 25
2.4.3 種群訓練 28
2.5 軟件生態與本書內容 29
2.5.1 Python軟件生態 29
2.5.2 本書內容 29
2.5.3 本書案例 30
第3章 Dask 31
3.1 Dask簡介31
3.2 Dask DataFrame快速入門 32
3.2.1 創建Dask DataFrame 32
3.2.2 執行計算 33
3.2.3 索引 34
3.2.4 Pandas兼容 35
3.2.5 計算圖 36
3.3 將Dask擴展到集群 37
3.3.1 Dask集群 37
3.3.2 LocalCluster 38
3.3.3 使用命令行啟動一個Dask集群 39
3.3.4 Python環境和依賴包管理 40
3.3.5 SSH、Kubernetes和高性能計算集群 40
3.3.6 自動縮放 42
3.3.7 Dask Nanny 42
3.4 GPU 43
3.4.1 Dask GPU集群 43
3.4.2 GPU任務 44
3.5 Task Graph與數據切分 44
3.5.1 Task Graph 44
3.5.2 數據切分 46
3.5.3 數據切分粒度 47
3.5.4 迭代式算法 48
3.5.5 設置正確的數據塊大小 48
第4章 Dask DataFrame 52
4.1 讀寫數據 52
4.1.1 文件系統 52
4.1.2 數據切分與並行讀取 53
4.1.3 數據表模式推理 56
4.1.4 Parquet 58
4.2 索引 60
4.2.1 有序行索引 63
4.2.2 設置索引列 65
4.3 map_partitions 69
案例:紐約出租車數據 69
4.4 Shuffle71
4.4.1 Shuffle的實現機制 71
4.4.2 數據重分佈 73
4.4.3 案例分析:groupby 74
4.5 基於Dask的數據分析案例 75
4.5.1 案例:自行車數據分析 75
4.5.2 案例:人口普查信息 82
第5章 Dask機器學習 91
5.1 數據預處理 91
5.2 超參數調優 92
5.2.1 Scikit-learn joblib 92
5.2.2 Dask-ML API 94
5.3 分佈式機器學習 97
5.3.1 Scikit-learn API 97
5.3.2 XGBoost和LightGBM 100
第6章 Ray 104
6.1 Ray簡介 104
6.2 分佈式函數 105
6.2.1 啟動Ray集群 106
6.2.2 案例:斐波那契數列 106
6.2.3 原生Python函數與Ray的區別 108
6.2.4 案例:分佈式圖像處理 111
6.3 分佈式對象存儲 114
6.3.1 ray.put()與ray.get() 114
6.3.2 案例:對數據進行轉換 116
6.3.3 傳遞參數 117
6.3.4 底層實現 118
6.4 分佈式類 119
6.4.1 案例:分佈式計數器 119
6.4.2 Actor編程模型 120
6.4.3 案例:排行榜 121
6.4.4 案例:Actor Pool 124
第7章 Ray集群 126
7.1 Ray集群概述126
7.1.1 Ray集群簡介 126
7.1.2 啟動Ray集群 127
7.2 計算資源與資源組 128
7.2.1 計算資源 128
7.2.2 資源需求 128
7.2.3 其他資源 129
7.2.4 自動縮放 129
7.2.5 Placement Group 129
7.3 Ray作業 132
7.3.1 Ray Jobs命令行 133
7.3.2 Python SDK 136
7.3.3 Ray客戶端 137
第8章 Ray Data 138
8.1 Ray Data簡介 138
8.1.1 關鍵概念 138
8.1.2 Dataset 139
8.1.3 數據操作與底層實現 139
8.2 數據加載、查看與保存 140
8.2.1 加載數據 140
8.2.2 查看數據 142
8.2.3 迭代數據 143
8.2.4 保存數據 145
8.3 數據轉換 147
8.3.1 轉換 147
8.3.2 分組 151
8.4 Preprocessor 152
8.5 Modin 152
8.5.1 API的兼容性 152
8.5.2 立即執行 154
8.5.3 執行引擎 154
8.5.4 案例:紐約市出租車數據分析 154
第9章 Ray機器學習 159
9.1 Ray Train 159
9.1.1 關鍵步驟 159
9.1.2 案例:圖像分類 160
9.1.3 與原生PyTorch的區別 163
9.1.4 數據讀取 163
9.1.5 ScalingConfig 163
9.1.6 監控 164
9.1.7 Checkpoint 164
9.2 Ray Tune 165
9.2.1 關鍵組件 165
9.2.2 Trainable函數 165
9.2.3 搜索空間 169
9.2.4 搜索算法和調度器 169
9.2.5 案例:飛機延誤預測 171
9.2.6 案例:基於PBT進行圖像分類 175
9.3 Ray Serve 180
9.3.1 關鍵概念 181
9.3.2 案例:大語言模型推理 181
第10章 Xorbits 185
10.1 Xorbits Data185
10.1.1 Xorbits集群 185
10.1.2 API兼容性 185
10.1.3 推遲執行 187
10.2 Xinference 188
10.2.1 推理引擎 189
10.2.2 集群 189
10.2.3 使用模型 189
10.2.4 案例:使用通義千問(Qwen)進行簡單文本生成與對話 189
10.2.5 案例:基於LangChain的文檔聊天機器人 194
第11章 MPI 198
11.1 MPI簡介 198
11.1.1 歷史 198
11.1.2 標準與實現 198
11.1.3 高速網絡 199
11.1.4 安裝 199
11.2 MPI Hello World 200
11.2.1 通信模式 200
11.2.2 World和Rank 200
11.2.3 案例:Hello World 201
11.2.4 Communicator 202
11.3 點對點通信 203
11.3.1 發送與接收 203
11.3.2 案例1:發送Python對象 203
11.3.3 案例2:發送NumPy ndarray 204
11.3.4 案例3:Master-Worker 205
11.3.5 案例4:長方形模擬求π值 206
11.3.6 阻塞和非阻塞 208
11.4 集合通信 211
11.4.1 同步 211
11.4.2 數據移動 211
11.4.3 集合計算 214
11.5 遠程內存訪問 215
11.5.1 Window 215
11.5.2 創建Window 216
11.5.3 讀寫操作 216
11.5.4 數據同步 216
11.5.5 案例:遠程讀寫 217
第12章 MPI與大模型 219
12.1 NCCL簡介 219
12.2 數據並行 220
12.2.1 非並行訓練 221
12.2.2 數據並行 221
12.3 流水線並行 223
12.3.1 樸素流水線並行 224
12.3.2 流水線並行 + 數據並行 225
參考文獻 226