Katib 实验生命周期

实验创建后会发生什么

Katib 实验生命周期

当用户创建一个实验时,Katib Experiment 控制器、Suggestion 控制器和 Trial 控制器协同工作,为用户的机器学习模型实现超参数调优。实验工作流程如下所示

Katib Workflow

  1. 实验被提交到 Kubernetes API 服务器。Katib Experiment 变异和验证 webhook 会被调用,分别用于为实验设置默认值和验证 CR。

  2. Experiment 控制器创建 Suggestion。

  3. Suggestion 控制器根据新的 Suggestion 创建算法部署和服务。

  4. 当 Suggestion 控制器验证算法服务已准备就绪后,它会调用该服务生成 spec.request - len(status.suggestions) 组超参数,并将它们附加到 status.suggestions 中。

  5. Experiment 控制器发现 Suggestion 已更新,并为每个新的超参数集生成相应的 Trial。

  6. Trial 控制器根据 Trial 中的 runSpec 和新的超参数集生成 Worker Job

  7. 相关的 job 控制器(Kubernetes batch Job、Kubeflow TFJob、Tekton Pipeline 等)生成 Kubernetes Pod。

  8. Katib Pod 变异 webhook 会被调用,将指标收集器 sidecar 容器注入到候选 Pod 中。

  9. 在 ML 模型容器运行时,指标收集器容器从注入的 pod 中收集指标,并将指标持久化到 Katib DB 后端。

  10. 当 ML 模型训练结束时,Trial 控制器会更新对应 Trial 的状态。

  11. 当 Trial 结束时,如果需要,Experiment 控制器会增加对应 Suggestion 的 request 字段,然后流程回到 step 4。当然,如果 Trial 满足任一 end 条件(超出 maxTrialCountmaxFailedTrialCountgoal),Experiment 控制器会结束所有操作。

反馈

此页面有帮助吗?


上次修改时间:2025年3月29日:网站:添加深色主题 (#3981) (4f092f1)