Python數據科學加速:Dask、Ray、Xorbits、mpi4py

魯蔚徵、秦續業

  • 出版商: 清華大學
  • 出版日期: 2024-11-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • ISBN: 730267518X
  • ISBN-13: 9787302675181
  • 相關分類: Data Science
  • 下單後立即進貨 (約4週~6週)

  • Python數據科學加速:Dask、Ray、Xorbits、mpi4py-preview-1
  • Python數據科學加速:Dask、Ray、Xorbits、mpi4py-preview-2
  • Python數據科學加速:Dask、Ray、Xorbits、mpi4py-preview-3
Python數據科學加速:Dask、Ray、Xorbits、mpi4py-preview-1

相關主題

商品描述

"當前,數據驅動的理念已滲透到各個領域,數據科學和人工智能技術在製造業、金融、教育等多個行業中得到了廣泛應用。Python作為一種編程語言,已成為數據科學和人工智能領域的事實標準,它豐富的生態系統進一步增強了它在這些領域中的重要性。然而,隨著數據量的不斷增長,如何利用Python加速數據科學處理,並將它擴展到集群上的並行計算,已成為數據科學家面臨的重要挑戰。《Python數據科學加速:Dask、Ray、Xorbits、mpi4py》詳細介紹了4種數據科學工具:Dask、Ray、Xorbits和mpi4py,這些工具可以幫助數據工程師和科學家處理更大規模的數據集、訓練更復雜的模型,並更高效地進行機器學習模型的迭代和部署。 《Python數據科學加速:Dask、Ray、Xorbits、mpi4py》面向具備一定數據科學基礎的數據工程師、數據科學家或領域專家,同時也適合大學生和研究生作為進入高性能數據科學領域的入門讀物。 "

目錄大綱

目    錄 

第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