新书速览|Python数据科学加速:Dask、Ray、Xorbits、mpi4py
《Python数据科学加速:Dask、Ray、Xorbits、mpi4py》
本书内容
当前,数据驱动的理念已渗透到各个领域,数据科学和人工智能技术在制造业、金融、教育等多个行业中得到了广泛应用。Python作为一种编程语言,已成为数据科学和人工智能领域的事实标准,它丰富的生态系统进一步增强了它在这些领域中的重要性。然而,随着数据量的不断增长,如何利用Python加速数据科学处理,并将它扩展到集群上的并行计算,已成为数据科学家面临的重要挑战。《Python数据科学加速:Dask、Ray、Xorbits、mpi4py》详细介绍了4种数据科学工具:Dask、Ray、Xorbits和mpi4py,这些工具可以帮助数据工程师和科学家处理更大规模的数据集、训练更复杂的模型,并更高效地进行机器学习模型的迭代和部署。
本书作者
鲁蔚征
毕业于北京大学,目前就职于中国人民大学,曾在互联网公司工作,具有丰富的业界大数据和机器学习工作经验。除此之外,还发表了多篇CCF A类论文,已出版《Flink原理与实践》,并负责过多个产学合作项目。
秦续业
毕业于上海交通大学,前阿里巴巴技术专家,现任未来速度CEO,多款大数据和机器学习开源框架开发者和引领者,其开发的项目Xorbits Xinference等在 GitHub上收获上千星标。
本书读者
《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
本书特色
本文摘自《Python数据科学加速:Dask、Ray、Xorbits、mpi4py》,获出版社和作者授权发布。
Python数据科学加速:Dask、Ray、Xorbits、mpi4py——jd