如何配置早停
本指南介绍了如何在 Katib 实验中使用早停来优化成本。早停可以帮助您在 Katib 实验中训练模型时避免过拟合。它还可以通过在训练过程完成前,当目标指标不再改善时停止实验的 Trial,从而节省计算资源并缩短实验执行时间。
在 Katib 中使用早停的主要优势在于,您无需修改您的训练容器包。您只需对实验的 YAML 文件进行必要的更改即可。
早停的工作方式与 Katib 的指标收集器类似。它分析 StdOut
或任意输出文件中的所需指标,然后早停算法决定是否需要停止 Trial。目前,早停仅适用于 StdOut
或 File
指标收集器。
注意:您的训练容器必须打印带有时间戳的训练日志,因为早停算法需要知道报告指标的顺序。查看PyTorch
示例,了解如何在日志中添加日期格式。
配置带有早停的实验
作为参考,您可以使用早停示例的 YAML 文件。
按照指南配置您的 Katib 实验。
接下来,要为您的实验应用早停,请指定
.spec.earlyStopping
参数,类似于.spec.algorithm
。.earlyStopping.algorithmName
- 早停算法的名称。.earlyStopping.algorithmSettings
- 早停算法的设置。
过程如下:您的实验的 Suggestion 会生成新的 Trial。之后,早停算法会为创建的 Trial 生成早停规则。一旦 Trial 达到所有规则,它就会停止,并且 Trial 状态会更改为 EarlyStopped
。然后,Katib 会再次调用 Suggestion 请求新的 Trial。
早停算法
Katib 目前支持多种早停算法
更多算法正在开发中。
中位数停止规则
Katib 中的早停算法名称是 medianstop
。
中位数停止规则在步骤 S
停止待处理的 Trial X
,如果 Trial 在步骤 S
之前的最佳目标值差于所有已完成 Trial 在步骤 S
之前报告的运行平均值的中位数。
要了解更多信息,请查看Google Vizier:黑盒优化服务。
Katib 支持以下早停设置
设置名称 | 描述 | 默认值 |
---|---|---|
min_trials_required | 计算中位数所需的最少成功 Trial 数量 | 3 |
start_step | 停止 Trial 前报告的中间结果数量 | 4 |
下一步
如何使用 Katib 实验 Trial 模板(/docs/components/katib/user-guides/trial-template)。
如何重启实验并使用恢复策略。