更新时间:2025-03-13 16:31:50
封面
版权信息
作者简介
译者序
序
前言
深度学习系统架构参考
第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 构建深度学习系统与开发模型之间的区别
总结
第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
第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 何时构建自己的训练服务
第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 软件工程师如何支持流水线并行训练
第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