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

实验被提交到 Kubernetes API 服务器。Katib Experiment 变异和验证 webhook 会被调用,分别用于为实验设置默认值和验证 CR。
Experiment 控制器创建 Suggestion。
Suggestion 控制器根据新的 Suggestion 创建算法部署和服务。
当 Suggestion 控制器验证算法服务已准备就绪后,它会调用该服务生成
spec.request - len(status.suggestions)组超参数,并将它们附加到status.suggestions中。Experiment 控制器发现 Suggestion 已更新,并为每个新的超参数集生成相应的 Trial。
Trial 控制器根据 Trial 中的
runSpec和新的超参数集生成Worker Job。相关的 job 控制器(Kubernetes batch Job、Kubeflow TFJob、Tekton Pipeline 等)生成 Kubernetes Pod。
Katib Pod 变异 webhook 会被调用,将指标收集器 sidecar 容器注入到候选 Pod 中。
在 ML 模型容器运行时,指标收集器容器从注入的 pod 中收集指标,并将指标持久化到 Katib DB 后端。
当 ML 模型训练结束时,Trial 控制器会更新对应 Trial 的状态。
当 Trial 结束时,如果需要,Experiment 控制器会增加对应 Suggestion 的
request字段,然后流程回到step 4。当然,如果 Trial 满足任一end条件(超出maxTrialCount、maxFailedTrialCount或goal),Experiment 控制器会结束所有操作。