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

实验被提交到Kubernetes API服务器。Katib实验的变更和验证Webhook被调用,以设置实验的默认值并单独验证CR。
实验控制器创建建议。
建议控制器根据新的建议创建算法部署和服务。
当建议控制器验证算法服务准备就绪时,它调用该服务生成
spec.request - len(status.suggestions)组超参数,并将它们附加到status.suggestions中。实验控制器发现建议已更新,并为每个新的超参数集生成每个试验。
试验控制器基于带有新超参数集的试验中的
runSpec生成Worker Job。相关的作业控制器 (Kubernetes 批量作业,Kubeflow TFJob,Tekton Pipeline 等)生成 Kubernetes Pods。
Katib Pod 变异网络钩子被调用来将指标收集器边车容器注入到候选 Pod。
在机器学习模型容器运行期间,指标收集器容器从注入的 Pod 收集指标,并将指标持久化到 Katib 数据库后台。
当ML模型训练结束时,Trial控制器更新相应Trial的状态。
当实验结束时,如果需要,实验控制器会增加相应建议的
request字段,然后一切会再次进入步骤 4。当然,如果实验满足某个end条件(超过maxTrialCount、maxFailedTrialCount或goal),实验控制器将会完成所有操作。
Last modified October 15, 2024: 文档:将图表添加到参考 (#3906) (3c7d3de)