Skip to main content

执行环境

ClearML 代理有两种主要的执行模式:虚拟环境模式Docker 模式

虚拟环境模式

在虚拟环境模式下,代理为实验创建一个虚拟环境,根据任务规范安装所需的Python包,克隆代码库,应用未提交的更改,最后在执行代码时进行监控。此模式使用智能缓存,因此包和环境可以在多个任务中重复使用(参见虚拟环境重用)。

ClearML 代理支持使用以下包管理器之一:

要更改代理使用的包管理器,请编辑clearml.conf中的package_manager.type字段。如果conda需要额外的渠道,请在clearml.conf中的package_manager.conda_channels字段中添加缺失的渠道。

Using Poetry with Pyenv

某些版本的poetry(使用install-poetry.py)不尊重pyenv global
如果您正在使用pyenv来控制使用ClearML Agent的环境,您可以:

  • 使用 poetry v1.2 及以上版本(修复了 这个问题
  • 使用已弃用的 get-poetry.py 安装程序安装 poetry

Docker 模式

notes
  • Docker 模式仅在 Linux 中受支持。
  • Docker 模式需要安装 docker 服务 v19.03 或更高版本。
  • 如果您的机器需要root权限来运行Docker,那么Docker模式下的ClearML Agent也必须以root权限运行。

当在Docker模式下执行ClearML代理时,它将:

  1. 运行提供的Docker容器
  2. 在容器中安装ClearML Agent
  3. 在容器中执行任务,并监控进程。

ClearML 代理使用提供的默认 Docker 容器,可以从 UI 中覆盖。

Setting Docker Container via UI

您可以通过用户界面设置docker容器:

  1. 克隆实验
  2. 在克隆任务的执行标签页的> 容器部分设置Docker Container section
  3. 将克隆的任务加入队列

任务将在用户界面中指定的容器中执行。

所有ClearML代理标志(如--gpus--foreground)也适用于Docker模式。

  • 要在Docker模式下执行ClearML Agent,请运行:

    clearml-agent daemon --queue  --docker [可选默认使用的docker镜像]
  • 要在Docker容器中使用当前的clearml-agent版本,而不是自动安装的最新clearml-agent版本,请传递--force-current-version标志:

    clearml-agent daemon --queue default --docker --force-current-version
  • 对于Kubernetes,在守护进程主机上指定一个主机挂载。不要在Docker容器内部使用主机挂载。 设置环境变量 CLEARML_AGENT_K8S_HOST_MOUNT。 例如:

    CLEARML_AGENT_K8S_HOST_MOUNT=/mnt/host/data:/root/.clearml