Katib 实验生命周期

实验创建后发生了什么

Katib 实验生命周期

当用户创建一个实验时,Katib 实验控制器、建议控制器和试验控制器协同工作,以实现用户机器学习模型的超参数调整。实验工作流程如下:

Katib Workflow
  1. 实验被提交到Kubernetes API服务器。Katib实验的变更和验证Webhook被调用,以设置实验的默认值并单独验证CR。

  2. 实验控制器创建建议。

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

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

  5. 实验控制器发现建议已更新,并为每个新的超参数集生成每个试验。

  6. 试验控制器基于带有新超参数集的试验中的 runSpec 生成 Worker Job

  7. 相关的作业控制器 (Kubernetes 批量作业,Kubeflow TFJob,Tekton Pipeline 等)生成 Kubernetes Pods。

  8. Katib Pod 变异网络钩子被调用来将指标收集器边车容器注入到候选 Pod。

  9. 在机器学习模型容器运行期间,指标收集器容器从注入的 Pod 收集指标,并将指标持久化到 Katib 数据库后台。

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

  11. 当实验结束时,如果需要,实验控制器会增加相应建议的request字段,然后一切会再次进入步骤 4。当然,如果实验满足某个end条件(超过maxTrialCountmaxFailedTrialCountgoal),实验控制器将会完成所有操作。

反馈

此页面有帮助吗?