Skip to main content

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 的跨框架分布式训练。
  • 示例配置
    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) 组件

  • 功能
    • 提供生产级数据流水线工具(如 ExampleGenTransformModelValidator)。
    • 与 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,简化开发流程。

组件关系图


典型工作流示例

  1. 开发阶段
    • 使用 Notebook Servers 开发代码 → 通过 Kale 转换为 Pipeline。
  2. 训练阶段
    • Pipelines 调用 TFJob 启动训练 → Katib 优化超参 → 模型存入 ML Metadata
  3. 部署阶段
    • KFServing 加载模型 → Prometheus 监控推理性能。
  4. 特征管理
    • Feast 同步特征数据到训练和推理环境。

总结

Kubeflow 的核心优势在于 模块化,用户可根据需求灵活选择组件。常用组合包括:

  • 基础流程:Pipelines + Training Operators + KFServing。
  • 高级功能:Katib(HPO) + Feast(特征管理) + TFX(数据验证)。
  • 企业级:集成 Seldon Core(复杂推理) + Istio(流量管理)。

这些组件共同构成了一个完整的 MLOps 平台,覆盖从实验到生产的全链路需求。

Resources