0 0 0

分布式机器学习:系统、工程与实战 (柳浩) .epub

猛爷
10天前 220
我用夸克网盘分享了「分布式机器学习:系统、工程与实战 (柳浩) .epub」,点击链接即可保存。打开「夸克APP」在线查看,支持多种文档格式转换。
分布式机器学习——系统、工程与实战 作者: 柳浩 出版社: 电子工业出版社 出版年: 2023-7 定价: 139.00元 装帧: 平装 丛书: 博文视点AI系列 ISBN: 9787121458149

内容简介

《分布式机器学习——系统、工程与实战》主要讲解分布式机器学习算法和开源框架,读者既可以从宏观的设计上了解分布式机器学习的概念和理论,也可以深入核心技术的细节设计中,对分布式机器学习形成深刻而直观的认识,做到学以致用。 《分布式机器学习——系统、工程与实战》共分为5篇,第1篇是分布式基础,首先介绍了分布式机器学习的概念、基础设施,以及机器学习并行化技术、框架和软件系统,然后对集合通信和参数服务器PS-Lite进行了介绍。第2篇是数据并行,以PyTorch和Horovod为主对数据并行进行分析,读者可以了解在具体工程领域内实现数据并行有哪些挑战和解决方案。第3篇是流水线并行,讲解了除模型划分之外,还通过引入额外的流水线来提高效率,以GPipe / PyTorch / PipeDream为例进行分析。第4篇是模型并行,首先对NVIDIA Megatron进行分析,讲解如何进行层内模型并行,然后讲解PyTorch 如何支持模型并行,最后介绍分布式优化器。第5篇是TensorFlow分布式,前面几篇以PyTorch为纲,结合其他框架/库来穿插完成,本篇带领大家进入TensorFlow分布式领域。

作者简介

柳浩,网名“罗西的思考”,浙江大学硕士。曾就职于多家世界500强企业,主导过多个大型项目,现就职于某新能源车企。技术栈广博,有丰富的各种大型软件开发和系统架构经验,对机器学习框架、微服务框架、大数据引擎、NoSQL、消息队列、分布式追踪系统、可观测系统、可靠性设计、移动开发方案和源码有着深刻的理解和认识。

网友热评

wondering: 这个领域很新,作者应该还是看了不少源代码,真正懂了各个系统是怎样工作的。欠缺的是:可能是博客组织成的,所以各章间还是有些重复,整体的框架性也欠缺一些。另外,框架代码太多,代码跳跃太快,有点乱。 甜筒侠: 对于初学者来说,我觉得挺好的,挺有收获,很多概念通过伪代码也能更好理解。 rain: 感觉像在看api文档,行文比较散乱,不推荐 zhuhit: 分析的很详实,从作者的blog找到这儿的,扫了一眼,从blog中提炼出了这本书,收益挺多的。

图书目录

