如何恢复 Experiments
本指南介绍如何修改正在运行的 Experiments 以及如何重启已完成的 Experiments。您将了解如何更改 Experiment 的执行过程,以及如何为 Katib Experiment 使用各种恢复策略。
修改正在运行的 Experiment
在 Experiment 运行时,您可以更改 Trial 计数参数。例如,您可以减少并行训练的超参数组的最大数量。
您只能更改 Experiment 的 parallelTrialCount
、maxTrialCount
和 maxFailedTrialCount
参数。
使用 Kubernetes API 或 kubectl
就地更新资源 来修改 Experiment。例如,运行
kubectl edit experiment <experiment-name> -n <experiment-namespace>
进行适当的更改并保存。Controller 会自动处理新的参数并进行必要的更改。
如果您想增加或减少并行 Trial 的执行数量,请修改
parallelTrialCount
。Controller 将根据parallelTrialCount
的值相应地创建或删除 Trial。如果您想增加或减少最大 Trial 数量,请修改
maxTrialCount
。maxTrialCount
应该大于当前Succeeded
Trial 的数量。如果您的 Experiment 希望并行运行parallelTrialCount
个 Trial 直到达到Goal
或maxFailedTrialCount
,则可以移除maxTrialCount
参数。如果您想增加或减少最大失败 Trial 数量,请修改
maxFailedTrialCount
。如果 Experiment 不应达到Failed
状态,则可以移除maxFailedTrialCount
参数。
恢复已成功的 Experiment
Katib Experiment 只有在其状态为 Succeeded
(因为已达到 maxTrialCount
)时才可以重启。要检查当前的 Experiment 状态,运行:kubectl get experiment <experiment-name> -n <experiment-namespace>
。
要重启 Experiment,您只能更改 parallelTrialCount
、maxTrialCount
和 maxFailedTrialCount
参数,如上文所述
要控制各种恢复策略,可以为 Experiment 指定 .spec.resumePolicy
。
恢复策略:从不
如果您的 Experiment 在任何时候都不应恢复,请使用此策略。Experiment 完成后,Suggestion 的 Deployment 和 Service 将被删除,您无法重启该 Experiment。
这是所有 Katib Experiments 的默认策略。您可以省略 .spec.resumePolicy
参数来使用此功能。
恢复策略:长期运行 (LongRunning)
如果您打算重启 Experiment,请使用此策略。Experiment 完成后,Suggestion 的 Deployment 和 Service 将继续运行,直到您删除该 Experiment。修改 Experiment 的 Trial 计数参数即可重启 Experiment。
查看 long-running-resume.yaml
示例了解更多详细信息。
恢复策略:从卷 (FromVolume)
如果您打算重启 Experiment,请使用此策略。在这种情况下,卷 会附加到 Suggestion 的 Deployment。
除了 Suggestion 的 Deployment 和 Service,Katib Controller 还会创建 PersistentVolumeClaim (PVC)。
PVC 会在 Suggestion 的 namespace 中部署,名称为:
<suggestion-name>-<suggestion-algorithm>
。PV 会部署,名称为:
<suggestion-name>-<suggestion-algorithm>-<suggestion-namespace>
Experiment 完成后,Suggestion 的 Deployment 和 Service 会被删除。Suggestion 数据可以保留在卷中。当您重启 Experiment 时,Suggestion 的 Deployment 和 Service 会被创建,并且可以从卷中恢复 Suggestion 的统计数据。
当您删除 Experiment 时,Suggestion 的 Deployment、Service、PVC 和 PV 会自动删除。
查看 from-volume-resume.yaml
示例了解更多详细信息。