使用RAY構建可擴展的PYTHON應用 版權信息
- ISBN:9787519891770
- 條形碼:9787519891770 ; 978-7-5198-9177-0
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
使用RAY構建可擴展的PYTHON應用 本書特色
無服務器計算使開發人員可以專注于他們的應用程序,而不必擔心它們部署在哪里。使用Python中的Ray通用無服務器實現,程序員和數據科學家可以隱藏服務器,實現有狀態應用程序,支持任務之間的直接通信,并訪問硬件加速器。
在這本書中,經驗豐富的軟件架構實踐者Holden Karau和Boris Lublinsky展示了如何擴展現有的Python應用程序和管道,讓你能夠留在Python生態系統中,同時減少單點故障和手動調度的情況。對于那些渴望探索成功案例并了解決策和測量效果的軟件架構師和開發人員來說,使用Ray擴展Python是理想的選擇。
專家推薦
“本書是一份簡明實用的指南,幫助你采用并有效使用Ray。憑借多年在數據系統和分布式計算領域的行業經驗,Holden和Boris提供了Ray用戶所需的必b備指南。”
——Dean Wampler, PhD,
工程總監,加速研究平臺,IBM研究院
使用RAY構建可擴展的PYTHON應用 內容簡介
如果你的數據處理或服務器應用程序已經超出了單臺計算機的處理能力,那么這本書就是為你準備的。你將探索分布式處理(純Python的無服務器實現),并學習如何:使用Ray Actor實現有狀態應用程序。在Ray中構建工作流管理。將Ray用作批處理和流處理的統一系統。使用Ray進行高級數據處理。使用Ray構建微服務。實現可靠的Ray應用程序。
使用RAY構建可擴展的PYTHON應用 目錄
目錄
序 1
前言 3
第1 章 什么是Ray,它適合什么場景 .9
1.1 你為什么需要Ray 10
1.2 你可以在哪里運行Ray 11
1.3 用Ray 運行你的代碼 .13
1.4 Ray 在生態系統中的位置 .14
1.4.1 大數據/ 可擴展數據幀 .16
1.4.2 機器學習 .17
1.4.3 工作流調度 18
1.4.4 流處理 18
1.4.5 交互式 19
1.5 Ray 不適用于什么 19
1.6 總結 .19
第2 章 開始使用Ray(本地) 21
2.1 安裝 .21
2.1.1 為x86 和M1 ARM 安裝 .22
2.1.2 為ARM 安裝(源碼安裝) 22
2.2 Hello World .24
2.2.1 Ray 遠程函數(任務/Futures 對象)Hello World .24
2.2.2 Data Hello World .27
2.2.3 actor Hello World 28
2.3 總結 .30
第3 章 遠程函數 31
3.1 Ray 遠程函數的基本原理 .32
3.2 遠程Ray 函數的組合 .38
3.3 Ray 遠程函數的*佳實踐 .41
3.4 綜合示例42
3.5 總結 .44
第4 章 遠程actor .45
4.1 理解Actor 模型 .46
4.2 創建一個基礎的Ray 遠程actor 47
4.3 實現actor 的持久化.52
4.4 擴展Ray 遠程actor .57
4.5 Ray 遠程actor 的*佳實踐 62
4.6 總結 .63
第5 章 Ray 設計細節 65
5.1 容錯性 65
5.2 Ray 對象 69
5.3 序列化/pickling .72
5.3.1 cloudpickle .73
5.3.2 Apache Arrow 75
5.4 資源/ 垂直擴展 .75
5.5 自動縮放器 78
5.6 放置組:組織任務和actor 79
5.7 命名空間84
5.8 運行時環境中的依賴關系管理 85
5.9 使用Ray Job API 部署Ray 應用程序 86
5.10 總結 89
第6 章 實現流式應用 91
6.1 Apache Kafka 93
6.1.1 Kafka 基本概念 93
6.1.2 Kafka API 96
6.2 將Kafka 與Ray 集成 .98
6.3 擴展我們的實現 .105
6.4 使用Ray 構建流處理應用程序 106
6.4.1 基于鍵的實現 .108
6.4.2 鍵獨立方法 . 114
6.5 超越Kafka . 114
6.6 總結 115
第7 章 實現微服務 117
7.1 理解Ray 中的微服務架構 . 117
7.1.1 部署 . 118
7.1.2 部署的附加功能 121
7.1.3 部署組合 125
7.2 使用Ray Serve 進行模型服務 .127
7.2.1 簡單模型服務示例 127
7.2.2 模型服務實現的注意事項 129
7.2.3 基于Ray 微服務框架的推測模型服務 131
7.3 總結 133
第8 章 Ray 工作流 135
8.1 什么是Ray 工作流? 135
8.2 它與其他解決方案有何不同? 136
8.3 Ray 工作流功能 136
8.3.1 有哪些主要功能 136
8.3.2 工作流原語 .137
8.4 基本工作流概念實戰 138
8.4.1 工作流、步驟和對象138
8.4.2 動態工作流 .139
8.4.3 虛擬actor .140
8.5 工作流在現實生活中的應用 .141
8.5.1 構建工作流 .141
8.5.2 管理工作流 .142
8.5.3 構建動態工作流 144
8.5.4 構建具有條件步驟的工作流 145
8.5.5 處理異常 145
8.5.6 處理持久性保證 147
8.5.7 用虛擬actor 來擴展動態工作流148
8.5.8 與其他Ray 原語集成工作流 154
8.5.9 觸發工作流(連接到事件) 155
8.5.10 工作流元數據 157
8.6 總結 158
第9 章 Ray 的高級數據處理 161
9.1 創建和保存Ray 數據集 162
9.2 使用Ray 數據集與不同工具協同工作 164
9.3 在Ray 數據集上使用工具 .166
9.3.1 類pandas 的DataFrames 與Dask 167
9.3.2 索引 .168
9.3.3 洗牌 .169
9.3.4 易并行計算操作 176
9.3.5 處理多個DataFrame 177
9.3.6 無法正常工作的功能180
9.3.7 速度較慢的情況 180
9.3.8 處理遞歸算法 .181
9.3.9 其他功能的不同之處181
9.3.10 類似pandas 的Modin DataFrames 182
9.3.11 使用Spark 處理大數據 182
9.3.12 使用本地工具進行處理 183
9.4 使用Ray 數據集內置操作 .183
9.5 使用Ray 實現數據集 187
9.6 總結 188
第10 章 Ray 如何助力機器學習 189
10.1 scikit-learn 與Ray 結合使用 189
10.2 Boosting 算法與Ray 結合使用 .194
10.2.1 使用XGBoost .194
10.2.2 使用LightGBM 196
10.3 PyTorch 與Ray 結合使用 198
10.4 強化學習與Ray 結合 204
10.5 超參數調優與Ray 結合 211
10.6 總結 218
第11 章 在Ray 中使用GPU 和加速器 219
11.1 GPU 的優勢 219
11.2 構建模塊 220
11.3 高級庫 221
11.4 獲取和釋放GPU 及加速器資源 222
11.5 Ray 的機器學習庫 222
11.6 使用GPU 和加速器的自動縮放器 223
11.7 CPU 回退設計模式 .224
11.8 其他(非GPU)加速器 225
11.9 總結 225
第12 章 Ray 在企業中的部署 227
12.1 Ray 依賴項安全問題 .227
12.2 與現有工具的交互 228
12.3 將Ray 與CI/CD 工具結合使用 228
12.4 Ray 的身份驗證 228
12.5 Ray 的多租戶 .230
12.6 數據源的憑證 231
12.7 永久集群與臨時集群 .231
12.7.1 臨時集群 231
12.7.2 永久集群 232
12.8 監控 233
12.9 用Ray 指標檢測你的代碼 236
12.10 用Ray 包裝自定義程序 .238
12.11 總結 .240
附錄A 太空海貍案例研究:actor、Kubernetes 等 241
附錄B 安裝和部署Ray 259
附錄C 使用Ray 進行調試 . 273
展開全部
使用RAY構建可擴展的PYTHON應用 作者簡介
[美]霍登·卡勞(Holden Karau),是Apache Spark的貢獻者,Apache軟件基金會成員,同時也是一位活躍的開源貢獻者。
鮑里斯·魯布林斯基(Boris Lublinsky),是IBM Discovery Accelerator平臺的首席架構師,專注于Kubernetes、無服務器計算、工作流和復雜系統設計。