Kubeflow 常用组件
· 4 min read
Kubeflow 是一个基于 Kubernetes 的端到端机器学习平台,集成了多个开源工具和组件,覆盖了从数据准备到模型部署的全流程。以下是 Kubeflow 常用的核心组件及其作用,按功能模块分类整理:
1. 流水线编排与自动化
(1) Kubeflow Pipelines
- 功能:
- 通过可视化 UI 或 SDK 定义、调度和管理 ML 工作流(如数据预处理 → 训练 → 评估 → 部署)。
- 支持多步骤 DAG(有向无环图)编排,自动跟踪实验和 artifacts。
- 关键特性:
- 内置 Argo Workflows 作为执行引擎。
- 提供 Python SDK(
kfp
)和 Jupyter Notebook 集成。
(2) Argo Workflows
- 功能:
- Kubernetes 原生工作流引擎,负责执行 Kubeflow Pipelines 定义的步骤。
- 支持任务依赖、条件分支、循环等复杂逻辑。
2. 模型训练与分布式计算
(3) Training Operators
- 功能:
- 提供针对不同框架的 Kubernetes 原生训练算子(CRD):
- TFJob:支持 TensorFlow 分布式训练(Parameter Server/AllReduce)。
- PyTorchJob:支持 PyTorch 分布式训练(如 DDP)。
- MPIJob:基于 Horovod 的跨框架分布式训练。
- 提供针对不同框架的 Kubernetes 原生训练算子(CRD):
- 示例配置:
apiVersion: kubeflow.org/v1
kind: TFJob
metadata:
name: mnist-train
spec:
tfReplicaSpecs:
Worker:
replicas: 3
template:
containers:
- name: tensorflow
image: tensorflow/mnist:latest
resources:
limits:
nvidia.com/gpu: 2
(4) Katib
- 功能:
- 超参数调优(HPO)和神经网络架构搜索(NAS)工具。
- 支持多种优化算法(如贝叶斯优化、网格搜索)。
- 集成方式:
- 通过 Kubeflow Pipelines 调用 Katib 实验,自动搜索最优超参。
3. 模型部署与 Serving
(5) KFServing
- 功能:
- 高性能模型服务框架,支持 Serverless 推理(自动扩缩容)。
- 内置多框架支持(TensorFlow、PyTorch、XGBoost 等)。
- 特性:
- 蓝绿部署、A/B 测试、流量拆分。
- 自动生成监控指标(如 QPS、延迟)。
(6) Seldon Core
- 功能:
- 替代或补充 KFServing,提供更复杂的推理图(如多模型组合、业务逻辑层)。
- 支持自定义推理容器和高级路由策略。
4. 数据与特征管理
(7) Feast (Feature Store)
- 功能:
- 统一管理训练和推理用的特征数据,确保线上线下一致性。
- 支持实时特征检索(如 Redis 后端)。
(8) TFX (TensorFlow Extended) 组件
- 功能:
- 提供生产级数据流水线工具(如
ExampleGen
、Transform
、ModelValidator
)。 - 与 Kubeflow Pipelines 深度集成,实现 TF 模型的全生命周期管理。
- 提供生产级数据流水线工具(如
5. 监控与可观测性
(9) Prometheus + Grafana
- 功能:
- 监控训练任务资源占用(GPU/CPU/内存)、模型服务指标(如延迟、错误率)。
- Kubeflow 原生集成 Prometheus,可直接查看 Pipeline 运行状态。
(10) MLflow Tracking
- 功能:
- 记录实验参数、指标和模型 artifacts(需手动集成到 Pipeline 中)。
6. 其他实用组件
(11) Notebook Servers
- 功能:
- 基于 JupyterLab 的交互式开发环境,支持多用户隔离。
- 可挂载 PVC 持久化代码和数据。
(12) Metadata
- 功能:
- 记录 Pipeline 的输入/输出、模型版本、数据集版本等元数据。
- 便于审计和复现实验结果。
(13) Kale
- 功能:
- 将 Jupyter Notebook 一键转换为 Kubeflow Pipeline,简化开发流程。
组件关系图
典型工作流示例
- 开发阶段:
- 使用 Notebook Servers 开发代码 → 通过 Kale 转换为 Pipeline。
- 训练阶段:
- Pipelines 调用 TFJob 启动训练 → Katib 优化超参 → 模型存入 ML Metadata。
- 部署阶段:
- KFServing 加载模型 → Prometheus 监控推理性能。
- 特征管理:
- Feast 同步特征数据到训练和推理环境。
总结
Kubeflow 的核心优势在于 模块化,用户可根据需求灵活选择组件。常用组合包括:
- 基础流程:Pipelines + Training Operators + KFServing。
- 高级功能:Katib(HPO) + Feast(特征管理) + TFX(数据验证)。
- 企业级:集成 Seldon Core(复杂推理) + Istio(流量管理)。
这些组件共同构成了一个完整的 MLOps 平台,覆盖从实验到生产的全链路需求。