清理服务
清理服务
展示了如何使用clearml.backend_api.session.client.APIClient
类来实现一个服务,该服务删除旧的
归档任务及其相关文件:模型检查点、其他工件和调试样本。
修改清理服务的参数,以指定要删除哪些归档实验以及何时删除它们。
运行清理服务
Self deployed ClearML server
在DevOps Services
项目中提供了一个模板Cleanup Service
任务。您可以克隆它,根据您的需求调整其配置,并直接从ClearML UI中将其加入队列执行。
通过修改args
字典来配置任务执行:
delete_threshold_days
- 超过此天数的任务将被删除。默认值为30天。cleanup_period_in_days
- 以天为单位重复清理服务的间隔。默认值为1.0(每天运行一次)。force_delete
- 如果为False
(默认),仅删除草稿任务。如果为True
,允许删除任何状态的任务。run_as_service
- 如果为True
(默认值),任务将被排队以进行远程执行(默认队列:"services")。否则,脚本将在本地执行。
Remote Execution
如果run_as_service
设置为True
,请确保将clearml-agent
分配给services
队列。
现在脚本已配置,执行它:
python cleanup_service.py
在您的ClearML服务器上的DevOps
项目中创建了一个名为Cleanup Service
的新任务。脚本输出应该类似于:
ClearML Task: created new task id=8126c0af800f4903be07421aa344d7b3
ClearML results page: https://app.clear.ml/projects/608e9039/experiments/81261aa34d7b3/output/log
Cleanup service started
Starting cleanup
Deleting 100 tasks
接下来是清理的详细信息。
清理服务代码
cleanup_service.py 创建了一个 APIClient
对象,该对象与 ClearML 服务器建立会话,并通过调用以下内容完成清理:
Tasks.get_all
获取要删除的任务列表,提供以下参数:system_tags
- 仅获取标记为archived
的任务。status_changed
- 获取最后状态更改时间早于删除阈值(以秒为单位)的任务。
Task.delete
- 删除一个任务。
配置
实验的超参数通过Task.connect()
方法明确记录到ClearML中。在WebApp中,可以在实验的配置页面下的超参数 > 常规中查看它们。
任务可以重复使用。克隆任务,编辑其参数,并将任务加入队列以在ClearML Agent 服务模式中运行。
控制台
所有控制台输出都显示在实验的控制台中。