欢迎光临澳大利亚新华书店网 [登录 | 免费注册]

    • Python分布式机器学习
      • 作者:(美)冠华·王|责编:贾小红|译者:姜大为
      • 出版社:清华大学
      • ISBN:9787302633112
      • 出版日期:2023/04/01
      • 页数:215
    • 售价:39.6
  • 内容大纲

        本书详细阐述了与分布式机器学习相关的基本解决方案,主要包括拆分输入数据、参数服务器和All-Reduce、构建数据并行训练和服务管道、瓶颈和解决方案、拆分模型、管道输入和层拆分、实现模型并行训练和服务工作流程、实现更高的吞吐量和更低的延迟、数据并行和模型并行的混合、联合学习和边缘设备、弹性模型训练和服务、进一步加速的高级技术等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
        本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
  • 作者介绍

        冠华·王(Guanhua Wang)是加州大学伯克利分校RISELab的计算机科学博士(导师为Ion Stoica教授)。他的研究主要集中在机器学习系统领域,包括快速集体通信、高效并行模型训练和实时模型服务等,得到了学术界和工业界的广泛关注。他曾受邀在顶级大学(麻省理工学院、斯坦福大学、卡内基梅隆大学和普林斯顿大学)和大型科技公司(Facebook/Meta和微软)进行演讲。他在香港科技大学获得硕士学位,在中国东南大学获得学士学位。他在无线网络方面还有一些很好的研究。他喜欢踢足球,并且曾在加州湾区跑过多次半程马拉松。
  • 目录

    第1篇  数据并行
      第1章  拆分输入数据
        1.1  单节点训练太慢
          1.1.1  数据加载带宽和模型训练带宽之间的不匹配
          1.1.2  流行数据集的单节点训练时间
          1.1.3  使用数据并行加速训练过程
        1.2  数据并行
          1.2.1  随机梯度下降
          1.2.2  模型同步
        1.3  超参数调优
          1.3.1  全局批次大小
          1.3.2  学习率调整
          1.3.3  模型同步方案
        1.4  小结
      第2章  参数服务器和All-Reduce
        2.1  技术要求
        2.2  参数服务器架构
          2.2.1  参数服务器架构中的通信瓶颈
          2.2.2  在参数服务器之间分片模型
        2.3  实现参数服务器
          2.3.1  定义模型层
          2.3.2  定义参数服务器
          2.3.3  定义工作节点
          2.3.4  在参数服务器和工作节点之间传递数据
        2.4  参数服务器的问题
          2.4.1  情况1——更多参数服务器
          2.4.2  情况2——更多工作节点
          2.4.3  参数服务器架构为从业者带来了很高的编码复杂度
        2.5  All-Reduce架构
          2.5.1  Reduce
          2.5.2  All-Reduce
          2.5.3  RingAll-Reduce
        2.6  集体通信
          2.6.1  Broadcast
          2.6.2  Gather
          2.6.3  All-Gather
        2.7  小结
      第3章  构建数据并行训练和服务管道
        3.1  技术要求
        3.2  数据并行训练管道概述
          3.2.1  输入预处理
          3.2.2  输入数据分区
          3.2.3  数据加载
          3.2.4  数据训练
          3.2.5  模型同步
          3.2.6  模型更新
        3.3  单机多GPU和多机多GPU
          3.3.1  单机多GPU
          3.3.2  多机多GPU
        3.4  检查点和容错

          3.4.1  模型检查点
          3.4.2  加载模型检查点
        3.5  模型评估和超参数调优
        3.6  数据并行中的模型服务
        3.7  小结
      第4章  瓶颈和解决方案
        4.1  数据并行训练中的通信瓶颈
          4.1.1  通信工作负载分析
          4.1.2  参数服务器架构
          4.1.3  All-Reduce架构
          4.1.4  最新通信方案的效率问题
        4.2  利用空闲链路和主机资源
          4.2.1  TreeAll-Reduce
          4.2.2  通过PCIe和NVLink进行混合数据传输
        4.3  设备内存瓶颈
        4.4  重新计算和量化
          4.4.1  重新计算
          4.4.2  量化
        4.5  小结
    第2篇  模型并行
      第5章  拆分模型
        5.1  技术要求
        5.2  单节点训练错误——内存不足
          5.2.1  在单个GPU上微调BERT
          5.2.2  尝试将一个巨型模型打包到单个GPU中
        5.3  ELMo、BERT和GPT
          5.3.1  基本概念
          5.3.2  循环神经网络
          5.3.3  ELMo
          5.3.4  BERT
          5.3.5  GPT
        5.4  预训练和微调
        5.5  最先进的硬件
          5.5.1  P100、V100和DGX-
          5.5.2  NVLink
          5.5.3  A100和DGX-
          5.5.4  NVSwitch
        5.6  小结
      第6章  管道输入和层拆分
        6.1  普通模型并行的低效问题
          6.1.1  前向传播
          6.1.2  反向传播
          6.1.3  前向传播和反向传播之间的GPU空闲时间
        6.2  管道输入
        6.3  管道并行的优缺点
          6.3.1  管道并行的优势
          6.3.2  管道并行的缺点
        6.4  层拆分
        6.5  关于层内模型并行的注意事项
        6.6  小结

      第7章  实现模型并行训练和服务工作流程
        7.1  技术要求
        7.2  整个模型并行管道概述
          7.2.1  模型并行训练概述
          7.2.2  实现模型并行训练管道
          7.2.3  指定GPU之间的通信协议
          7.2.4  模型并行服务
        7.3  微调Transformer
        7.4  模型并行中的超参数调优
          7.4.1  平衡GPU之间的工作负载
          7.4.2  启用/禁用管道并行
        7.5  NLP模型服务
        7.6  小结
      第8章  实现更高的吞吐量和更低的延迟
        8.1  技术要求
        8.2  冻结层
          8.2.1  在前向传播期间冻结层
          8.2.2  在前向传播期间降低计算成本
          8.2.3  在反向传播期间冻结层
        8.3  探索内存和存储资源
        8.4  了解模型分解和蒸馏
          8.4.1  模型分解
          8.4.2  模型蒸馏
        8.5  减少硬件中的位数
        8.6  小结
    第3篇  高级并行范式
      第9章  数据并行和模型并行的混合
        9.1  技术要求
        9.2  Megatron-LM用例研究
          9.2.1  模型并行和层拆分
          9.2.2  按行试错法
          9.2.3  按列试错法
          9.2.4  跨机数据并行
        9.3  Megatron-LM的实现
        9.4  Mesh-TensorFlow用例研究
        9.5  Mesh-TensorFlow的实现
        9.6  Megatron-LM和Mesh-TensorFlow的比较
        9.7  小结
      第10章  联合学习和边缘设备
        10.1  技术要求
        10.2  共享知识而不共享数据
          10.2.1  传统数据并行模型训练范式
          10.2.2  工作节点之间没有输入共享
          10.2.3  在工作节点之间通信以同步梯度
        10.3  用例研究:TensorFlowFederated
        10.4  使用TinyML运行边缘设备
        10.5  用例研究:TensorFlowLite
        10.6  小结
      第11章  弹性模型训练和服务
        11.1  技术要求

        11.2  自适应模型训练介绍
          11.2.1  传统的数据并行训练
          11.2.2  数据并行中的自适应模型训练
          11.2.3  自适应模型训练(基于All-Reduce)
          11.2.4  自适应模型训练(基于参数服务器)
          11.2.5  传统的模型并行训练范式
          11.2.6  模型并行中的自适应模型训练
        11.3  在云端实现自适应模型训练
        11.4  模型推理中的弹性服务
        11.5  无服务器
        11.6  小结
      第12章  进一步加速的高级技术
        12.1  技术要求
        12.2  调试和性能分析
          12.2.1  性能分析结果中的一般概念
          12.2.2  通信结果分析
          12.2.3  计算结果分析
        12.3  作业迁移和多路复用
          12.3.1  作业迁移
          12.3.2  作业多路复用
        12.4  异构环境中的模型训练
        12.5  小结