人工智能
类型
可以朗读
语音朗读
177千字
字数
2022-04-01
发行日期
展开全部
主编推荐语
MLOps实用指南:覆盖设计、构建、部署ML应用所需技能。
内容简介
在大数据时代,机器学习(ML)在互联网领域取得了巨大的成功,数据应用也逐渐从“数据驱动”阶段向“模型驱动”阶段跃升,但这也给ML项目落地带来了更大的困难,为了适应时代的发展,MLOps应运而生。本书从多个方面介绍了MLOps实践路径,内容涵盖了设计、构建和部署由ML驱动的应用程序所需的各种实用技能。本书适合数据科学家、软件工程师、ML工程师及希望学习如何更好地组织ML实验的研究人员阅读,可以帮助他们建立实用的MLOps实践框架。
目录
- 封面
- 前折页
- 版权信息
- 内容简介
- 推荐序
- 前 言
- 第1章 MLOps概述
- 1.1 ML涉及的概念
- 1.1.1 监督学习
- 1.1.2 无监督学习
- 1.1.3 半监督学习
- 1.1.4 强化学习
- 1.1.5 何时使用ML
- 1.2 ML相关符号及术语定义
- 1.2.1 原始数据、输入数据、特征与特征工程
- 1.2.2 训练样本及预留样本
- 1.2.3 参数与超参数
- 1.2.4 参数模型、非参数模型、极大似然估计
- 1.2.5 ML管道
- 1.2.6 模型选择与性能权衡
- 1.3 ML的工程挑战与MLOps解决方案
- 1.3.1 MLOps的定义
- 1.3.2 MLOps与其他Ops的区别
- 1.3.3 谁在关注MLOps
- 1.3.4 为什么需要MLOps
- 1.3.5 MLOps给企业带来的增益
- 1.3.6 MLOps的工作流程
- 1.3.7 MLOps工程师需要具备的技能
- 1.3.8 什么时候真正需要MLOps
- 1.4 MLOps框架下的工程实践
- 1.4.1 ML工程及生产化模块
- 1.4.2 ML工程模块的设计原则
- 1.4.3 进行ML工程的模块设计时需要注意的细节
- 1.4.4 编码环境与模型探索
- 1.4.5 特征存储
- 1.4.6 实验管理和模型管理
- 1.4.7 服务
- 1.4.8 模型服务规模化
- 1.4.9 模型监控
- 1.5 本章总结
- 第2章 在MLOps框架下开展ML项目
- 2.1 界定业务范围阶段
- 2.1.1 在项目规划时考虑生产化
- 2.1.2 业务需求
- 2.1.3 确定衡量指标和项目范围
- 2.1.4 设计初步解决方案
- 2.1.5 制定共同语言
- 2.1.6 数据权限及准备
- 2.2 研究与探索阶段
- 2.2.1 数据探索
- 2.2.2 技术有效性检查
- 2.3 模型开发阶段
- 2.3.1 模型开发的必要准备
- 2.3.2 模型开发
- 2.3.3 模型验证
- 2.4 模型生产化阶段
- 2.5 ML项目生命周期
- 2.6 团队建设及分工
- 2.6.1 企业数字化程度
- 2.6.2 界定ML团队的角色
- 2.6.3 探讨ML项目的团队建设与分工
- 2.6.4 项目外包还是自建ML团队
- 2.7 本章总结
- 第3章 MLOps的基础准备:模型开发
- 3.1 背景概要
- 3.2 定义ML目标
- 3.2.1 业务问题概述
- 3.2.2 业务目标
- 3.2.3 ML目标
- 3.3 数据收集
- 3.3.1 数据获取
- 3.3.2 加载数据
- 3.3.3 关于数据集
- 3.4 数据预处理
- 3.4.1 缺失值处理
- 3.4.2 离群值检测
- 3.5 数据探索
- 3.5.1 目标变量
- 3.5.2 服务分析
- 3.5.3 用户行为分析
- 3.6 特征工程
- 3.6.1 分类和数值列拆分
- 3.6.2 One-Hot编码
- 3.6.3 特征缩放处理
- 3.6.4 目标变量
- 3.6.5 样本生成
- 3.7 构建和评估模型
- 3.7.1 处理非平衡问题
- 3.7.2 模型构建
- 3.8 持久化模型
- 3.9 构建REST API
- 3.9.1 导入相关库并加载模型
- 3.9.2 编写预测函数
- 3.9.3 用户请求
- 3.10 模型投产
- 3.10.1 ML投产陷阱及挑战
- 3.10.2 ML模型演化:从独立模型到模型工厂
- 3.10.3 利用MLOps实现模型的规模化投产
- 3.11 本章总结
- 第4章 ML与Ops之间的信息存储与传递机制
- 4.1 ML实验跟踪
- 4.1.1 ML实验跟踪的定义
- 4.1.2 ML实验跟踪的必要性
- 4.1.3 随时随地管理实验
- 4.1.4 ML实验跟踪与模型管理的区别
- 4.1.5 在MLOps框架中增加ML实验跟踪功能
- 4.1.6 设计和实现ML实验跟踪API
- 4.1.7 在生产中使用ML实验跟踪API
- 4.2 A/B在线实验
- 4.2.1 创建在线实验的必要性
- 4.2.2 确定实验的范围与目标
- 4.2.3 最小样本量的确定方法
- 4.2.4 对ML模型进行A/B测试
- 4.2.5 在MLOps框架中增加A/B在线实验功能
- 4.2.6 用于A/B在线实验的MAB方案
- 4.2.7 MLOps框架中的A/B实验管理
- 4.3 模型注册
- 4.3.1 模型注册的定义
- 4.3.2 模型注册的必要性
- 4.3.3 将模型注册功能融入MLOps框架
- 4.3.4 模型注册中心存储的信息
- 4.3.5 模型注册的价值
- 4.3.6 先从一个简单的模型注册开始
- 4.3.7 设计和实现符合MLOps标准的模型注册中心
- 4.3.8 在生产中使用模型注册API
- 4.3.9 模型注册中心的权限设置
- 4.4 特征存储
- 4.4.1 特征工程及使用挑战
- 4.4.2 特征存储的定义
- 4.4.3 在MLOps框架中增加特征存储
- 4.4.4 离线与在线特征
- 4.4.5 特征存储带来的益处
- 4.4.6 特征存储的架构设计
- 4.5 本章总结
- 第5章 模型统一接口设计及模型打包
- 5.1 ML模型基础接口概述
- 5.1.1 软件开发的策略模式
- 5.1.2 Scikit-Learn对接口的处理方法
- 5.2 业内一些常见的解决方案
- 5.2.1 AWS的ML生命周期工具SageMaker
- 5.2.2 Meta的ML平台FBLearner Flow
- 5.2.3 Uber的ML平台Michelangelo
- 5.2.4 开源的Seldon Core
- 5.3 一个简单的ML模型接口示例
- 5.3.1 继承ModelBase基类
- 5.3.2 模型管理基类
- 5.3.3 Flask REST端点
- 5.4 ML项目打包
- 5.4.1 模型及代码打包的必要性
- 5.4.2 模型和代码打包的事项及示例
- 5.4.3 模型序列化
- 5.5 本章总结
- 第6章 在MLOps框架下规模化部署模型
- 6.1 定义及挑战
- 6.1.1 ML部署的简单定义
- 6.1.2 部署ML模型的常见挑战
- 6.2 对业务的驱动逻辑
- 6.2.1 模型部署的边界
- 6.2.2 模型部署与业务应用流程的关系
- 6.3 常见的设计模式
- 6.3.1 用于在线推理的ML模型部署的挑战
- 6.3.2 什么时候需要在线推理
- 6.3.3 什么时候使用批量推理
- 6.3.4 数据库批量推理模式
- 6.3.5 嵌入式推理模式
- 6.3.6 单服务推理模式
- 6.3.7 微服务推理模式
- 6.4 构建MLOps通用推理服务:模型即服务
- 6.4.1 模型即服务的工作流程
- 6.4.2 模型即服务的核心服务模块
- 6.5 Web服务框架及应用生态
- 6.5.1 Web应用程序
- 6.5.2 WSGI服务器
- 6.5.3 Web服务器
- 6.5.4 使用REST API为模型提供服务
- 6.6 基于Docker的模型应用程序部署
- 6.6.1 Docker的定义
- 6.6.2 Docker容器、Python虚拟环境和虚拟机
- 6.6.3 构建HTTP REST API
- 6.6.4 创建生产级的Docker镜像
- 6.6.5 构建并运行Docker容器
- 6.7 模型即服务的自动化
- 6.7.1 模型即服务的逻辑设计
- 6.7.2 模型即服务的通用接口定义
- 6.7.3 使用SQLAlchemy ORM重构MLOps的信息存储表
- 6.8 在MLOps框架下实现模型部署示例
- 6.8.1 将构建好的模型进行注册
- 6.8.2 模型部署和服务化
- 6.8.3 ML实验跟踪功能升级
- 6.9 基于开源项目的模型服务解决方案
- 6.9.1 基于Kubernetes的资源管理项目KFServing
- 6.9.2 机器学习部署平台Seldon Core
- 6.9.3 轻量级模型部署及管理平台BentoML
- 6.9.4 机器学习生命周期管理平台MLflow
- 6.9.5 ML模型服务开源方案的总结
- 6.9.6 关于ML模型部署和服务方案的思考
- 6.10 本章总结
- 第7章 MLOps框架下的模型发布及零停机模型更新
- 7.1 ML在生产中的CI/CD
- 7.1.1 模型在生产中持续迭代的挑战
- 7.1.2 在MLOps框架中添加模型的发布流程
- 7.1.3 CI阶段的实践
- 7.1.4 CD阶段的实践
- 7.2 模型服务的发布策略
- 7.2.1 传统软件工程的发布策略
- 7.2.2 部署即发布
- 7.2.3 制定ML模型服务发布策略的必要性
- 7.2.4 影子测试策略与渐进式推出策略
- 7.2.5 竞争策略
- 7.3 零停机更新模型服务
- 7.3.1 生产中Flask的局限性
- 7.3.2 关于GIL、线程和进程的入门知识
- 7.3.3 从单线程的Flask到uWSGI
- 7.3.4 模型更新条件检查
- 7.3.5 动态更新模型方案
- 7.3.6 基于Kubernetes的扩展方案
- 7.4 本章总结
- 第8章 MLOps框架下的模型监控与运维
- 8.1 ML模型监控简介
- 8.1.1 模型的监控场景
- 8.1.2 为什么监控很重要
- 8.1.3 ML监控与传统软件监控的区别
- 8.1.4 谁需要关注ML的监控结果
- 8.1.5 生产中导致模型衰退或出错的原因
- 8.2 数据科学问题的监控
- 8.2.1 模型漂移
- 8.2.2 决策边界的改变
- 8.2.3 模拟漂移与模型重建修正
- 8.2.4 数据科学问题监控的常见指标和方法
- 8.3 运维问题的监控
- 8.3.1 运维问题的监控与可观察性
- 8.3.2 运维问题监控的指标定义
- 8.4 在MLOps框架内增加监控功能
- 8.4.1 ML的日志信息记录
- 8.4.2 使用特征存储简化模型监控
- 8.4.3 A/B在线实验闭环
- 8.4.4 模型衰退检测
- 8.4.5 模型维护
- 8.4.6 模型自动持续训练
- 8.4.7 API缓冲
- 8.5 本章总结
- 第9章 对MLOps的一些实践经验总结
- 9.1 ML和MLOps平台比较
- 9.1.1 聚焦传统ML与聚焦深度学习
- 9.1.2 聚焦分析探索与聚焦产品化
- 9.1.3 面向平民化数据科学与面向数据科学专家
- 9.1.4 专业化平台与端到端平台
- 9.2 自研MLOps平台
- 9.2.1 自研MLOps平台的经验总结
- 9.2.2 MLOps框架或平台的搭建原则
- 9.2.3 MLOps的架构参考
- 9.3 MLOps架构的成熟度评估
- 9.3.1 对业务需求的定义
- 9.3.2 数据准备
- 9.3.3 模型实验
- 9.3.4 模型部署
- 9.3.5 模型监控
- 9.3.6 模型的持续训练
- 9.3.7 关于MLOps架构成熟度评估的思考
- 9.4 本章总结
- 后折页
- 封底
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。