
何金池等
当前的IT界有两大高速列车,一是以“Kubernetes”为标杆技术的云计算,二是以“Tensorflow和PyTorch”等为代表的机器学习。如何使二者结合起来,成为近期IT界讨论的热点。Kubeflow的横空出世,有效的连接起了Kubernetes 和各个机器学习的框架,提供了机器学习在Kubernetes上的端到端的解决方案。本书讲解Kubeflow以及其社区的技术栈,包括机器学习的流程编排技术Pipelines、并行模型训练技术TFJob和PyTorchJob等、超参调优技术Katib、服务发布KFServing,机器学习的Python SDK Fairing等,涉及到机器学习的各个方面。本书结合理论和实战,详细阐述了Kubeflow社区的新技术和新方案。最后,展望了Kubeflow的前景和AI Hub的发展趋势。
《Kubeflow:云计算和机器学习的桥梁》核心拆解 作者:何金池等 一句话概括 Kubeflow以Kubernetes为资源与调度底座,把数据准备、实验开发、分布式训练、超参优化、流程编排、模型发布和元数据追踪连接起来,使机器学习从个人实验转变为可复现、可扩展、可运维的生产流程。 核心逻辑 机器学习项目的难点不仅是训练模型,还包括一系列工程问题: 如何统一环境 → 如何申请计算资源 → 如何运行分布式训练 → 如何自动调参 → 如何复现实验 → 如何发布模型 → 如何扩缩容和监控 Kubeflow的解决思路是: 用容器封装运行环境,用Kubernetes管理资源和作业,再用不同Kubeflow组件覆盖机器学习生命周期。 全书的技术链路可以概括为: Notebook实验 → 代码和环境镜像化 → Pipelines编排流程 → Operator执行训练 → Katib优化参数 → Metadata记录过程 → KFServing发布服务 → 监控、扩缩容和更新 其核心价值不是提供一种新的机器学习算法,而是让数据科学、模型训练和云原生运维使用一套可组合、可声明和可自动化的基础设施。 核心内容 1. Kubernetes解决机器学习的资源与运行环境问题 机器学习任务具有几个典型特征: 计算资源需求高;不同实验依赖不同软件环境;训练任务具有突发性;经常需要GPU和多节点并行;线上推理需要扩缩容与高可用。 Docker镜像把代码、依赖和运行环境封装在一起,解决“在我的机器上可以运行”的环境差异。 Kubernetes则负责调度Pod、分配CPU、GPU、内存和存储、维持期望运行状态、处理故障与重启、暴露网络服务、实现弹性扩缩容,以及管理配置和资源对象。 因此,Kubeflow并不取代Kubernetes,而是在它之上增加机器学习所需的领域能力。 2. Kubeflow是一组可组合的工具,而非单一平台程序 Kubeflow覆盖机器学习生命周期的主要组件包括: Jupyter Notebook:交互式实验开发;Pipelines:工作流定义与编排;TFJob、PyTorchJob等Operator:分布式训练;Katib:超参数搜索;Metadata:记录实验及模型血缘;KFServing:发布推理服务;Fairing:衔接开发、构建、训练和部署;Kubebench:进行模型和环境基准测试。 这些组件既可以组合成端到端平台,也可以根据企业已有技术栈选择性采用。 Kubeflow的设计重点是开放和可替换,而不是强迫所有团队使用同一种机器学习框架。 3. Pipelines把机器学习实验变成可执行流程 完整的机器学习项目通常包含: 数据获取 → 数据清洗 → 特征工程 → 模型训练 → 模型评估 → 模型验证 → 服务发布 如果这些步骤依靠开发人员手动运行,就容易出现操作顺序不一致、参数和代码版本难以追踪、中间数据无法复用、实验难以重现,以及上线过程依赖个人经验等问题。 Kubeflow Pipelines把每个步骤封装成组件,再按照依赖关系组成有向流程。 这样可以记录每一步的输入、输出、参数和运行状态,并在部分步骤失败时重新执行。机器学习由此从一组零散脚本转变为可检查、可重复的流水线。 4. Operator把分布式训练声明为Kubernetes资源 原生Kubernetes理解Pod和Deployment,却不了解参数服务器、训练节点、主节点和工作节点之间的机器学习语义。 Kubeflow通过自定义资源CRD和Operator解决这个问题。例如,TFJob管理TensorFlow分布式训练,PyTorchJob管理PyTorch训练,其他Operator适配不同计算框架。 用户只需声明使用什么镜像、需要多少训练节点、每个节点需要多少资源、各节点承担什么角色,以及失败后采用什么重启策略。 Operator负责把声明转换为实际Pod,并持续检查训练状态。 这使机器学习作业获得与其他云原生应用相似的自动调度、故障恢复和资源管理能力。 5. Katib把调参过程自动化 学习率、批量大小、网络层数和正则化系数等超参数不会在普通训练过程中自动获得,却会显著影响模型效果。 人工调参存在效率低、实验记录混乱和结果依赖个人经验等问题。 Katib允许用户定义待搜索参数及其范围、优化目标、实验次数、并发任务数、搜索算法和提前停止策略。 随后,它可以通过随机搜索、网格搜索、贝叶斯优化等方法自动生成实验,并根据评测结果继续寻找较优参数组合。 其真正价值不仅是“找到更好的参数”,还在于把每次试验变成可以比较、记录和复现的标准化过程。 6. 元数据管理保证实验可以复现和追责 生产级机器学习系统必须能够回答: 这个模型使用了哪一版数据;由哪一版代码训练;采用了什么参数和镜像;在什么环境中运行;评测结果是什么;最终发布的是哪个模型;出现问题时应该回滚到哪一版。 Kubeflow Metadata用于收集和展示数据集、作业、模型、指标及其他运行信息,形成实验和模型之间的血缘关系。 没有元数据,模型只是一个难以解释的文件;有了元数据,模型才成为来源明确、过程可查、结果可比较的工程制品。 7. KFServing解决模型从训练到在线服务的“最后一公里” 完成模型训练并不等于完成机器学习产品。模型还需要被包装成稳定的推理接口,并处理服务启动、请求路由、版本更新、流量切换、自动扩缩容、故障恢复和资源隔离。 书中的KFServing基于Kubernetes、Istio和Knative,把模型封装为InferenceService,使模型能够通过标准接口对外提供预测服务。 它把模型部署从手工编写复杂服务,转变为声明模型位置、运行框架和资源要求,再由平台创建服务。 需要注意的是,KFServing后来已演化并更名为KServe。阅读本书时应吸收其“声明式模型服务”的思想,而不要机械照搬旧版本的接口与部署步骤。 8. Fairing缩短Notebook到集群之间的距离 数据科学家通常习惯在Notebook中开发,但生产训练需要经历代码导出、镜像构建、上传仓库、提交作业和发布服务等步骤。 Kubeflow Fairing尝试把这些步骤连接起来: 本地或Notebook代码 → 预处理 → 构建镜像 → 提交集群训练 → 发布服务 其目标是让开发者尽量使用熟悉的Python工作方式,而不必直接操作大量底层Kubernetes配置。 这体现了MLOps平台的重要原则:平台不应只是提供基础设施,还要降低数据科学家使用基础设施的认知成本。 9. Notebook Hub提供统一、隔离的实验环境 Kubeflow中的Jupyter Notebook Hub允许不同用户在Kubernetes集群中启动自己的Notebook环境。 管理员可以统一配置基础镜像、CPU和GPU配额、持久化存储、软件依赖、用户权限以及网络和安全策略。 这样既保留Notebook的交互式开发体验,又避免每位成员单独维护机器和环境。 但Notebook主要适合探索和调试。进入稳定生产阶段后,关键步骤仍应转化为版本化代码和自动化流水线,避免业务长期依赖人工点击单元格。 10. 端到端平台的价值是连接研发与运维 本书通过图像分类和Seq2Seq等案例,展示一条完整路径: 在Notebook中处理数据、编写并验证模型;把训练代码和依赖打包为镜像;用TFJob等资源执行集群训练;用Katib进行参数优化;用Metadata记录实验;用Pipelines编排完整流程;用KFServing发布预测接口。 Kubeflow真正解决的是组织协作问题:数据科学家关注模型和指标,平台工程师负责资源和基础设施,运维人员关注可靠性,而流水线和声明式资源成为双方共同的交付接口。 本书最值得关注的核心观点 1. 机器学习生产化的核心是生命周期管理 训练模型只是其中一个环节。真正的生产系统必须同时管理数据、代码、环境、参数、模型、服务和运行记录。 2. 容器保证环境一致,Kubernetes保证运行状态 容器回答“模型在哪里都能以同样方式运行”,Kubernetes回答“需要多少资源、运行多少副本、失败后如何恢复”。 3. 流水线是机器学习工程的交付单位 单个Notebook或模型文件无法表达完整过程。可版本化、可执行、可追踪的Pipeline更适合作为团队交付物。 4. 声明式管理比手工操作更适合规模化 用户描述期望状态,由控制器持续将现实状态调整到目标状态。这种思想贯穿训练作业、调参任务和模型服务。 5. 可复现性来自完整血缘,而不只是保存模型 只有同时记录数据、代码、镜像、参数、指标和环境,模型结果才能被真正复现、审计和比较。 6. MLOps平台的成功取决于组件边界和用户体验 技术组件越多,不代表平台越成熟。平台需要为数据科学家提供简单入口,同时为工程团队保留治理、扩展和替换能力。 一段话总结 《Kubeflow:云计算和机器学习的桥梁》系统介绍了如何以Kubernetes为云原生底座,把机器学习的实验开发、环境封装、分布式训练、超参数优化、流程编排、元数据追踪和模型服务连接成完整生命周期:Jupyter Notebook提供交互式开发环境,Pipelines把数据处理、训练、评估和发布转化为可复现流程,TFJob和PyTorchJob等Operator以声明式资源管理分布式训练,Katib自动搜索超参数,Metadata保存实验与模型血缘,Fairing连接代码、镜像、训练和部署,KFServing则完成在线推理服务的发布与扩缩容。全书最重要的启示是,机器学习生产化并不只是把模型部署到服务器,而是让数据、代码、环境、参数、计算资源、模型版本和线上服务都能够被统一管理、自动执行、持续追踪和安全回滚;Kubeflow的真正意义,正是把Kubernetes的弹性调度与声明式管理能力引入机器学习工程,使模型研发从个人化实验升级为可协作、可复现、可扩展和可运维的MLOps体系。
2026年读完的第二本书,我的评价是不如看官方文档,不推荐。
copy源代码凑篇幅严重 干货不多
入门书籍,先理解概念,后续团队可以实践一把
还不错,对于新人可以帮助快速了解kubeflow的基本体系和使用
kubeflow入门介绍挺不错的,对进阶来说,需要详细看各个组件模块,刚好和最近工作切合,期待kf社区的发展。
对得起定价了,基本上就是一个官方文档汉化加学习笔记的综合体,英文不好的可以看看作为入门材料。
整个介绍不错,但略显粗糙,课程代码建议附上。