机器学习流水线实战

Book description

正如自动化流水线给汽车制造业带来了质的改变,自动化机器学习流水线也能从根本上加速机器学习领域的发展。机器学习流水线实现了复用、管理和部署机器学习模型的标准化流程。数据科学家和机器学习工程师不仅能摆脱逐个手动构建和训练模型的“作坊式”工作流程,还能产出更可靠、更安全的模型。

本书带领你使用TensorFlow生态圈中的众多工具构建可复现的机器学习流水线,从而将模型部署时间从数天缩短为数分钟,有效地实现机器学习项目产品化。你将学习如下内容。

  • 了解机器学习流水线的构建步骤
  • 使用TensorFlow Extended(TFX)构建机器学习流水线
  • 使用Beam、Airflow、Kubeflow Pipelines编排流水线
  • 数据校验和数据预处理
  • 使用TensorFlow的模型分析工具
  • 检查模型的公平性
  • 使用TensorFlow Serving和TensorFlow Lite部署模型
  • 了解差分隐私、联邦学习和加密机器学习等隐私保护方法

Table of contents

  1. 封面
  2. 扉页
  3. 版权
  4. 版权声明
  5. O'Reilly Media, Inc.介绍
  6. 目录 (1/2)
  7. 目录 (2/2)
  8. 本书赞誉
  9. 前言
    1. 什么是机器学习流水线
    2. 读者对象
    3. 为什么选择TensorFlow和TensorFlow Extended
    4. 章节总览
    5. 排版约定
    6. 使用示例代码
    7. O’Reilly在线学习平台(O’Reilly Online Learning)
    8. 联系我们
    9. 致谢
    10. 电子书
  10. 第1章 入门
    1. 1.1 为什么要用机器学习流水线
    2. 1.2 什么时候考虑使用机器学习流水线
    3. 1.3 机器学习流水线步骤概述
      1. 1.3.1 数据读取和版本控制
      2. 1.3.2 数据校验
      3. 1.3.3 数据预处理
      4. 1.3.4 模型训练和模型调优
      5. 1.3.5 模型分析
      6. 1.3.6 模型版本控制
      7. 1.3.7 模型部署
      8. 1.3.8 反馈循环
      9. 1.3.9 数据隐私
    4. 1.4 流水线编排
      1. 1.4.1 为什么使用流水线编排工具
      2. 1.4.2 有向无环图
    5. 1.5 示例项目
      1. 1.5.1 项目结构
      2. 1.5.2 机器学习模型
      3. 1.5.3 示例项目的目标
    6. 1.6 小结
  11. 第2章 TensorFlow Extended入门
    1. 2.1 什么是TFX
    2. 2.2 安装TFX
    3. 2.3 TFX组件概述
    4. 2.4 什么是机器学习元数据
    5. 2.5 交互式流水线
    6. 2.6 TFX的替代品
    7. 2.7 Apache Beam简介
      1. 2.7.1 安装
      2. 2.7.2 基本数据流水线
      3. 2.7.3 执行流水线
    8. 2.8 小结
  12. 第3章 数据读取
    1. 3.1 数据读取的概念
      1. 3.1.1 读取本地数据文件
      2. 3.1.2 读取远程数据文件
      3. 3.1.3 直接从数据库中读取数据
    2. 3.2 数据准备
      1. 3.2.1 拆分数据集
      2. 3.2.2 跨越数据集
      3. 3.2.3 对数据集进行版本控制
    3. 3.3 数据读取策略
      1. 3.3.1 结构化数据
      2. 3.3.2 自然语言处理中的文本数据
      3. 3.3.3 用于计算机视觉问题的图像数据
    4. 3.4 小结
  13. 第4章 数据校验
    1. 4.1 为什么要进行数据校验
    2. 4.2 TFDV
      1. 4.2.1 安装
      2. 4.2.2 根据数据生成统计信息
      3. 4.2.3 从数据生成模式
    3. 4.3 识别数据中的问题
      1. 4.3.1 比较数据集
      2. 4.3.2 更新模式
      3. 4.3.3 数据偏斜和漂移
      4. 4.3.4 存在偏差的数据集
      5. 4.3.5 在TFDV中切分数据
    4. 4.4 使用GCP处理大型数据集
    5. 4.5 将TFDV集成到机器学习流水线中
    6. 4.6 小结
  14. 第5章 数据预处理
    1. 5.1 为什么要进行数据预处理
      1. 5.1.1 在整个数据集的上下文中预处理数据
      2. 5.1.2 扩展预处理步骤
      3. 5.1.3 避免训练–服务偏斜
      4. 5.1.4 将预处理步骤和机器学习模型作为一个工件进行部署
      5. 5.1.5 检查流水线中的预处理结果
    2. 5.2 使用TFT做数据预处理
      1. 5.2.1 安装
      2. 5.2.2 预处理策略
      3. 5.2.3 最佳实践
      4. 5.2.4 TFT 函数
      5. 5.2.5 TFT的独立执行
      6. 5.2.6 将TFT集成到机器学习流水线中
    3. 5.3 小结
  15. 第6章 模型训练
    1. 6.1 定义示例项目的模型
    2. 6.2 TFX Trainer组件
      1. 6.2.1 run_fn()函数
      2. 6.2.2 运行Trainer组件
      3. 6.2.3 其他关于Trainer组件的注意事项
    3. 6.3 在交互式流水线中使用TensorBoard
    4. 6.4 分布策略
    5. 6.5 模型调整
      1. 6.5.1 超参数调整的策略
      2. 6.5.2 TFX 流水线中的超参数调整
    6. 6.6 小结
  16. 第7章 模型分析和验证
    1. 7.1 如何分析模型
      1. 7.1.1 分类指标
      2. 7.1.2 回归指标
    2. 7.2 TensorFlow模型分析
      1. 7.2.1 用TFMA分析单个模型
      2. 7.2.2 用TFMA分析多个模型
    3. 7.3 模型公平性分析
      1. 7.3.1 用TFMA划分模型预测
      2. 7.3.2 用公平性指标检查决策阈值
      3. 7.3.3 详解假设分析工具
    4. 7.4 模型可解释性
      1. 7.4.1 使用WIT生成模型解释
      2. 7.4.2 其他模型解释方法
    5. 7.5 用TFX进行分析和验证
      1. 7.5.1 ResolverNode
      2. 7.5.2 Evaluator组件
      3. 7.5.3 用Evaluator组件进行验证
      4. 7.5.4 TFX Pusher组件
    6. 7.6 小结
  17. 第8章 用TensorFlow Serving部署模型
    1. 8.1 简单的模型服务器
    2. 8.2 基于Python API部署模型的缺点
      1. 8.2.1 缺少代码隔离
      2. 8.2.2 缺少模型版本控制
      3. 8.2.3 低效的模型推断
    3. 8.3 TensorFlow Serving
    4. 8.4 TensorFlow Serving架构概述
    5. 8.5 为TensorFlow Serving导出模型
    6. 8.6 模型签名
    7. 8.7 查看导出的模型
      1. 8.7.1 查看模型
      2. 8.7.2 测试模型
    8. 8.8 创建TensorFlow Serving
      1. 8.8.1 Docker安装
      2. 8.8.2 原生Ubuntu安装
      3. 8.8.3 从源码编译TensorFlow Serving
    9. 8.9 配置TensorFlow服务器
      1. 8.9.1 单一模型配置
      2. 8.9.2 多模型配置
    10. 8.10 REST与gRPC
      1. 8.10.1 REST
      2. 8.10.2 gRPC
    11. 8.11 用模型服务器预测
      1. 8.11.1 用REST获得模型预测
      2. 8.11.2 通过gRPC使用TensorFlow Serving
    12. 8.12 用TensorFlow Serving进行模型A/B测试
    13. 8.13 从模型服务器获取模型元数据
      1. 8.13.1 使用REST请求模型元数据
      2. 8.13.2 使用gRPC请求模型元数据
    14. 8.14 批量推算请求
    15. 8.15 配置批量预测
    16. 8.16 其他TensorFlow Serving优化方法
    17. 8.17 TensorFlow Serving的替代品
      1. 8.17.1 BentoML
      2. 8.17.2 Seldon
      3. 8.17.3 GraphPipe
      4. 8.17.4 Simple TensorFlow Serving
      5. 8.17.5 MLflow
      6. 8.17.6 Ray Serve
    18. 8.18 在云服务上部署
      1. 8.18.1 用例
      2. 8.18.2 在GCP上进行示例部署
    19. 8.19 使用TFX流水线进行模型部署
    20. 8.20 小结
  18. 第9章 使用TensorFlow Serving进行进阶模型部署
    1. 9.1 解耦部署环节
      1. 9.1.1 工作流概述
      2. 9.1.2 优化远程模型加载
    2. 9.2 为部署模型进行优化
      1. 9.2.1 量化
      2. 9.2.2 剪枝
      3. 9.2.3 蒸馏
    3. 9.3 在TensorFlow Serving中使用TensorRT
    4. 9.4 TFLite
      1. 9.4.1 用TFLite优化模型的步骤
      2. 9.4.2 使用TensorFlow Serving实例部署TFLite模型
    5. 9.5 监测TensorFlow Serving实例
      1. 9.5.1 设置Prometheus
      2. 9.5.2 TensorFlow Serving配置
    6. 9.6 使用TensorFlow Serving和Kubernetes进行简单的扩容
    7. 9.7 小结
  19. 第10章 TensorFlow Extended的高级功能
    1. 10.1 流水线的高级功能
      1. 10.1.1 同时训练多个模型
      2. 10.1.2 导出TFLite模型
      3. 10.1.3 热启动模型训练
    2. 10.2 人工审核
      1. 10.2.1 创建Slack组件
      2. 10.2.2 如何使用Slack组件
    3. 10.3 TFX自定义组件
      1. 10.3.1 自定义组件的应用场景
      2. 10.3.2 从零创建自定义组件
      3. 10.3.3 重复使用现有组件
    4. 10.4 小结
  20. 第11章 流水线第一部分:Apache Beam和Apache Airflow
    1. 11.1 选择哪种编排工具
      1. 11.1.1 Apache Beam
      2. 11.1.2 Apache Airflow
      3. 11.1.3 Kubeflow Pipeline
      4. 11.1.4 AI平台上的Kubeflow Pipeline
    2. 11.2 将交互式TFX流水线转换为生产流水线
    3. 11.3 Beam和Airflow的简单交互式流水线转换
    4. 11.4 Apache Beam简介
    5. 11.5 使用Apache Beam编排TFX流水线
    6. 11.6 Apache Airflow简介
      1. 11.6.1 安装和初始设置
      2. 11.6.2 基本Airflow示例
    7. 11.7 使用Apache Airflow编排TFX流水线
      1. 11.7.1 流水线设置
      2. 11.7.2 流水线的执行
    8. 11.8 小结
  21. 第12章 流水线第二部分:Kubeflow Pipelines
    1. 12.1 Kubeflow Pipelines概述
      1. 12.1.1 安装和初始设置
      2. 12.1.2 访问已安装的Kubeflow Pipelines
    2. 12.2 使用Kubeflow Pipelines编排TFX流水线
      1. 12.2.1 流水线设置
      2. 12.2.2 运行流水线
      3. 12.2.3 Kubeflow流水线的有用功能
    3. 12.3 基于谷歌云AI平台的流水线
      1. 12.3.1 流水线设置
      2. 12.3.2 TFX流水线设置
      3. 12.3.3 流水线的执行
    4. 12.4 小结
  22. 第13章 反馈循环
    1. 13.1 显式反馈和隐式反馈
      1. 13.1.1 数据飞轮
      2. 13.1.2 现实世界中的反馈循环
    2. 13.2 收集反馈的设计模式
      1. 13.2.1 用户根据预测采取了某些措施
      2. 13.2.2 用户对预测的质量进行评分
      3. 13.2.3 用户纠正预测
      4. 13.2.4 众包打标
      5. 13.2.5 专家打标
      6. 13.2.6 自动产生反馈
    3. 13.3 如何跟踪反馈循环
      1. 13.3.1 跟踪显式反馈
      2. 13.3.2 跟踪隐式反馈
    4. 13.4 小结
  23. 第14章 机器学习的数据隐私
    1. 14.1 数据隐私问题
      1. 14.1.1 为什么关心数据隐私
      2. 14.1.2 最简单的增加隐私的方法
      3. 14.1.3 哪些数据需要保密
    2. 14.2 差分隐私
      1. 14.2.1 局部差分隐私和全局差分隐私
      2. 14.2.2 Epsilon、Delta和隐私预算
      3. 14.2.3 机器学习的差分隐私
    3. 14.3 介绍TensorFlow Privacy
      1. 14.3.1 使用差分隐私优化器进行训练
      2. 14.3.2 计算Epsilon
    4. 14.4 联邦学习
    5. 14.5 加密机器学习
      1. 14.5.1 加密模型训练
      2. 14.5.2 将训练好的模型转换为加密的预测服务
    6. 14.6 其他数据保密方法
    7. 14.7 小结
  24. 第15章 流水线的未来和下一步
    1. 15.1 模型实验跟踪
    2. 15.2 关于模型发布管理的思考
    3. 15.3 未来的流水线能力
    4. 15.4 TFX与其他机器学习框架
    5. 15.5 测试机器学习模型
    6. 15.6 用于机器学习的CI/CD系统
    7. 15.7 机器学习工程社区
    8. 15.8 小结
  25. 附录A 机器学习基础架构简介 (1/3)
  26. 附录A 机器学习基础架构简介 (2/3)
  27. 附录A 机器学习基础架构简介 (3/3)
  28. 附录B 在谷歌云上设置Kubernetes集群 (1/2)
  29. 附录B 在谷歌云上设置Kubernetes集群 (2/2)
  30. 附录C 操作Kubeflow Pipelines的技巧 (1/2)
  31. 附录C 操作Kubeflow Pipelines的技巧 (2/2)
  32. 关于作者
  33. 关于封面

Product information

  • Title: 机器学习流水线实战
  • Author(s): Hannes Hapke, Catherine Nelson
  • Release date: November 2021
  • Publisher(s): Posts & Telecom Press
  • ISBN: None