作者简介
汉内斯·哈普克(Hannes Hapke),数据科学家,善于解决各行各业的机器学习问题,与他人合著有《自然语言处理实战》。 凯瑟琳·纳尔逊(Catherine Nelson),数据科学家,牛津硕士,长期为企业提供机器学习解决方案。 译者介绍 孔晓泉,谷歌认证机器学习专业人士,TensorFlow Addons的Codeowner之一,上海TensorFlow User Group核心组织者,多年来一直在世界500强公司带领团队构建机器学习应用和平台。另外,他还作为技术审稿人参与了TensorFlow文档的本地化工作。 郑炜,明尼苏达双子城分校机械工程硕士,伊利诺伊香槟分校机械工程,谷歌认证机器学习专业人士,ABB电气事业部中国技术中心算法项目经理、算法,参与算法开发和算法工作流搭建等工作。 江骏,蚂蚁集团技专业人士(花名“有练”)、谷歌认证机器学习专业人士、蚂蚁云原生机器学习平台技术负责人,专注于AI基础架构和训练框架优化。
目录
本书赞誉xiii
序xv
前言xvii
章入门1
1.1为什么要用机器学习流水线1
1.2什么时候考虑使用机器学习流水线2
1.3机器学习流水线步骤概述3
1.3.1数据读取和版本控制4
1.3.2数据校验4
1.3.3数据预处理4
1.3.4模型训练和模型调优5
1.3.5模型分析5
1.3.6模型版本控制5
1.3.7模型部署6
1.3.8反馈循环6
1.3.9数据隐私6
1.4流水线编排7
1.4.1为什么使用流水线编排工具7
1.4.2有向无环图7
1.5示例项目8
1.5.1项目结构9
1.5.2机器学习模型9
1.5.3示例项目的目标10
1.6小结10
第2章TensorFlowExtended入门11
2.1什么是TFX12
2.2安装TFX13
2.3TFX组件概述14
2.4什么是机器学习元数据15
2.5交互式流水线16
2.6TFX的替代品17
2.7ApacheBeam简介18
2.7.1安装18
2.7.2基本数据流水线19
2.7.3执行流水线22
2.8小结22
第3章数据读取23
3.1数据读取的概念23
3.1.1读取本地数据文件24
3.1.2读取远程数据文件29
3.1.3直接从数据库中读取数据29
3.2数据准备31
3.2.1拆分数据集31
3.2.2跨越数据集33
3.2.3对数据集进行版本控制34
3.3数据读取策略34
3.3.1结构化数据35
3.3.2自然语言处理中的文本数据35
3.3.3用于计算机视觉问题的图像数据35
3.4小结36
第4章数据校验37
4.1为什么要进行数据校验38
4.2TFDV39
4.2.1安装39
4.2.2根据数据生成统计信息40
4.2.3从数据生成模式41
4.3识别数据中的问题42
4.3.1比较数据集43
4.3.2更新模式44
4.3.3数据偏斜和漂移45
4.3.4存在偏差的数据集46
4.3.5在TFDV中切分数据47
4.4使用GCP处理大型数据集49
4.5将TFDV集成到机器学习流水线中51
4.6小结53
第5章数据预处理54
5.1为什么要进行数据预处理55
5.1.1在整个数据集的上下文中预处理数据55
5.1.2扩展预处理步骤55
5.1.3避免训练–服务偏斜55
5.1.4将预处理步骤和机器学习模型作为一个工件进行部署56
5.1.5检查流水线中的预处理结果56
5.2使用TFT做数据预处理57
5.2.1安装58
5.2.2预处理策略58
5.2.3最佳实践60
5.2.4TFT函数60
5.2.5TFT的独立执行63
5.2.6将TFT集成到机器学习流水线中64
5.3小结67
第6章模型训练68
6.1定义示例项目的模型69
6.2TFXTrainer组件72
6.2.1run_fn()函数72
6.2.2运行Trainer组件76
6.2.3其他关于Trainer组件的注意事项77
6.3在交互式流水线中使用TensorBoard78
6.4分布策略80
6.5模型调整82
6.5.1超参数调整的策略82
6.5.2TFX流水线中的超参数调整83
6.6小结83
第7章模型分析和模型验证84
7.1如何分析模型85
7.1.1分类指标85
7.1.2回归指标87
7.2TensorFlow模型分析88
7.2.1用TFMA分析单个模型88
7.2.2用TFMA分析多个模型91
7.3模型公平性分析93
7.3.1用TFMA划分模型预测94
7.3.2用公平性指标检查决策阈值96
7.3.3详解假设分析工具98
7.4模型可解释性102
7.4.1使用WIT生成模型解释103
7.4.2其他模型解释方法105
7.5用TFX进行分析和验证106
7.5.1ResolverNode106
7.5.2Evaluator组件107
7.5.3用Evaluator组件进行验证107
7.5.4TFXPusher组件108
7.6小结109
第8章用TensorFlowServing部署模型110
8.1简单的模型服务器111
8.2基于PythonAPI部署模型的缺点112
8.2.1缺少代码隔离112
8.2.2缺少模型版本控制112
8.2.3低效的模型推算112
8.3TensorFlowServing113
8.4TensorFlowServing架构概述113
8.5为TensorFlowServing导出模型113
8.6模型签名115
8.7查看导出的模型117
8.7.1查看模型118
8.7.2测试模型119
8.8设置TensorFlowServing120
8.8.1Docker安装120
8.8.2原生Ubuntu安装120
8.8.3从源码编译TensorFlowServing121
8.9配置TensorFlow服务器121
8.9.1单一模型配置121
8.9.2多模型配置124
8.10REST与gRPC126
8.10.1REST126
8.10.2gRPC126
8.11用模型服务器预测126
8.11.1用REST获得模型预测126
8.11.2通过gRPC使用TensorFlowServing128
8.12用TensorFlowServing进行模型A/B测试131
8.13从模型服务器获取模型元数据132
8.13.1使用REST请求模型元数据132
8.13.2使用gRPC请求模型元数据133
8.14批量推算请求134
8.15配置批量预测135
8.16其他TensorFlowServing优化方法136
8.17TensorFlowServing的替代品137
8.17.1BentoML137
8.17.2Seldon138
8.17.3GraphPipe138
8.17.4SimpleTensorFlowServing138
8.17.5MLflow138
8.17.6RayServe139
8.18在云端部署139
8.18.1用例139
8.18.2在GCP上进行示例部署139
8.19使用TFX流水线进行模型部署144
8.20小结145
第9章使用TensorFlowServing进行进阶模型部署146
9.1解耦部署环节146
9.1.1工作流概述147
9.1.2优化远程模型加载149
9.2为部署模型进行优化149
9.2.1量化149
9.2.2剪枝150
9.2.3蒸馏151
9.3在TensorFlowServing中使用TensorRT151
9.4TFLite152
9.4.1用TFLite优化模型的步骤152
9.4.2使用TensorFlowServing实例部署TFLite模型153
9.5监测TensorFlowServing实例154
9.5.1设置Prometheus154
9.5.2TensorFlowServing配置156
9.6使用TensorFlowServing和Kubernetes进行简单的扩容157
9.7小结159
0章TensorFlowExtended的不错功能160
10.1流水线的不错功能160
10.1.1同时训练多个模型161
10.1.2导出TFLite模型162
10.1.3热启动模型训练164
10.2人工审核165
10.2.1创建Slack组件166
10.2.2如何使用Slack组件166
10.3TFX自定义组件167
10.3.1自定义组件的应用场景168
10.3.2从零创建自定义组件168
10.3.3复用现有组件176
10.4小结179
1章流水线部分:ApacheBeam和ApacheAirflow180
11.1选择哪种编排工具181
11.1.1ApacheBeam181
11.1.2ApacheAirflow181
11.1.3KubeflowPipelines181
11.1.4AIPlatform上的KubeflowPipelines182
11.2将交互式TFX流水线转换为生产流水线182
11.3Beam和Airflow的简单交互式流水线转换184
11.4ApacheBeam简介185
11.5使用ApacheBeam编排TFX流水线185
11.6ApacheAirflow简介187
11.6.1安装和初始设置187
11.6.2基本Airflow示例188
11.7使用ApacheAirflow编排TFX流水线191
11.7.1流水线设置192
11.7.2运行流水线193
11.8小结194
2章流水线第二部分:KubeflowPipelines195
12.1KubeflowPipelines概述196
12.1.1安装和初始设置198
12.1.2访问已安装的KubeflowPipelines199
12.2使用KubeflowPipelines编排TFX流水线200
12.2.1流水线设置202
12.2.2运行流水线206
12.2.3KubeflowPipelines的有用功能211
12.3基于GoogleCloudAIPlatform的流水线215
12.3.1流水线设置215
12.3.2TFX流水线设置218
12.3.3运行流水线221
12.4小结222
3章反馈循环223
13.1显式反馈和隐式反馈224
13.1.1数据飞轮224
13.1.2现实世界中的反馈循环225
13.2收集反馈的设计模式227
13.2.1用户根据预测采取了某些措施227
13.2.2用户对预测的质量进行评分228
13.2.3用户纠正预测228
13.2.4众包打标228
13.2.5专家打标229
13.2.6自动产生反馈229
13.3如何跟踪反馈循环229
13.3.1跟踪显式反馈230
13.3.2跟踪隐式反馈230
13.4小结231
4章机器学习的数据隐私232
14.1数据隐私问题232
14.1.1为什么关心数据隐私232
14.1.2最简单的加强隐私保护的方法233
14.1.3哪些数据需要保密233
14.2差分隐私234
14.2.1局部差分隐私和全局差分隐私235
14.2.2epsilon、delta和隐私预算235
14.2.3机器学习的差分隐私236
14.3TensorFlowPrivacy236
14.3.1使用差分隐私优化器进行训练237
14.3.2计算epsilon238
14.4联邦学习239
14.5加密机器学习241
14.5.1加密模型训练241
14.5.2将训练好的模型转换为加密的预测服务242
14.6其他数据保密方法243
14.7小结243
5章流水线的未来和下一步244
15.1模型实验跟踪244
15.2关于模型发布管理的思考245
15.3未来的流水线能力246
15.4TFX与其他机器学习框架246
15.5测试机器学习模型247
15.6用于机器学习的CI/CD系统247
15.7机器学习工程社区247
15.8小结247
附录A机器学习基础架构简介249
附录B在GoogleCloud上设置Kubernetes集群262
附录C操作KubeflowPipelines的技巧268
关于作者276
关于封面276
内容摘要
本书介绍如何构建完整的机器学习流水线,从而在生产环境中准备数据以及训练、验证、部署和管理机器学习模型。你将了解机器学习流水线的每个环节,以及如何利用TensorFlow Extended(TFX)构建机器学习流水线。模型的生命周期是一个闭环,其中包括数据读取、数据校验、数据预处理、模型训练、模型分析、模型验证、模型部署、模型反馈等环节。你将学习如何利用Beam、Airflow、Kubeflow、TensorFlow Serving等工具将每一个环节的工作自动化。学完本书,你将不再止步于训练单个模型,而是能够从更高的角度将模型产品化,从而为公司创造更大的价值。
主编推荐
1.本书从各个环节细致的介绍了如何构建完整的机器学习流水线,以及如何用TensorFlow轻松实现自动化机器学习;
2.本书概述了搭建机器学习流水线所需的组件,介绍了TFX的新特性和组件,且提供了实用的代码示例;
3.本书受到了谷歌TensorFlow开发者大使Robert Crowe、帕特森咨询公司CEO Josh Patterson等人联合推荐;
4.本书适合机器学习工程师、算法工程师及数据项目负责人等相关开发人员阅读学习,主要可学习到以下内容:
●了解机器学习流水线的构建步骤
●使用TensorFlow Extended(TFX)构建机器学习流水线
●使用Beam、Airflow、Kubeflow Pipelines编排流水线
●数据校验和数据预处理
●使用TensorFlow的模型分析工具
●检查模型的公平性
●使用TensorFlow Serving和TensorFlow Lite部署模型
●了解差分隐私、联邦学习和加密机器学习等隐私保护方法
以下为对购买帮助不大的评价