展开全部

主编推荐语

本书主要从软件开发者的角度探讨如何构建和设计深度学习系统。

内容简介

作者首先描述一个典型的深度学习系统的整体,包括其主要组件以及它们之间的连接方式,然后在各个单独的章节中深入探讨这些主要组件。对于具体介绍的章节,会在开始时讨论需求,接着介绍设计原则和示例服务/代码,并评估开源解决方案。

通过阅读本书,读者将能够了解深度学习系统的工作原理,以及如何开发每个组件。本书的主要读者对象是想要从事深度学习平台工作或将一些人工智能功能集成到产品中的软件工程师。

目录

  • 版权信息
  • THE TRANSLATOR'S WORDS 译者序
  • PREFACE 序
  • PREFACE 前言
  • 深度学习系统架构参考
  • CHAPTER 1 第1章 深度学习系统介绍
  • 1.1 深度学习开发周期
  • 1.1.1 深度学习产品开发周期的阶段
  • 1.1.2 开发周期中的角色
  • 1.1.3 深度学习开发周期实例演练
  • 1.1.4 项目开发的规模化
  • 1.2 深度学习系统设计概述
  • 1.2.1 参考系统架构
  • 1.2.2 关键组件
  • 1.2.3 关键用户场景
  • 1.2.4 定制你自己的设计
  • 1.2.5 在Kubernetes上构建组件
  • 1.3 构建深度学习系统与开发模型之间的区别
  • 总结
  • CHAPTER 2 第2章 数据集管理服务
  • 2.1 理解数据集管理服务
  • 2.1.1 为什么深度学习系统需要数据集管理
  • 2.1.2 数据集管理设计原则
  • 2.1.3 数据集的悖论特性
  • 2.2 浏览一个示例数据集管理服务
  • 2.2.1 与示例服务互动
  • 2.2.2 用户、用户场景和整体架构
  • 2.2.3 数据摄取API
  • 2.2.4 训练数据集获取API
  • 2.2.5 内部数据集存储
  • 2.2.6 数据模式
  • 2.2.7 添加新的数据集类型(IMAGE_CLASS)
  • 2.2.8 服务设计回顾
  • 2.3 开源方法
  • 2.3.1 Delta Lake和Apache Spark家族的Petastorm
  • 2.3.2 基于云对象存储的Pachyderm
  • 总结
  • CHAPTER 3 第3章 模型训练服务
  • 3.1 模型训练服务:设计概述
  • 3.1.1 为什么要使用模型训练服务
  • 3.1.2 训练服务设计原则
  • 3.2 深度学习训练代码模式
  • 3.2.1 模型训练工作流
  • 3.2.2 将模型训练代码Docker化为黑盒
  • 3.3 一个示例模型训练服务
  • 3.3.1 与服务进行交互
  • 3.3.2 服务设计概述
  • 3.3.3 训练服务API
  • 3.3.4 启动新的训练作业
  • 3.3.5 更新和获取作业状态
  • 3.3.6 意图分类模型训练代码
  • 3.3.7 训练作业管理
  • 3.3.8 故障排除指标
  • 3.3.9 支持新的算法或新版本
  • 3.4 Kubeflow训练算子:开源方法
  • 3.4.1 Kubeflow训练算子
  • 3.4.2 Kubernetes算子/控制器模式
  • 3.4.3 Kubeflow训练算子设计
  • 3.4.4 如何使用Kubeflow训练算子
  • 3.4.5 如何将这些算子集成到现有系统中
  • 3.5 何时使用公有云
  • 3.5.1 何时使用公有云解决方案
  • 3.5.2 何时构建自己的训练服务
  • 总结
  • CHAPTER 4 第4章 分布式训练
  • 4.1 分布式训练方法的类型
  • 4.2 数据并行
  • 4.2.1 理解数据并行
  • 4.2.2 多工作节点训练挑战
  • 4.2.3 不同训练框架的分布式训练(数据并行)代码编写
  • 4.2.4 数据并行-分布式训练中的工程化努力
  • 4.3 支持数据并行-分布式训练的示例服务
  • 4.3.1 服务概述
  • 4.3.2 与服务进行交互
  • 4.3.3 启动训练作业
  • 4.3.4 更新和获取作业状态
  • 4.3.5 将训练代码转换为分布式运行
  • 4.3.6 进一步改进
  • 4.4 训练无法在单个GPU上加载的大模型
  • 4.4.1 传统方法:节省内存
  • 4.4.2 流水线模型并行
  • 4.4.3 软件工程师如何支持流水线并行训练
  • 总结
  • CHAPTER 5 第5章 超参数优化服务
  • 5.1 理解超参数
  • 5.1.1 什么是超参数
  • 5.1.2 超参数为什么重要
  • 5.2 理解超参数优化
  • 5.2.1 什么是HPO
  • 5.2.2 热门的HPO算法
  • 5.2.3 常见的自动HPO方法
  • 5.3 设计一个HPO服务
  • 5.3.1 HPO设计原则
  • 5.3.2 通用HPO服务设计
  • 5.4 开源HPO库
  • 5.4.1 Hyperopt
  • 5.4.2 Optuna
  • 5.4.3 Ray Tune
  • 5.4.4 后续步骤
  • 总结
  • CHAPTER 6 第6章 模型服务设计
  • 6.1 模型服务的解释
  • 6.1.1 什么是机器学习模型
  • 6.1.2 模型预测和推理
  • 6.1.3 什么是模型服务
  • 6.1.4 模型服务的挑战
  • 6.1.5 模型服务术语
  • 6.2 常见的模型服务策略
  • 6.2.1 直接模型嵌入
  • 6.2.2 模型服务
  • 6.2.3 模型服务器
  • 6.3 设计预测服务
  • 6.3.1 单一模型应用
  • 6.3.2 多租户应用
  • 6.3.3 在一个系统中支持多个应用程序
  • 6.3.4 常见的预测服务需求
  • 总结
  • CHAPTER 7 第7章 模型服务实践
  • 7.1 模型服务示例
  • 7.1.1 运行示例服务
  • 7.1.2 服务设计
  • 7.1.3 前端服务
  • 7.1.4 意图分类预测器
  • 7.1.5 模型驱逐
  • 7.2 TorchServe模型服务器示例
  • 7.2.1 与服务进行交互
  • 7.2.2 服务设计
  • 7.2.3 前端服务
  • 7.2.4 TorchServe后端
  • 7.2.5 TorchServe API
  • 7.2.6 TorchServe模型文件
  • 7.2.7 在Kubernetes中进行扩展
  • 7.3 模型服务器与模型服务
  • 7.4 开源模型服务工具导览
  • 7.4.1 TensorFlow Serving
  • 7.4.2 TorchServe
  • 7.4.3 Triton推理服务器
  • 7.4.4 KServe和其他工具
  • 7.4.5 将模型服务工具集成到现有服务系统中
  • 7.5 发布模型
  • 7.5.1 注册模型
  • 7.5.2 在实时预测服务中加载任意版本的模型
  • 7.5.3 通过更新默认模型版本发布模型
  • 7.6 模型的后期监控
  • 7.6.1 指标收集和质量门控
  • 7.6.2 需要收集的指标
  • 总结
  • CHAPTER 8 第8章 元数据和工件存储
  • 8.1 工件介绍
  • 8.2 深度学习环境中的元数据
  • 8.2.1 常见的元数据类别
  • 8.2.2 为什么要管理元数据
  • 8.3 设计元数据和工件存储
  • 8.3.1 设计原则
  • 8.3.2 通用元数据和工件存储设计方案
  • 8.4 开源解决方案
  • 8.4.1 MLMD
  • 8.4.2 MLflow
  • 8.4.3 MLflow与MLMD
  • 总结
  • CHAPTER 9 第9章 工作流编排
  • 9.1 工作流编排介绍
  • 9.1.1 什么是工作流
  • 9.1.2 什么是工作流编排
  • 9.1.3 在深度学习中使用工作流编排的挑战
  • 9.2 设计工作流编排系统
  • 9.2.1 用户场景
  • 9.2.2 通用编排系统设计
  • 9.2.3 工作流编排设计原则
  • 9.3 浏览开源工作流编排系统
  • 9.3.1 Airflow
  • 9.3.2 Argo Work flows
  • 9.3.3 Meta flow
  • 9.3.4 何时使用
  • 总结
  • CHAPTER 10 第10章 生产部署路径
  • 10.1 准备产品化阶段
  • 10.1.1 研究阶段
  • 10.1.2 原型设计
  • 10.1.3 要点总结
  • 10.2 模型产品化
  • 10.2.1 代码组件化
  • 10.2.2 代码打包
  • 10.2.3 代码注册
  • 10.2.4 训练工作流设置
  • 10.2.5 模型推理
  • 10.2.6 产品集成
  • 10.3 模型部署策略
  • 10.3.1 金丝雀部署
  • 10.3.2 蓝绿部署
  • 10.3.3 多臂老虎机部署
  • 总结
  • APPENDIX A 附录A 一个“Hello World”深度学习系统
  • A.1 介绍“Hello World”深度学习系统
  • A.1.1 用户角色
  • A.1.2 数据工程师
  • A.1.3 数据科学家/研究员
  • A.1.4 系统开发人员
  • A.1.5 深度学习应用开发人员
  • A.1.6 示例系统概述
  • A.1.7 用户工作流
  • A.2 实验室演示
  • A.2.1 演示步骤
  • A.2.2 一个自行完成的练习
  • APPENDIX B 附录B 现有解决方案调查
  • B.1 Amazon SageMaker
  • B.1.1 数据集管理
  • B.1.2 模型训练
  • B.1.3 模型服务
  • B.1.4 元数据和工件存储
  • B.1.5 工作流编排
  • B.1.6 实验
  • B.2 谷歌Vertex AI
  • B.2.1 数据集管理
  • B.2.2 模型训练
  • B.2.3 模型服务
  • B.2.4 元数据和工件存储
  • B.2.5 工作流编排
  • B.2.6 实验
  • B.3 微软Azure Machine Learning
  • B.3.1 数据集管理
  • B.3.2 模型训练
  • B.3.3 模型服务
  • B.3.4 元数据和工件存储
  • B.3.5 工作流编排
  • B.3.6 实验
  • B.4 Kubeflow
  • B.4.1 数据集管理
  • B.4.2 模型训练
  • B.4.3 模型服务
  • B.4.4 元数据和工件存储
  • B.4.5 工作流编排
  • B.4.6 实验
  • B.5 并排比较
  • APPENDIX C 附录C 使用Kubeflow Katib创建HPO服务
  • C.1 Katib概述
  • C.2 开始使用Katib
  • C.2.1 第一步:安装
  • C.2.2 第二步:理解Katib术语
  • C.2.3 第三步:将训练代码打包为Docker镜像
  • C.2.4 第四步:配置实验
  • C.2.5 第五步:开始实验
  • C.2.6 第六步:查询进度和结果
  • C.2.7 第七步:故障排除
  • C.3 加速HPO
  • C.3.1 并行试验
  • C.3.2 分布式试验(训练)作业
  • C.3.3 提前停止
  • C.4 Katib系统设计
  • C.4.1 Kubernetes控制器/算子模式
  • C.4.2 Katib系统设计和工作流
  • C.4.3 用于分布式训练的Kubeflow训练算子集成
  • C.4.4 代码阅读
  • C.5 添加新的算法
  • C.5.1 第一步:使用新算法实现Katib建议API
  • C.5.2 第二步:将算法代码制作成一个gRPC服务的Docker镜像
  • C.5.3 第三步:向Katib注册算法
  • C.5.4 示例和文档
  • C.6 更多阅读
  • C.7 使用场景
  • 推荐阅读
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

机械工业出版社

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。