第1篇分布式基础 1 第1章分布式机器学习 2 1.1机器学习概念 2 1.2机器学习的特点 3 1.3分布式训练的必要性 3 1.4分布式机器学习研究领域 6 1.4.1分布式机器学习的目标 6 1.4.2分布式机器学习的分类 6 1.5从模型角度看如何并行 8 1.5.1并行方式 8 1.5.2数据并行 9 1.5.3模型并行 10 1.5.4流水线并行 11 1.5.5比对 12 1.6从训练并发角度看如何并行 12 1.6.1参数分布和通信拓扑 13 1.6.2模型一致性和通信模式 14 1.6.3训练分布 19 1.7分布式机器学习编程接口 19 1.7.1手动同步更新 20 1.7.2指定任务和位置 20 1.7.3猴子补丁优化器 21 1.7.4Python作用域 21 1.8PyTorch分布式 22 1.8.1历史脉络 22 1.8.2基本概念 23 1.9总结 24 第2章集合通信 26 2.1通信模式 26 2.2点对点通信 26 2.3集合通信 28 2.3.1Broadcast 29 2.3.2Scatter 29 2.3.3Gather 30 2.3.4All-Gather 30 2.3.5All-to-All 30 2.3.6Reduce 31 2.3.7All-Reduce 31 2.3.8Reduce-Scatter 32 2.4MPI_AllReduce 32 2.5RingAll-Reduce 33 2.5.1特点 34 2.5.2策略 34 2.5.3结构 35 2.5.4Reduce-Scatter 35 2.5.5All-Gather 38 2.5.6通信性能 40 2.5.7区别 40 第3章参数服务器之PS-Lite 41 3.1参数服务器 41 3.1.1概念 41 3.1.2历史渊源 42 3.1.3问题 43 3.2基础模块Postoffice 44 3.2.1基本逻辑 44 3.2.2系统启动 45 3.2.3功能实现 47 3.3通信模块Van 51 3.3.1功能概述 51 3.3.2定义 51 3.3.3初始化 52 3.3.4接收消息 53 3.4代理人Customer 59 3.4.1基本思路 59 3.4.2基础类 61 3.4.3Customer 62 3.4.4功能函数 66 3.5应用节点实现 67 3.5.1SimpleApp 67 3.5.2KVServer 68 3.5.3KVWorker 68 3.5.4总结 70 第2篇数据并行 73 第4章PyTorchDataParallel 74 4.1综述 74 4.2示例 76 4.3定义 77 4.4前向传播 78 4.5计算损失 87 4.6反向传播 88 4.7总结 91 第5章PyTorchDDP的基础架构 93 5.1DDP总述 93 5.1.1DDP的运行逻辑 93 5.1.2DDP的使用 94 5.2设计理念 97 5.2.1系统设计 97 5.2.2梯度归约 98 5.2.3实施 99 5.3基础概念 101 5.3.1初始化方法 101 5.3.2Store类 102 5.3.3TCPStore类 104 5.3.4进程组概念 107 5.3.5构建进程组 109 5.4架构和初始化 111 5.4.1架构与迭代流程 111 5.4.2初始化DDP 114 第6章PyTorchDDP的动态逻辑 122 6.1Reducer类 122 6.1.1调用Reducer类 122 6.1.2定义Reducer类 122 6.1.3Bucket类 124 6.1.4BucketReplica类 126 6.1.5查询数据结构 128 6.1.6梯度累积相关成员变量 131 6.1.7初始化 135 6.1.8静态图 141 6.1.9Join操作 142 6.2前向/反向传播 143 6.2.1前向传播 143 6.2.2反向传播 149 第7章Horovod 161 7.1从使用者角度切入 161 7.1.1机制概述 161 7.1.2示例代码 162 7.1.3运行逻辑 163 7.2horovodrun 167 7.2.1入口点 167 7.2.2运行训练Job 168 7.2.3Gloo实现 169 7.2.4MPI实现 174 7.2.5总结 174 7.3网络基础和Driver 174 7.3.1总体架构 175 7.3.2基础网络服务 176 7.3.3Driver服务 177 7.3.4Task服务 178 7.3.5总结 180 7.4DistributedOptimizer 181 7.4.1问题点 181 7.4.2解决思路 182 7.4.3TensorFlow1.x 183 7.5融合框架 191 7.5.1总体架构 191 7.5.2算子类体系 192 7.5.3后台线程 194 7.5.4执行线程 195 7.5.5总结 196 7.6后台线程架构 198 7.6.1设计要点 198 7.6.2总体代码 201 7.6.3业务逻辑 202 第3篇流水线并行 209 第8章GPipe 210 8.1流水线基本实现 210 8.1.1流水线并行 210 8.1.2GPipe概述 211 8.1.3计算内存 213 8.1.4计算算力 213 8.1.5自动并行 214 8.2梯度累积 218 8.2.1基本概念 218 8.2.2PyTorch实现 219 8.2.3GPipe实现 223 8.3Checkpointing 225 8.3.1问题 225 8.3.2解决方案 225 8.3.3OpenAI 226 8.3.4PyTorch实现 228 8.3.5GPipe实现 240 第9章PyTorch流水线并行 243 9.1如何划分模型 243 9.1.1使用方法 244 9.1.2自动平衡 245 9.1.3模型划分 247 9.2切分数据和Runtime系统 249 9.2.1分发小批量 249 9.2.2Runtime 250 9.3前向计算 255 9.3.1设计 255 9.3.2执行顺序 260 9.4计算依赖 265 9.4.1反向传播依赖 266 9.4.2前向传播依赖 270 9.5并行计算 274 9.5.1总体架构 274 9.5.2并行复制和计算 276 9.5.3重计算 278 第10章PipeDream之基础架构 280 10.1总体思路 280 10.1.1目前问题 280 10.1.21F1B策略概述 282 10.1.3流水线方案 283 10.2profile阶段 285 10.3计算分区阶段 288 10.3.1构建图 288 10.3.2构建反链 289 10.3.3计算分区 295 10.3.4分析分区 302 10.3.5输出 305 10.4转换模型阶段 305 10.4.1分离子图 306 10.4.2转换模型 307 10.4.3融合模型 308 第11章PipeDream之动态逻辑 312 11.1Runtime引擎 312 11.1.1功能 312 11.1.2总体逻辑 313 11.1.3加载模型 314 11.1.4实现 314 11.2通信模块 323 11.2.1类定义 324 11.2.2构建 325 11.2.3发送和接收 331 11.31F1B策略 333 11.3.1设计思路 333 11.3.2权重问题 335 11.3.3实现 340 第4篇模型并行 345 第12章Megatron 346 12.1设计思路 346 12.1.1背景 346 12.1.2张量模型并行 348 12.1.3并行配置 354 12.1.4结论 354 12.2模型并行实现 354 12.2.1并行MLP 355 12.2.2ColumnParallelLinear 358 12.2.3RowParallelLinear 363 12.2.4总结 367 12.3如何设置各种并行 367 12.3.1初始化 368 12.3.2起始状态 371 12.3.3设置张量模型并行 373 12.3.4设置流水线并行 375 12.3.5设置数据并行 378 12.3.6模型并行组 380 12.3.7如何把模型分块到GPU上 381 12.4Pipedream的流水线刷新 383 第13章PyTorch如何实现模型并行 387 13.1PyTorch模型并行 387 13.1.1PyTorch特点 387 13.1.2示例 387 13.2分布式自动求导之设计 389 13.2.1分布式RPC框架 389 13.2.2自动求导记录 390 13.2.3分布式自动求导上下文 391 13.2.4分布式反向传播算法 392 13.2.5分布式优化器 396 13.3RPC基础 396 13.3.1RPC代理 396 13.3.2发送逻辑 396 13.3.3接收逻辑 398 13.4上下文相关 399 13.4.1设计脉络 400 13.4.2AutogradMetadata 401 13.4.3DistAutogradContainer 403 13.4.4DistAutogradContext 403 13.4.5前向传播交互过程 408 13.5如何切入引擎 411 13.5.1反向传播 411 13.5.2SendRpcBackward 415 13.5.3总结 417 13.6自动求导引擎 417 13.6.1原生引擎 417 13.6.2分布式引擎 419 13.6.3总体执行 421 13.6.4验证节点和边 421 13.6.5计算依赖 422 13.6.6执行GraphTask 429 13.6.7RPC调用闭环 433 13.6.8DistAccumulateGradCapture-Hook 436 13.6.9等待完成 442 第14章分布式优化器 443 14.1原生优化器 443 14.2DP的优化器 445 14.3DDP的优化器 446 14.3.1流程 446 14.3.2优化器状态 446 14.4Horovod的优化器 447 14.4.1利用钩子同步梯度 448 14.4.2利用step()函数同步梯度 449 14.5模型并行的分布式问题 450 14.6PyTorch分布式优化器 451 14.6.1初始化 452 14.6.2更新参数 453 14.7PipeDream分布式优化器 455 14.7.1如何确定优化参数 456 14.7.2优化 458 第5篇TensorFlow分布式 461 第15章分布式运行环境之静态架构 462 15.1总体架构 462 15.1.1集群角度 462 15.1.2分布式角度 463 15.1.3系统角度 465 15.1.4图操作角度 467 15.1.5通信角度 468 15.2Server 469 15.2.1逻辑概念 469 15.2.2GrpcServer 471 15.3Master的静态逻辑 474 15.3.1总述 474 15.3.2接口 474 15.3.3LocalMaster 476 15.3.4GrpcRemoteMaster 478 15.3.5GrpcMasterService 478 15.3.6业务实现Master类 480 15.4Worker的静态逻辑 481 15.4.1逻辑关系 481 15.4.2GrpcRemoteWorker 483 15.4.3GrpcWorkerService 483 15.4.4Worker 487 15.4.5GrpcWorker 488 第16章分布式运行环境之动态逻辑 489 16.1Session机制 489 16.1.1概述 489 16.1.2GrpcSession 491 16.1.3MasterSession 492 16.1.4WorkerSession 494 16.2Master动态逻辑 495 16.2.1Client如何调用 495 16.2.2Master业务逻辑 495 16.3Worker动态逻辑 501 16.3.1概述 501 16.3.2注册子图 501 16.3.3运行子图 502 16.3.4分布式计算流程总结 504 16.4通信机制 505 16.4.1协调机制 505 16.4.2发送流程 508 16.4.3接收流程 508 16.4.4总结 509 第17章分布式策略基础 511 17.1使用TensorFlow进行分布式训练 511 17.1.1概述 511 17.1.2策略类型 511 17.2DistributedStrategy基础 515 17.2.1StrategyBase 515 17.2.2读取数据 518 17.3分布式变量 523 17.3.1MirroredVariable 523 17.3.2ShardedVariable 530 第18章MirroredStrategy 535 18.1MirroredStrategy集合通信 535 18.1.1设计思路 535 18.1.2实现 536 18.1.3更新分布式变量 538 18.2MirroredStrategy分发计算 540 18.2.1运行 540 18.2.2mirrored_run 541 18.2.3Context 544 18.2.4通信协议 546 18.2.5EagerService 547 18.2.6在远端运行训练代码 551 18.2.7总结 552 第19章ParameterServerStrategy 554 19.1ParameterServerStrategyV1 554 19.1.1思路 554 19.1.2数据 556 19.1.3作用域和变量 557 19.1.4运行 559 19.2ParameterServerStrategyV2 560 19.2.1如何使用 560 19.2.2运行 561 19.3ClusterCoordinator 561 19.3.1使用 561 19.3.2定义 563 19.3.3数据 565 19.3.4Cluster 566 19.3.5Closure 568 19.3.6队列 570 19.3.7Worker类 570 19.3.8Failover 573 19.3.9总结 574

分布式机器学习:系统、工程与实战

版权说明

1、本站不保存、不存储任何实质资源,以上二维码指向为网盘资源链接,其内容归对应版权方所有
2、如有侵犯版权的情况,请点击下面举报/反馈按钮反馈或发送邮件[email protected]投诉说明情况
3、我们核实后将第一时间删除相关页面内容,谢谢理解和配合

这些人下载过 (12)
  • 眉眼一生
  • 伪装叫坚强
  • 男霸
  • 与往
  • 酒暖我心
  • 好走
  • 相忘难吗
  • 泪咽无声
  • 优优蓝调
  • 失宠妖精
  • 温柔段子手
  • 寒阴秋瑶
最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!