跳到主内容

ClearML Agent CLI

以下页面提供了 clearml-agent CLI 命令的参考

  • build - 创建一个 worker 环境,而不执行任务。
  • config - 列出您的 ClearML Agent 配置数据。
  • daemon - 运行一个 worker 守护进程,监听队列以执行任务。
  • execute - 执行一个任务,在本地执行,不使用队列。
  • list - 列出当前 worker。

build

使用 build 命令创建 worker 环境,而不执行任务。

您可以根据特定任务的执行环境构建 Docker 容器,Agent 随后可以使用这些容器执行其他任务。参见教程

您也可以创建一个在启动时执行特定任务的 Docker 容器。参见教程

clearml-agent build [-h] --id TASK_ID [--target TARGET]
[--install-globally]
[--docker [DOCKER [DOCKER ...]]] [--force-docker]
[--python-version PYTHON_VERSION]
[--entry-point {reuse_task,clone_task}] [-O]
[--git-user GIT_USER] [--git-pass GIT_PASS]
[--log-level {DEBUG,INFO,WARN,WARNING,ERROR,CRITICAL}]
[--gpus GPUS] [--cpu-only]

参数

名称描述必填
--id为此任务 ID 构建 worker 环境。Yes
--cpu-only禁用 Docker 容器的 GPU 访问。No
--docker在 Docker 模式下运行 Agent。指定 worker 启动时将执行的 Docker 容器。要指定镜像名称和可选参数,请使用以下任一方式
  • 在命令行上使用 --docker <image_name> <args>
  • 在命令行上使用 --docker,并在配置文件中指定默认镜像名称和参数。
Docker 容器的环境变量设置
  • CLEARML_DOCKER_SKIP_GPUS_FLAG - 忽略 Docker 容器内部的 --gpus 标志。这也允许您使用早于 19.03 的 Docker 版本执行 ClearML Agent。
  • NVIDIA_VISIBLE_DEVICES - 限制 Docker 容器的 GPU 可见性。
  • CLEARML_AGENT_GIT_USERCLEARML_AGENT_GIT_PASS - 在执行时将这些凭据传递给 Docker 容器。
要限制 Docker 的 GPU 可见性,请设置 NVIDIA_VISIBLE_DEVICES 环境变量。
No
--entry-point--docker 结合使用,指示在 Docker 启动时如何运行由 --task-id 指定的任务。--entry-point 选项有
  • reuse - 覆盖现有的任务数据。
  • clone_task - 克隆任务,并执行克隆的任务。
