
诺亚·吉夫特 阿尔弗雷多·德萨
本书前几章涵盖了DevOps和MLOps的理论和实践,然后介绍了如何设置持续集成和持续交付,接着介绍Kaizen,即对所有事物进行持续改进的想法。与云计算相关的MLOps分为三章,涵盖AWS、Azure 和GCP(谷歌云平台)。之后介绍了机器学习互操作性、构建MLOps命令行工具和微服务。这些主题包括许多具有积极吸引力的尖端新兴技术。结尾介绍了一些真实案例研究,以及执行MLOps时面临的挑战。
《MLOps权威指南》|诺亚·吉夫特、阿尔弗雷多·德萨 一句话概括 这是一本从工程实践出发介绍MLOps的系统指南,围绕机器学习模型的开发、部署、监控、迭代和治理,帮助团队把实验室模型稳定地转化为可持续运行的生产系统。 核心逻辑 全书沿着“DevOps基础—机器学习管道—持续交付—运行监控—云平台落地—工程化扩展”的路径展开: 1. 理解DevOps与MLOps的关系。2. 掌握Linux、Python、云计算和机器学习基础。3. 用容器、基础设施即代码和CI/CD建立模型交付流程。4. 通过AutoML、可解释性和Kaizen持续改进模型。5. 用日志、监控和可观测性管理线上系统。6. 分别在AWS、Azure和GCP上实现MLOps。7. 通过ONNX、Core ML、CLI和微服务提升互操作性和部署能力。8. 结合案例研究理解真实组织中的挑战与取舍。 核心观点是:MLOps不只是把模型部署上线,而是让数据、代码、模型、基础设施和团队协作形成可复现、可监控、可持续改进的完整生命周期。 核心内容 1. MLOps是机器学习时代的DevOps 传统软件的输入通常是代码,机器学习系统的输入还包括数据、特征、标签和训练配置。 因此,MLOps除了继承DevOps的自动化、持续集成和持续交付,还需要管理数据版本、特征处理、模型版本、训练环境、实验参数、评估指标、部署配置和线上反馈。 一个模型即使代码不变,数据分布发生变化,也可能导致性能下降。这使机器学习系统比普通软件更需要持续监控和重训练。 2. MLOps需求层次从可复现开始 MLOps建设可以逐层推进: - 个人实验可复现。- 团队协作有统一环境。- 模型训练和测试自动化。- 模型能够持续交付。- 生产系统可以监控和回滚。- 组织能够管理模型资产、权限和风险。- 数据与模型生命周期能够长期治理。 如果基础环境、版本控制和数据管理都不稳定,直接建设复杂平台通常只会增加维护成本。 3. 基础工程能力决定上限 书中从Bash、Linux命令行、Python、云端Shell、云计算和机器学习关键概念讲起,用于编写自动化脚本、管理训练环境、组织项目依赖、调用云服务、处理数据和诊断部署问题。 MLOps工程师不仅需要懂算法,还要理解系统、代码、基础设施和运行环境之间的关系。 4. 从零构建机器学习管道 一个基本的MLOps管道通常包括: 1. 数据采集与清洗。2. 特征处理与数据验证。3. 模型训练和实验记录。4. 模型评估与比较。5. 模型打包和版本管理。6. 自动化测试。7. 部署到服务或设备。8. 线上监控与反馈。9. 触发重新训练或回滚。 每一步都需要保留可追溯记录,确保团队能够回答:这个模型使用了什么数据、由哪个代码版本训练、为什么被部署,以及当前效果是否仍然可靠。 5. 容器和基础设施即代码提升一致性 容器把模型、依赖库和运行环境封装在一起,减少“在我的电脑上能运行”的问题;基础设施即代码则把服务器、网络、权限和部署配置写成可版本控制的文件。 二者结合可以实现开发、测试和生产环境一致,快速创建和销毁资源,自动化部署,审查配置变更,并在问题出现时快速回滚。边缘设备部署还要考虑算力、网络、延迟、功耗和模型压缩。 6. 持续交付要求模型通过多重检查 机器学习模型不能只完成单元测试,还要检查数据格式、特征漂移、训练阈值、模型对比、推理速度、资源占用、群体偏差和目标环境兼容性。 基础设施即代码和云管道可以把这些检查自动接入持续集成与持续交付流程,使模型更新不再依赖手工复制文件。 7. AutoML和Kaizen强调持续改进 AutoML可以自动尝试特征处理、模型结构、超参数和训练流程,但不能替代问题定义。团队仍需明确目标变量、评价指标、错误代价、数据代表性、可解释性和部署约束。 Kaizen强调持续、小步、可衡量的改进。模型上线后,要根据新数据、用户反馈和线上指标不断优化,而不是把一次训练结果当成最终答案。 8. 监控和日志是生产系统的眼睛 模型在生产环境中的问题,不一定表现为程序报错,也可能表现为预测质量逐渐下降。 需要监控服务可用性、推理延迟、资源使用率、输入数据分布、特征漂移、预测分布、真实结果回流后的效果、群体差异以及异常请求。 日志应记录足够的信息用于排查,又要避免泄露敏感数据。可观测性把指标、日志和追踪结合起来,使团队能够定位问题。 9. AWS、Azure和GCP提供不同落地路径 AWS侧重云服务组合、Lambda和机器学习应用部署;Azure侧重CLI、Python SDK、身份认证、计算实例、计算集群和机器学习管道;GCP侧重数据工程、模型运维和云端机器学习服务。 云平台可以降低基础设施建设成本,但也可能带来厂商锁定、费用不可控、权限复杂和迁移困难等问题。选择平台时要结合团队技术栈、数据位置、合规要求、模型规模和运营成本。 10. 互操作性避免被单一框架锁定 ONNX等开放格式能够在不同深度学习框架和推理引擎之间交换模型,Core ML等工具则方便将模型部署到设备和边缘环境。 互操作性有助于更换训练框架、选择推理引擎、适配不同硬件和降低迁移成本,但模型转换后仍需重新测试精度、性能和算子兼容性。 11. CLI和微服务让模型进入产品系统 将模型封装为命令行工具或微服务,可以把训练、评估、预测和部署接入更大的业务流程。 良好的模型服务还要考虑输入输出接口、依赖管理、版本控制、认证权限、并发扩展、超时重试、日志监控、灰度发布和回滚。 模型只是服务的一部分,数据校验、异常处理、接口稳定性和运行成本同样重要。 12. 案例研究揭示现实复杂性 真实MLOps项目常面临数据质量不稳定、目标不断变化、研究与工程脱节、模型效果与业务收益不一致、线上反馈难以及时获得、方案超出组织维护能力等问题。 有时,简单、可维护、能快速反馈的模型,比理论上最先进但难以运营的技术更合理。 13. 团队协作和持续学习也是MLOps的一部分 远程或分布式团队需要清晰文档、统一环境、可复现实验、代码评审、标准化交付接口、明确责任边界和可靠告警。 MLOps工程师还需持续学习云服务、容器、数据工程、机器学习框架、监控、安全、软件工程和项目管理。 本书最值得关注的核心观点 MLOps的核心不是工具数量,而是可复现、可观察和可改进。 如果一个模型无法回答以下问题,就还没有真正工程化: 它由什么数据训练?使用了哪个代码版本?为什么上线?线上效果怎样?出现问题如何发现?能否回滚?下一次如何改进? 模型准确率只是生命周期中的一个指标。数据、代码、环境、部署、监控、团队协作和责任边界,必须共同构成一条完整的可信链路。 一段话总结 《MLOps权威指南》从DevOps与MLOps的关系讲起,介绍Bash、Linux、Python、云计算和机器学习基础,再通过容器、边缘设备、基础设施即代码和持续交付,构建可复现的机器学习管道。全书进一步讨论AutoML、KaizenML、模型可解释性、日志、监控和可观测性,并分别介绍AWS、Azure和GCP上的MLOps实践;随后延伸到ONNX、Core ML、边缘集成、Python打包、CLI、微服务和真实案例研究。书中最核心的启发是:MLOps不是把训练好的模型放到服务器上,而是管理数据、代码、环境、模型、接口、监控和反馈组成的完整生命周期;真正成熟的系统需要能够复现、持续交付、实时观察、快速回滚,并根据线上结果不断改进。
过于浅显,只是把各种内容串了一下,MLOps被作者讲的好像就是部署个web应用然后能用api访问打包好的ML模型。。。