No
--force-docker强制使用 Agent 指定的 Docker 镜像(要么在 --docker 参数中显式指定,要么使用 Agent 的默认 Docker 镜像)。如果提供此参数,Agent 将不会使用任务本身中存储的任何 Docker 容器信息(默认 FalseNo
--git-pass用于访问仓库的 Git 密码。No
--git-user用于访问仓库的 Git 用户名。No
--gpus指定 Docker 容器要使用的活动 GPU。这些 GPU 与 NVIDIA_VISIBLE_DEVICES 环境变量中设置的 GPU 相同。例如
  • --gpus 0
  • --gpu 0,1,2
  • --gpus all
No
-h, --help获取此命令的帮助。No
--install-globally在创建虚拟环境之前安装所需的 Python 包。使用 agent.package_manager.system_site_packages 控制系统包的安装。当使用 --docker 时,--install-globally 始终为 true。No
--log-levelSDK 日志级别。取值为
  • DEBUG
  • INFO
  • WARN
  • WARNING
  • ERROR
  • CRITICAL
No
--python-version要使用的虚拟环境 Python 版本。No
-O编译优化过的 pyc 代码(参见Python 文档)。重复使用可获得更多优化。No
--target用于启动时使用的虚拟环境和源代码的目标文件夹。No

config

列出您的 ClearML Agent 配置。

clearml-agent config [-h]

daemon

使用 daemon 命令可以在任何机器上(本地和/或云实例)启动一个 Agent。启动 Agent 时,为其分配一个或多个服务队列,当任务被添加到其队列时,Agent 将拉取并执行它们。

通过 daemon 命令,您可以配置 Agent 的行为:分配资源、优先处理队列、将其设置为在 Docker 中运行等等。

clearml-agent daemon [-h] [--foreground] [--queue QUEUES [QUEUES ...]] [--order-fairness] 
[--standalone-mode] [--services-mode [SERVICES_MODE]]
[--child-report-tags CHILD_REPORT_TAGS [CHILD_REPORT_TAGS ...]]
[--create-queue] [--detached] [--stop] [--dynamic-gpus]
[--uptime [UPTIME [UPTIME ...]]] [--downtime [DOWNTIME [DOWNTIME ...]]]
[--status] [--use-owner-token] [-O]
[--git-user GIT_USER] [--git-pass GIT_PASS]
[--log-level {DEBUG,INFO,WARN,WARNING,ERROR,CRITICAL}]
[--gpus GPUS] [--cpu-only]
[--docker [DOCKER [DOCKER ...]]] [--force-current-version]

参数

名称描述必填
--child-report-tags与执行任务的 worker 的状态报告一起发送的标签列表。No
--cpu-only如果在 Docker 模式下运行(参见 --docker 选项),禁用 Docker 容器或虚拟环境的 GPU 访问。No
--create-queue如果通过 --queue 提供的队列名称在服务器中不存在,则即时创建并使用它。No
--detached在后台运行 Agent。clearml-agent 命令会立即返回。No
--docker在 Docker 模式下运行。在 Docker 容器内执行任务。要指定镜像名称和可选参数,可以
  • 在命令行上使用 --docker <image_name> <args>,或
  • 在命令行上使用 --docker,并在配置文件中指定默认镜像名称和参数。
Docker 容器的环境变量设置
  • CLEARML_DOCKER_SKIP_GPUS_FLAG - 忽略 Docker 容器内部的 --gpus 标志。这也允许您使用早于 19.03 的 Docker 版本执行 ClearML Agent。
  • NVIDIA_VISIBLE_DEVICES - 限制 Docker 容器的 GPU 可见性。
  • CLEARML_AGENT_GIT_USERCLEARML_AGENT_GIT_PASS - 在执行时将这些凭据传递给 Docker 容器。
No
--downtime<hours> <days> 格式指定 clearml-agent 的停机时间。例如,使用 09-13 TUE 将星期二的停机时间设置为 09:00 到 13:00。

注意
  • 此功能在 ClearML Enterprise 计划中可用
  • 确保只配置 --uptime--downtime,不要同时配置两者。
No
--dynamic-gpus允许根据队列属性动态分配 GPU,使用 --queue <queue_name>=<num_gpus> 进行配置。例如:--dynamic-gpus --queue dual_gpus=2 single_gpu=1

注意:此功能在 ClearML Enterprise 计划中可用
No
--force-current-version在 Docker 模式下运行(指定了 --docker 参数)时,使用您当前版本的 ClearML Agent,而不是自动安装的最新 ClearML Agent 版本,请指定 force-current-version

例如,如果您当前的 ClearML Agent 版本是 0.13.1,但最新版本的 ClearML Agent 是 0.13.3,使用 --force-current-version 将使您的任务在 ClearML Agent 版本 0.13.1 的 Docker 容器中执行。
No
--foreground将完整日志输出到 stdout/stderr。如果在后台运行,请勿使用此选项。No
--git-pass用于访问仓库的 Git 密码。No
--git-user用于访问仓库的 Git 用户名No
--gpus如果在 Docker 模式下运行(参见 --docker 选项),指定 Docker 容器要使用的活动 GPU。这些 GPU 与 NVIDIA_VISIBLE_DEVICES 环境变量中设置的 GPU 相同。例如
  • --gpus 0
  • --gpu 0,1,2
  • --gpus all
No
-h, --help获取此命令的帮助。No
--log-levelSDK 日志级别。取值为
  • DEBUG
  • INFO
  • WARN
  • WARNING
  • ERROR
  • CRITICAL
No
-O编译优化过的 pyc 代码(参见Python 文档)。重复使用可获得更多优化。No
--order-fairness以轮询顺序从每个队列拉取任务,而不是按优先级顺序。No
--queue指定 worker 监听的队列。取值可以是以下任意组合
  • 一个或多个队列 ID
  • 一个或多个队列名称
  • default 表示默认队列
No
--services-mode启动多个长期运行的 Docker 服务。在同一台机器上同时启动多个任务,每个任务都在自己的 Docker 容器中。每个任务都将在系统中注册为一个新节点,提供跟踪和透明性功能。会验证每个 Docker 的启动和关闭。仅在 CPU 模式下使用(--cpu-only)。
要限制在服务模式下同时运行的任务数量,请在 --services-mode 选项后紧跟最大数量(例如 --services-mode 5
No
--standalone-mode不使用任何网络连接。这假设所有要求都已预装。No
--status打印 worker 的调度(运行时间属性、服务器运行时属性和监听的队列)No
--stop如果其他参数相同,则终止正在运行的 ClearML Agent。如果没有提供其他参数,则按字典顺序终止 Agent。No
--uptime<hours> <days> 格式指定 clearml-agent 的运行时间。例如,使用 17-20 TUE 将星期二的运行时间设置为 17:00 到 20:00。

注意
  • 此功能在 ClearML Enterprise 计划中可用
  • 确保只配置 --uptime--downtime,不要同时配置两者。
No
--use-owner-token生成并使用任务所有者的 token 来执行任务。No

execute

使用 execute 命令设置 Agent 直接构建和执行特定任务,而不监听队列。

clearml-agent execute [-h] --id TASK_ID [--log-file LOG_FILE] [--disable-monitoring] 
[--full-monitoring] [--require-queue]
[--standalone-mode] [--docker [DOCKER [DOCKER ...]]] [--clone]
[-O] [--git-user GIT_USER] [--git-pass GIT_PASS]
[--log-level {DEBUG,INFO,WARN,WARNING,ERROR,CRITICAL}]
[--gpus GPUS] [--cpu-only]

参数

名称描述必填
--id要构建的任务 IDYes
--clone克隆由 --id 指定的任务,然后执行克隆的任务。No
--cpu-only禁用 daemon 的 GPU 访问,在 docker 或虚拟环境中只使用 CPU。No
--docker在 Docker 模式下运行。在 Docker 容器内执行任务。要指定镜像名称和可选参数,请使用以下任一方式
  • 在命令行上使用 --docker <image_name> <args>
  • 在命令行上使用 --docker,并在配置文件中指定默认镜像名称和参数。
Docker 容器的环境变量设置
  • CLEARML_DOCKER_SKIP_GPUS_FLAG - 忽略 Docker 容器内部的 --gpus 标志。这也允许您使用早于 19.03 的 Docker 版本执行 ClearML Agent。
  • NVIDIA_VISIBLE_DEVICES - 限制 Docker 容器的 GPU 可见性。
  • CLEARML_AGENT_GIT_USERCLEARML_AGENT_GIT_PASS - 在执行时将这些凭据传递给 Docker 容器。
No
--disable-monitoring禁用日志记录和监控,stdout 除外。No
--full-monitoring创建完整日志,包括环境设置日志、任务日志和监控,以及 stdout。No
--git-pass用于访问仓库的 Git 密码。No
--git-user用于访问仓库的 Git 用户名。No
--gpus指定 daemon 要使用的活动 GPU(docker / 虚拟环境)。相当于设置 NVIDIA_VISIBLE_DEVICES 环境变量。例如
  • --gpus 0
  • --gpu 0,1,2
  • --gpus all
No
-h, --help获取此命令的帮助。No
--log-file将任务执行输出(stdout / stderr)保存到文本文件的日志文件。No
--log-levelSDK 日志级别。取值为
  • DEBUG
  • INFO
  • WARN
  • WARNING
  • ERROR
  • CRITICAL
No
-O编译优化过的 pyc 代码(参见Python 文档)。重复使用可获得更多优化。No
--require-queue如果指定的任务未入队,执行将失败(用于第三方调度器集成,例如 K8s, SLURM 等)No
--standalone-mode不使用任何网络连接,假设所有要求都已预装No

list

列出所有活动 worker 的信息。

clearml-agent list [-h]