Skip to main content

本参考页面提供了关于ClearML和ClearML Agent可配置选项的详细信息。 ClearML和ClearML Agent使用相同的配置文件clearml.conf

本参考页面按配置文件部分组织:

  • agent - 包含ClearML Agent的配置选项。如果未安装ClearML Agent,配置文件将不会有agent部分。
  • api - 包含用于ClearML服务器的ClearML和ClearML代理配置选项。
  • sdk - 包含用于ClearML Python包和ClearML服务器的ClearML和ClearML代理配置选项。
  • 环境 - 定义应用于操作系统环境的环境变量
  • files - 定义自动生成的文件以应用到本地文件系统中

查看ClearML Agent GitHub仓库中的示例配置文件

info

Clearml配置文件中的值可以通过环境变量、配置库和命令行参数进行覆盖。

编辑您的配置文件

要添加、更改或删除选项,请编辑您的配置文件。

编辑您的ClearML配置文件:

  1. 打开配置文件进行编辑,根据您的操作系统:

    • Linux - ~/clearml.conf
    • Mac - $HOME/clearml.conf
    • Windows - \User\<username>\clearml.conf
  2. 在必填部分(本页列出的部分),添加、修改或删除必填选项。

  3. 保存配置文件。

环境变量

ClearML的配置文件使用HOCON配置格式,支持环境变量引用。

例如:

sdk {
google.storage {
# # Default project and credentials file
# # Will be used when no bucket configuration is found
project: "clearml"
credentials_json: ${GOOGLE_APPLICATION_CREDENTIALS}
}
}

${GOOGLE_APPLICATION_CREDENTIALS} 将自动被环境变量值替换。

请参阅关于Windows的说明 以获取在配置文件中使用Windows环境变量的信息。

配置文件部分

代理部分

agent (字典)

  • 用于配置ClearML Agent的顶级选项字典,包括Git凭证、包管理器、缓存管理、工作线程以及工作线程的Docker。

agent.crash_on_exception (布尔值)

  • 默认情况下,当任务运行过程中遇到异常时,代理会捕获异常,记录日志,并继续运行。当设置为true时,代理在遇到异常时会崩溃。

agent.cuda_version (浮点数)

  • 使用的CUDA版本。

    • 如果指定,则使用此CUDA版本。
    • 如果未指定,则自动检测CUDA版本。

    或者,使用环境变量 CUDA_VERSION 覆盖此选项。


agent.cudnn_version (浮点数)

  • 使用的cuDNN版本。

    • 如果指定,则使用此cuDNN版本。
    • 如果未指定,则自动检测cuDNN版本。

    或者,使用环境变量 CUDNN_VERSION 覆盖此选项。


agent.disable_ssh_mount (布尔值)

  • 设置为true以禁用自动挂载.ssh到docker中。环境变量CLEARML_AGENT_DISABLE_SSH_MOUNT会覆盖此配置选项。

agent.disable_task_docker_override (布尔值)

  • 如果设置为true,代理将使用默认的docker镜像,并忽略任务容器部分中指定的任何docker镜像和参数(如果任务容器部分中指定了设置shell脚本,则在任何情况下都会使用它)。

agent.docker_allow_host_environ (布尔值)

  • 设置为true以允许将主机环境传递到带有任务docker容器参数的docker容器中。例如:"-e HOST_NAME=$HOST_NAME"
warning

请谨慎使用!这可能会通过允许访问主机上的密钥/秘密而引入安全风险。


agent.docker_apt_cache (字符串)

  • 用于将Ubuntu包缓存映射到Docker中的apt(Linux包工具)缓存文件夹。

agent.docker_args_extra_precedes_task (布尔值)

  • 允许在agent.extra_docker_arguments中指定的参数覆盖任务级别的docker参数,如果相同的参数在两者中都传递了。如果设置为False,任务的docker参数将覆盖extra_docker_arguments

agent.docker_container_name_format (字符串)

Compatibility Required

兼容Docker版本0.6.5及以上

  • 为在Docker模式下运行的代理创建的Docker容器设置名称格式

  • 以下变量可以使用:

    • task_id
    • worker_id
    • rand_string - 随机小写字母字符串(最多32个字符)
  • 生成的名称必须以字母数字字符开头,而名称的其余部分可以包含字母数字字符、下划线(_)、点(.)和/或破折号(-

  • 例如:clearml-id-{task_id}-{rand_string:.8}


agent.docker_force_pull (布尔值)

  • 在运行实验之前,始终通过强制Docker pull来更新Docker镜像

    值为:

    • true - 始终更新Docker镜像。
    • false - 不总是更新。

agent.docker_install_opencv_libs (布尔值)

  • 安装opencv库所需的包(libsm6 libxext6 libxrender-dev libglib2.0-0),以确保向后兼容性。更改为false以跳过安装并减少docker启动时间。

agent.docker_internal_mounts (字典)

  • 在Docker内部设置内部挂载点。这对于非root Docker容器镜像特别有用。

例如:

docker_internal_mounts {
sdk_cache: "/clearml_agent_cache"
apt_cache: "/var/cache/apt/archives"
ssh_folder: "/root/.ssh"
pip_cache: "/root/.cache/pip"
poetry_cache: "/root/.cache/pypoetry"
vcs_cache: "/root/.clearml/vcs-cache"
venvs_cache: "/root/.clearml/venvs-cache"
venv_build: "/root/.clearml/venvs-builds"
pip_download: "/root/.clearml/pip-download-cache"
}

agent.docker_pip_cache (字符串)

  • 用于将Python包缓存映射到Docker的pip(Python包工具)缓存文件夹。

agent.docker_use_activated_venv (布尔值)

  • Docker模式中,如果容器的入口点自动激活虚拟环境,则使用激活的虚拟环境,并在其中安装所有内容。设置为false以禁用,并始终创建一个继承自system_site_packages的新venv。

agent.enable_git_ask_pass (布尔值)

note

enable_git_ask_pass 仅在 Linux 系统上受支持

  • 如果启用,使用 GIT_ASKPASS 在克隆/获取仓库时传递 Git 用户/密码
  • 它解决了将用户/令牌传递给git子模块的问题。
  • 这是一种更安全的方式,可以确保多个用户使用同一仓库时不会意外泄露凭据

agent.enable_task_env (布尔值)

  • 在启动任务进程之前,根据任务的环境部分设置操作系统环境。

agent.extra_docker_arguments ([字符串])

  • 当ClearML Agent在Docker模式下运行时,传递给Docker镜像的可选参数。这些参数是本地针对此代理的,不会在实验的docker_cmd部分更新。例如,["--ipc=host", ]

agent.extra_docker_shell_script ([字符串])

  • 当ClearML代理在Docker模式下运行时,这个可选的shell脚本会在实验开始之前在Docker内部执行。例如,["apt-get install -y bindfs", ]

agent.force_git_root_python_path (布尔值)

  • 强制将git仓库的根文件夹(而不是工作目录)添加到PYHTONPATH环境变量中。 默认情况下为false,因此只有工作目录会被添加到PYHTONPATH中。

agent.force_git_ssh_protocol (布尔值)

  • 强制Git协议使用SSH,无论Git URL是什么。这假设Git的用户名/密码为空。

    值为:

    • true - 强制
    • false - 不强制

agent.force_git_ssh_port (整数)

  • 在将HTTP链接转换为SSH链接时,强制使用特定的SSH端口。域名保持不变。

agent.force_git_ssh_user (字符串)

  • 在将HTTP链接转换为SSH链接时强制使用特定的SSH用户名(默认用户名为'git')

agent.git_host (字符串)

  • 将Git凭据的使用限制在此主机上。环境变量 CLEARML_AGENT_GIT_HOST 会覆盖此配置选项。

agent.git_pass (字符串)

  • Git 仓库密码。

    • 如果使用 Git SSH 凭据,请不要指定此选项。
    • 如果不使用 Git SSH 凭据,请使用此选项指定用于克隆仓库的 Git 密码。

agent.git_user (字符串)

  • Git 仓库用户名。

    • 如果使用 Git SSH 凭据,请不要指定此选项。
    • 如果不使用 Git SSH 凭据,请使用此选项指定用于克隆仓库的 Git 密码。

agent.hide_docker_command_env_vars (字典)

  • 在打印Docker命令时隐藏包含机密的Docker环境变量。打印时,变量值将被替换为********

  • 通过将enabled设置为true来启用此功能。这样做将隐藏以下环境变量值:

    • CLEARML_API_SECRET_KEY
    • CLEARML_AGENT_GIT_PASS
    • AWS_SECRET_ACCESS_KEY
    • AZURE_STORAGE_KEY
  • 要屏蔽额外的环境变量,请将其键添加到extra_keys列表中。 例如,要隐藏名为MY_SPECIAL_PASSWORD的自定义环境变量的值,请设置extra_keys: ["MY_SPECIAL_PASSWORD"]

  • 默认情况下,parse_embedded_urls设置为true,因此代理还将隐藏URL中的密码并处理包含docker命令的环境变量

hide_docker_command_env_vars {
enabled: true
extra_keys: ["MY_SPECIAL_PASSWORD"]
parse_embedded_urls: true
}

agent.ignore_requested_python_version (布尔值)

  • 指示是否忽略任何请求的python版本

  • 值为:

    • true - 忽略任何请求的python版本
    • false - 如果任务使用了特定的python版本,并且系统支持多个版本,代理将使用请求的python版本(默认)

agent.protected_docker_extra_args ([string])

  • 如果agent.extra_docker_arguments中已经指定了列出的任务docker参数,则防止使用这些参数。

agent.python_binary (字符串)

  • 设置创建虚拟环境和启动实验时要使用的Python版本。例如,/usr/bin/python3/usr/local/bin/python3.6

agent.reload_config (布尔值)

  • 指示每次执行工作守护进程时是否重新加载配置。

agent.translate_ssh (布尔值)

  • 将HTTPS通信转换为SSH

agent.venvs_dir (字符串)

  • 执行实验时创建的虚拟环境构建的目标文件夹。

agent.worker_id (字符串)

  • 创建工作者时,为工作者分配一个ID。

    • 如果指定,则为工作者的唯一名称。例如,clearml-agent-machine1:gpu0

    • 如果未指定,则使用以下内容::

      例如,MyHost:12345

      或者,指定环境变量 CLEARML_WORKER_ID 来覆盖此工作器名称。


agent.worker_name (字符串)

  • 如果未指定agent.worker_id,则在创建worker时用于替换主机名。例如,如果worker_nameMyMachineprocess_id12345,则worker的名称为MyMachine.12345

    或者,指定环境变量 CLEARML_WORKER_NAME 来覆盖此工作器名称。


agent.default_docker

agent.default_docker (字典)

  • Dictionary containing the default options for workers running in Docker模式. These settings define which Docker image and arguments should be used unless 通过用户界面或代理显式覆盖.
    • agent.default_docker.image (str) - 指定要使用的默认Docker镜像。

    • agent.default_docker.arguments ([str]) - 指定传递给Docker容器的选项列表。例如:arguments: ["--ipc=host", ]

    • agent.default_docker.match_rules ([字典])

      Enterprise Feature

      此功能在ClearML企业版计划下可用。

      • Lookup table of rules that determine the default container and arguments when running a worker in Docker mode. The first matched rule will be picked, according to rule order.
      • Each dictionary in the list lays out rules, and the container and container arguments to be used if the rules are matched.
      Match rule arguments

      default_docker.match_rules.arguments 应格式化为单个字符串(例如:"-e VALUE=1 --ipc=host"), 与 agent.default_docker.arguments 不同

      note

      match_rules 如果在命令行中传递了 --docker ,则会被忽略。

      • The rules can be:
        • script.requirements - Match all script requirements
        • script.repostiry, script.branch - Match based on Git repository or branch where the script is stored
        • script.binary - Match binary executable used to launch the entry point
        • project - Match the Task project's name
      • Matching is done via regular expression. For example "^searchme$" will match exactly the "searchme" string, and ^examples will match that starts with examples (e.g., examples, examples/sub_project).
      • Examples:
        • 在下面的示例配置中,规则匹配了Python二进制文件为python3.6、需要tensorflow~=2.6、脚本的Git仓库为/my_repository/、分支为main、任务的项目为project/sub_project的任务。如果所有条件都满足,则使用nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04镜像,并带有参数-e define=value

          agent {
          default_docker {
          match_rules [
          {
          image: "nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04"
          arguments: "-e define=value"
          match: {
          script {
          # Optional: must match all requirements (not partial)
          requirements: {
          # version selection matching PEP-440
          pip: {
          tensorflow: "~=2.6"
          },
          }
          # Optional: matching based on regular expression, example: "^exact_match$"
          repository: "/my_repository/"
          branch: "main"
          binary: "python3.6"
          }
          # Optional: matching based on regular expression, example: "^exact_match$"
          project: "project/sub_project"
          }
          }
          ]
          }
          }
        • 在下面的示例配置中,使用了两个match_rules来根据Python二进制版本指定不同的Docker镜像。当任务需要python3.6时,第一条规则应用带有--ipc=host参数的python:3.6-bullseye镜像。当脚本需要python3.7时,第二条规则应用带有相同参数的python:3.7-bullseye镜像。如果未找到匹配项,则使用默认的nvidia/cuda:11.0.3-cudnn8-runtime-ubuntu20.04镜像。

          agent {
          default_docker: {
          image: "nvidia/cuda:11.0.3-cudnn8-runtime-ubuntu20.04",
          match_rules: [
          {
          image: "python:3.6-bullseye"
          arguments": "--ipc=host"
          match: {
          script {
          binary: "python3.6$"
          },
          }
          },
          {
          image: "python:3.7-bullseye"
          arguments: "--ipc=host"
          match: {
          script {
          binary: "python3.7$"
          },
          }
          },
          ]
          }
          }

代理.包管理器

agent.package_manager (字典)

  • 包含Python包管理器选项的字典。当前支持的包管理器有pip、conda,以及如果仓库包含poetry.lock文件,则还支持poetry。

agent.package_manager.conda_channels ([string])

  • 如果使用conda,则这是安装Python包时使用的conda通道列表。

agent.package_manager.conda_full_env_update (布尔值)

  • 启用conda环境的更新(默认情况下,conda环境不会更新,因为这可能会破坏环境)

agent.package_manager.conda_env_as_base_docker (布尔值)

  • 使用conda环境进行执行(类似于docker)

agent.package_manager.use_conda_base_env (布尔值)

  • 当设置为True时,安装将执行到基础Conda环境中。在Docker模式中使用。

agent.package_manager.extra_index_url ([字符串])

  • 安装Python包时,用于额外工件仓库的URL列表。

agent.package_manager.extra_pip_install_flags ([字符串])

  • 代理安装包时使用的附加标志列表。例如:["--use-deprecated=legacy-resolver", ]

agent.package_manager.force_upgrade (布尔值)

  • 指示是否强制升级Python包。

    值为:

    • true - 强制
    • false - 不强制

agent.package_manager.pip_version (字符串)

  • 使用的pip版本。例如,"<20""==19.3.1"""(空字符串将安装最新版本)。

agent.package_manager.poetry_version (字符串)

  • 使用的 poetry 版本。例如,"<2""==1.1.1"""(空字符串将安装最新版本)。

agent.package_manager.poetry_install_extra_args (列表)

  • 列出在使用poetry时要传递的额外命令行参数

agent.package_manager.post_optional_packages (字符串)

  • 在安装必需包之后将安装的可选包列表。如果可选包的安装失败,该包将被忽略,虚拟环境进程将继续。

agent.package_manager.post_packages ([字符串])

  • 在安装所需包之后将安装的包列表。

agent.package_manager.priority_optional_packages ([string])

  • 在安装其余所需包之前要安装的可选优先级包列表,但如果包安装失败,该包将被忽略,虚拟环境进程将继续。

agent.package_manager.priority_packages ([字符串])

  • 在安装其余所需包之前,优先安装的包列表。例如:["cython", "numpy", "setuptools", ]

agent.package_manager.pytorch_resolve (str)

  • 设置PyTorch的解析模式。选项有:
    • pip(默认)- 根据cuda设置额外的索引,并让pip进行解析
    • none - 不进行解析。像安装其他包一样安装PyTorch
    • direct - 通过解析pytorch.org的pip仓库并匹配自动检测到的cuda版本与所需的PyTorch wheel来解析直接链接。如果找不到所需PyTorch wheel的确切cuda版本,它将尝试较低的cuda版本,直到找到匹配项

agent.package_manager.system_site_packages (布尔值)

  • 指示在为实验构建虚拟环境时,是否从系统继承虚拟环境的Python包。

    值为:

    • true - 继承
    • false - 不继承(加载Python包)

agent.package_manager.torch_nightly (布尔值)

  • 指示是否支持安装PyTorch Nightly版本。

    值为:

    • true - 如果找不到稳定的torch轮子,则安装夜间构建版本。
    • false - 不安装。
note

Torch Nightly 构建是临时的,会不时被删除。


agent.package_manager.type (字符串)

  • 指示要使用的Python包管理器的类型。

    值为:

    • pip
    • conda
    • poetry
  • 如果使用pipconda,代理会根据任务的“已安装包”部分安装所需的包。如果“已安装包”为空,它将回退到使用存储库根目录中的requirements.txt。如果选择了poetry,并且根存储库包含poetry.lockpyproject.toml,则忽略“已安装包”部分,并使用poetry。如果选择了poetry但未找到锁定文件,它将回退到pip包管理器的行为。


agent.pip_download_cache

agent.pip_download_cache (字典)

  • 包含 pip 下载缓存选项的字典。

agent.pip_download_cache.enabled (布尔值)

  • 指示是否为Python包下载使用特定的缓存文件夹。

    值为:

    • true - 使用在选项agent.pip_download_cache.path中指定的特定文件夹
    • false - 不使用特定文件夹。

agent.pip_download_cache.path (字符串)

  • 如果 agent.pip_download_cache.enabledtrue,则此选项指定缓存文件夹。

代理.vcs缓存

agent.vcs_cache (字典)

  • 包含版本控制系统克隆缓存文件夹的字典。

agent.vcs_cache.enabled (布尔值)

  • 指示是否使用了版本控制系统缓存。

    值为:

    • true - 使用缓存
    • false - 不使用缓存

agent.vcs_cache.path (字符串)

  • 执行实验时版本控制系统的缓存克隆文件夹。

agent.venvs_cache

agent.venvs_cache (字典)

  • 包含虚拟环境缓存选项的字典。

agent.venvs_cache.free_space_threshold_gb (整数)

  • 允许缓存条目所需的最小空闲空间。
  • 通过传递0或负值来禁用最小值。

agent.venvs_cache.max_entries (整数)

  • Maximum number of cached virtual environments.

agent.venvs_cache.path (字符串)

  • 虚拟环境缓存的文件夹。
  • 取消注释以启用虚拟环境缓存。

agent.venv_update

note

此选项已弃用。请使用 venvs_cache 并设置 venvs_cache.path 代替。

agent.venv_update (字典)

  • 包含虚拟环境更新选项的字典。

agent.venv_update.enabled (布尔值)

  • 指示是否使用加速的Python虚拟环境构建(这是一个测试功能)。

    值为:

    • true - 加速
    • false - 不加速(默认值)

API 部分

api (字典)

ClearML服务器API、网页和文件服务器以及凭证的配置选项字典。


api.api_server (字符串)

  • 您的ClearML API服务器的URL。例如,https://api.MyDomain.com

api.web_server (字符串)

  • 您的ClearML网络服务器的URL。例如,https://app.MyDomain.com

api.files_server (字符串)

  • 您的ClearML文件服务器的URL。例如,https://files.MyDomain.com
warning

你必须使用安全协议与api.web_serverapi.files_serverapi.api_server。使用https,而不是http


api.http.default_method (字符串)

  • 设置所有API请求和认证登录的请求方法。当带有有效载荷的GET请求被服务器阻止时,可以使用POST请求代替。请求选项有:"GET", "POST", "PUT"。
warning

此配置选项是实验性的,尚未经过严格测试,因此可能会产生意想不到的后果。


api.credentials

api.credentials (字典)

  • API凭证的字典。 或者,指定环境变量 CLEARML_API_ACCESS_KEY / CLEARML_API_SECRET_KEY 来覆盖这些密钥。


api.credentials.access_key (字符串)

  • Your ClearML access key.

api.credentials.secret_key (字符串)

  • 您的ClearML凭据。

api.verify_certificate (布尔值)

  • 指示是否验证主机SSL证书。

    值为:

    • true - 验证
    • false - 不验证。
warning

仅在需要时设置为False。


SDK 部分

sdk (字典)

  • 包含ClearML Python包及相关选项配置选项的字典,包括存储、指标、网络、AWS S3存储桶和凭证、Google云存储、Azure存储、日志和开发。

sdk.aws

sdk.aws (字典)

  • 包含AWS存储选项的字典。

sdk.aws.boto3

sdk.aws.boto3 (字典)

  • AWS存储的字典,Boto3选项。键包括:
    • max_multipart_concurrency (integer) - 用于传输请求的最大线程数。

    • multipart_threshold (integer) - 传输大小阈值。如果大小超过阈值,Boto3 将自动使用多部分上传、下载和复制(以字节为单位)

    • multipart_chunksize (整数) - 多部分传输中每个部分的大小(以字节为单位)。

    • pool_connections (整数) - Boto3 池连接的最大数量。


sdk.aws.s3

sdk.aws.s3 (字典)

  • AWS存储字典,AWS S3选项。

sdk.aws.s3.extra_args (字典)

  • 上传文件时传递给boto3的额外ExtraArgs。这可以在sdk.aws.s3.credentials下按存储桶设置。

sdk.aws.s3.key (字符串)

  • 对于AWS S3,任何未在sdk.aws.s3.credentials部分指定的存储桶的默认访问密钥。

sdk.aws.s3.profile (字符串)

  • 对于AWS S3,任何未在sdk.aws.s3.credentials部分指定的存储桶的默认配置文件名称。

sdk.aws.s3.region (字符串)

  • 对于AWS S3,任何未在sdk.aws.s3.credentials部分指定的存储桶的默认区域名称。

sdk.aws.s3.secret (字符串)

  • 对于AWS S3,任何未在sdk.aws.s3.credentials部分指定的存储桶的默认密钥。

sdk.aws.s3.use_credentials_chain (布尔值)

  • 设置为true以让Boto3查找并选择正确的凭证,而不是使用明确提供的默认凭证(sdk.aws.s3.secretsdk.aws.s3.key)。Boto3在环境变量、凭证文件和配置了IAM角色的元数据服务中查找凭证。参见Boto3 文档

sdk.aws.s3.credentials

sdk.aws.s3.credentials ([字典])

  • 字典列表,用于AWS S3,每个字典可以包含单个S3存储桶或单个存储桶的主机的凭据。

sdk.aws.s3.credentials.bucket (字符串)

  • 对于AWS S3,如果为单个存储桶指定凭据,则这是单个存储桶的存储桶名称。
note

请参阅AWS文档了解存储桶命名的限制和约束。


sdk.aws.s3.credentials.host (字符串)

  • 对于AWS S3,如果通过主机为单个存储桶指定凭据,则此选项为主机URL,并可选择端口号。

sdk.aws.s3.credentials.key (字符串)

  • 对于AWS S3:

    • 如果指定单个存储桶,则这是该存储桶的访问密钥。
    • 如果按主机指定单个存储桶,则这是该主机上所有存储桶的访问密钥。

sdk.aws.s3.credentials.multipart (布尔值)

  • 对于AWS S3,如果通过主机为单个存储桶指定凭据,则此选项指示是否允许单个对象的多部分上传(对象作为一组部分)。

    值为:

    • true - 启用
    • false - 禁用

sdk.aws.s3.credentials.secret (布尔值)

  • 对于AWS S3:

    • 如果为特定存储桶指定凭据,则这是该存储桶的密钥。
    • 如果通过主机为各个存储桶指定凭据,则这是该主机上所有存储桶的密钥。

sdk.aws.s3.credentials.secure (字符串)

  • 对于AWS S3,如果通过主机为各个存储桶指定凭据,则此选项指示主机是否安全。

    值为:

    • true - 安全
    • false - 不安全


sdk.aws.s3.credentials.verify (字符串/布尔值)

  • 指定是否验证SSL证书。默认情况下,验证是启用的(true)。您可以提供CA捆绑包的路径或URL,或者将此选项设置为false以跳过SSL证书验证。


sdk.azure.storage

sdk.azure.storage.containers ([字典])

  • 字典列表,每个字典包含一个Azure存储容器的凭据。

sdk.azure.storage.containers.account_key (字符串)

  • 对于 Azure 存储,这是凭据密钥。

sdk.azure.storage.containers.account_name (字符串)

  • 对于 Azure 存储,这是帐户名称。

sdk.azure.storage.containers.container_name (字符串)

  • 对于 Azure 存储,这是容器名称。

sdk.dataset

sdk.dataset.preview ([字典])

  • 设置记录为数据集预览的对象的限制:
    • sdk.dataset.preview.media (dict) - 设置记录为数据集预览的媒体文件的限制。可用选项:
      • sdk.dataset.preview.media.max_file_size (int) - 预览对象(如图像、视频、html等)的最大文件大小(以字节为单位)。超过此大小的文件将不会作为预览报告。
      • sdk.dataset.preview.media.image_count (int) - 作为预览报告的图像文件的最大数量
      • sdk.dataset.preview.media.video_count (int) - 作为预览报告的视频文件的最大数量
      • sdk.dataset.preview.media.audio_count (int) - 作为预览报告的图像文件的最大数量
      • sdk.dataset.preview.media.html_count (int) - 作为预览报告的html文件的最大数量
      • sdk.dataset.preview.media.json_count (int) - 作为预览报告的json文件的最大数量
    • sdk.dataset.preview.tabular (dict) - 设置记录为数据集预览的表格文件的限制。可用选项:
      • sdk.dataset.preview.tabular.row_count (int) - 每个作为预览报告的表格文件的最大行数。默认情况下,它只会报告文件中的前10行
      • sdk.dataset.preview.tabular.table_count (int) - 数据集中作为预览报告的表格的最大数量

SDK开发

sdk.development (字典)

  • 开发模式选项的字典。

sdk.development.artifacts (字典)

  • 控制日志任务工件时的默认行为:
    • sdk.development.artifacts.default_pandas_dataframe_extension_name (str)
      • 设置pandas DataFrame对象的默认extension_name
      • 有效值为:.csv.gz, .parquet, .feather, .pickle
      • 此值可以被提供给Task.upload_artifact()extension_name参数覆盖
    • sdk.development.artifacts.auto_pickle (bool)
      • 如果为true且工件不是特定类型(pathlib2.Path, dict, pandas.DataFrame, numpy.ndarray, PIL.Image, url字符串, local_file字符串),则工件将被 pickle并作为pickle文件工件上传(带有.pkl文件扩展名)。
      • 如果为false,则在工件上传中禁用自动pickle行为
      • 此值可以被提供给Task.upload_artifact()auto_pickle参数覆盖

sdk.development.default_output_uri (字符串)

  • 模型检查点(快照)和工件的默认输出目的地。如果在调用Task.init()时未提供output_uri参数,则使用default_output_uri中的目的地。

sdk.development.detailed_import_report (布尔值)

  • 如果为 true(默认为 false),则在“已安装的包”部分内提供所有 Python 包导入的详细报告作为注释。

sdk.development.detect_with_conda_freeze (布尔值)

  • 如果为true(默认为false),则使用conda freeze分析代码,而不是使用Pigar进行分析

sdk.development.detect_with_pip_freeze (布尔值)

  • 如果为true(默认为false),则使用pip freeze分析代码,而不是使用Pigar进行分析

sdk.development.force_analyze_entire_repo (布尔值)

  • 默认自动生成的需求优化为较小的需求。

值为:

  • true - 分析整个仓库,不考虑入口点。
  • false- 首先分析入口点脚本,如果它不包含其他本地文件,则不分析整个仓库。

sdk.development.log_os_environments ([string])

  • 记录特定的环境变量。操作系统环境变量在用户界面中列出,位于实验的
    配置 > 超参数 > 环境 部分。 支持选择多个变量,包括后缀 *。例如:"AWS_*" 将记录任何以 "AWS_" 开头的操作系统环境变量。示例:log_os_environments: ["AWS_*", "CUDA_VERSION"]

  • 此值可以通过操作系统环境变量 CLEARML_LOG_ENVIRONMENT=AWS_*,CUDA_VERSION 进行覆盖。


sdk.development.store_uncommitted_code_diff (布尔值)

  • 对于开发模式,指示是否在实验清单中存储未提交的 git diffhg diff

    值为:

    • true - 将 diff 存储在 script.requirements.diff 部分
    • false - 不存储 diff。

sdk.development.suppress_update_message (布尔值)

  • 如果 true(默认为 false),clearml 的更新消息将不会打印到控制台。

  • 此值可以通过操作系统环境变量 CLEARML_SUPPRESS_UPDATE_MESSAGE=1 进行覆盖


sdk.development.support_stopping (布尔值)

  • 对于开发模式,指示是否允许在实验被外部中止、状态更改或重置时停止实验。

    值为:

    • true - 允许
    • false - 不允许

sdk.development.task_reuse_time_window_in_hours (float)

  • 对于开发模式,具有相同项目名称和实验名称的实验在多少小时后被重用。

sdk.development.vcs_repo_detect_async (布尔值)

  • 对于开发模式,指示是否异步运行版本控制仓库检测。

    值为:

    • true - 异步运行
    • false - 不同步运行

sdk.development.worker

sdk.development.worker (字典)

  • 工作者的开发模式选项字典。

sdk.development.worker.log_stdout (布尔值)

  • 对于开发模式的工作者,指示是否记录所有的stdout和stderr消息。

    值为:

    • true - 记录所有
    • false - 不记录所有

sdk.development.worker.max_wait_for_first_iteration_to_start_sec (整数)

  • 允许资源监控在最初开始报告“从开始秒数”后切换回以迭代次数为x轴的最大时间(以秒为单位)。如果超过指定的时间限制,资源监控将继续使用“从开始秒数”作为x轴进行报告。

sdk.development.worker.ping_period_sec (整数)

  • For development mode workers, the interval time (in seconds) for workers to ping the server to test connectivity.

sdk.development.worker.report_event_flush_threshold (整数)

  • 触发报告的事件数量

sdk.development.worker.report_global_mem_used (布尔值)

  • 兼容性功能,用于报告整个机器的内存使用情况

    值为:

    • true - 报告整个机器的内存使用情况
    • false (默认) - 仅报告运行进程及其子进程的内存使用情况

sdk.development.worker.report_period_sec (整数)

  • For development mode workers, the interval time (in seconds) at which the development mode ClearML worker reports.

sdk.development.worker.report_start_sec (整数)

  • 开发模式工作线程开始资源报告后的秒数。

sdk.development.worker.wait_for_first_iteration_to_start_sec (整数)

  • 控制等待迭代报告用作资源监控的x轴的时间(以秒为单位)。如果超过时间后迭代报告不可用,将使用“从开始后的秒数”作为x轴。

sdk.google.storage

sdk.google.storage (字典)

  • Google Cloud Storage 凭证的字典。

sdk.google.storage.project (字符串)

  • 对于Google Cloud Storage,项目的名称。

sdk.google.storage.credentials_json (字符串)

  • 对于Google Cloud Storage,默认Google存储凭据JSON文件的文件路径。

sdk.google.storage.credentials

sdk.google.storage.credentials ([dict])

  • A list of dictionaries containing specific credentials for each bucket and subdirectory

sdk.google.storage.credentials.bucket (字符串)

  • 对于Google Cloud Storage,如果按单个存储桶指定凭据,则为存储桶的名称。

sdk.google.storage.credentials.credentials_json (字符串)

  • 对于Google Cloud Storage,如果按单个存储桶指定凭据,则为默认Google存储凭据JSON文件的文件路径。

sdk.google.storage.credentials.project (字符串)

  • 对于Google Cloud Storage,如果按单个存储桶指定凭据,则为项目名称。

sdk.google.storage.credentials.subdir (字符串)

  • 对于Google Cloud Storage,如果通过单个存储桶指定凭据,则为存储桶内的子目录。

sdk.log

sdk.log (字典)

  • 日志选项的字典。

sdk.log.disable_urllib3_info (布尔值)

  • 指示是否禁用urllib3信息消息。

    值为:

    • true - 禁用
    • false - 不禁用

sdk.log.null_log_propagate (布尔值)

  • 作为调试功能,指示是否允许空日志消息传播到根记录器(以便它们显示为标准输出)。

    值为:

    • true - 允许
    • false - 不允许

sdk.log.task_log_buffer_capacity (整数)

  • 日志缓冲区的最大容量。

sdk.metrics

sdk.metrics (字典)

  • 指标选项的字典。

sdk.metrics.file_history_size (字符串)

  • 每个指标/变体组合的调试文件历史大小
  • 每个指标/变体组合,file_history_size 表示存储在上传目的地中的文件数量
  • 文件被回收,以便file_history_size始终是文件的最大数量。

sdk.metrics.matplotlib_untitled_history_size (整数)

  • 每个绘图标题的matplotlib imshow文件的最大历史记录大小。
  • 上传的图像文件名会被回收,以确保每个matplotlib图表标题的上传目标中存储的图像数量不会超过matplotlib_untitled_history_size的值

sdk.metrics.plot_max_num_digits (整数)

  • 图表报告中小数点后的最大位数。这可以减少报告的大小。

sdk.metrics.tensorboard_single_series_per_graph (布尔值)

note

此选项已弃用。此绘图行为现在通过UI控制

  • 指示是否使用TensorBoard行为显示图表,其中每个系列都在其自己的图表中绘制(每个图表一个系列)。

    值为:

    • true - 支持TensorBoard行为
    • false - 不支持

sdk.metrics.images

sdk.metrics.images (字典)

  • 指标图像选项的字典。

sdk.metrics.images.format (字符串)

  • 生成的调试图像的图像文件格式(例如“JPEG”)。

sdk.metrics.images.quality (整数)

  • 生成的调试图像的质量。

sdk.metrics.images.subsampling (整数)

  • 生成的调试图像的图像子采样。

sdk.network

sdk.network.file_upload_retries (int)

  • 上传文件失败前的重试次数

sdk.network.iteration (字典)

  • 字典用于网络迭代选项。

sdk.network.iteration.max_retries_on_server_error` (整数)

  • 当从服务器获取帧时进行重试,如果服务器返回错误(HTTP代码500),则这是最大重试次数。

sdk.network.iteration.retry_backoff_factor_sec (整数)

  • 当从服务器获取帧时进行重试,这是连续重试尝试的回退因子。这用于确定重试之间的秒数。重试回退因子的计算公式为 {backoff factor} * (2 ^ ({number of total retries} - 1))

sdk.network.metrics

sdk.network.metrics (字典)

  • 网络指标选项的字典。

sdk.network.metrics.file_upload_starvation_warning_sec (整数)

  • 在发出警告之前,文件承载事件被发送上传但未发生上传的秒数。

sdk.network.metrics.file_upload_threads (整数)

  • 在传输特定迭代的指标时,分配给上传文件的线程数。

sdk.storage

sdk.storage (字典)

  • 存储选项的字典。

sdk.storage.cache

sdk.storage.cache (字典)

  • 存储缓存选项的字典。键包括:
    • default_base_dir (str) - 缓存的默认基础目录。默认为 /clearml_cache
    • default_cache_manager_size (int) - 缓存中的最大文件数(默认为100个文件)。
Enterprise features

ClearML 企业版计划还支持以下配置选项,位于 sdk.storage.cache 下:

  • size.max_used_bytes (str) - 本地缓存目录的最大大小。如果设置为 -1,目录可以使用可用的磁盘空间。以存储单位指定(例如:1GB, 2TB, 500MB)。
  • size.min_free_bytes (str) - 应保留的最小空闲磁盘空间量。如果 size.max_used_bytes 设置为 -1,此配置选项将限制缓存目录的最大大小为 空闲磁盘空间 - size.min_free_bytes。以存储单位指定(例如:1GB, 2TB, 500MB)。
  • zero_file_size_check (bool)- 如果设置为 True,每次缓存命中都会检查缓存文件的大小,确保它不是零(默认 False
  • secondary (dict) - 设置一个二级缓存(作为L2缓存)。当发出请求时,首先查询主缓存。如果数据不在主缓存中,则查询二级缓存。如果缓存未命中,数据将被拉取到主缓存,然后复制到二级缓存。sdk.storage.cache.secondary 字典支持与主缓存相同的选项:default_base_dir(必需),size.max_used_bytessize.min_free_bytes等。如果未指定某个选项,则默认为主缓存的值。

sdk.storage.direct_access

sdk.storage.direct_access (字典)

  • 存储直接访问选项的字典。

sdk.storage.direct_access.url (字符串)

  • 使用通配符匹配文件集的glob模式指定直接访问对象的列表。直接访问对象不会被下载或缓存,任何下载请求都将返回直接引用。
sdk.storage.log

sdk.storage.log.report_download_chunk_size_mb (int)

  • 指定StorageManager每隔多少MB向控制台报告其下载进度。默认情况下,它每5MB报告一次

sdk.storage.log.report_upload_chunk_size_mb (int)

  • 指定StorageManager每隔多少MB向控制台报告其上传进度。默认情况下,它每5MB报告一次。
sdk.storage.path_substitution

sdk.storage.path_substitution ([字典])

  • 字典列表,其中每个字典包含路径替换映射。这在数据最初记录在一个位置后来被移动,或者不同的工作负载通过不同的挂载访问数据的情况下非常有用。

  • 每个字典包含一个registered_prefix和一个local_prefixregistered_prefix是登录ClearML时记录的URL前缀。local_prefix是在运行时用于访问数据的URL前缀,而不是registered_prefix

    例如:

    sdk { 
    storage {
    path_substitution = [
    {
    registered_prefix = "s3://bucket/research"
    local_prefix = "file:///mnt/shared/bucket/research"
    },
    {
    registered_prefix = "file:///mnt/shared/folder/"
    local_prefix = "file:///home/user/shared/folder"
    }
    ]
    }
    }

环境部分

environment (字典)

环境变量和值的字典,这些变量和值作为key=value应用于操作系统环境中的每个键值对。

通过将agent.apply_environmentsdk.apply_environment设置为true来启用。

示例:

environment {
key_a: value_a
key_b: value_b
}

文件部分

files (字典)

files 部分允许定义文件,这些文件将在指定路径下自动生成,并具有预定义的内容和目标格式。

通过将agent.apply_filessdk.apply_files 设置为 true 来启用。

在字典中定义每个文件的内容。文件内容选项包括:

  • contents - 目标文件的内容,通常是一个字符串(或任何基本类型 int/float/list/dict 等)
  • format - 内容的自定义格式。目前支持 base64 以自动解码 base64 编码的内容字符串,否则忽略
  • path - 目标文件的路径,可能包含 ~ 和就地环境变量
  • target_format - 用于在写入目标文件之前对内容进行编码的格式。支持的值为 json, yaml, yml, 和 bytes(在这种情况下,文件将以二进制模式写入)。默认是文本模式。
  • mode - 文件创建后要应用的文件系统模式(权限)。模式字符串将被解析为整数(例如:"0o777" 对应 -rwxrwxrwx
  • overwrite - 如果目标文件存在,则覆盖它。默认值为 true

示例:

files {
myfile1 {
contents: "The quick brown fox jumped over the lazy dog"
path: "/tmp/fox.txt"
mode: "0o777"
}
myjsonfile {
contents: {
some {
nested {
value: [1, 2, 3, 4]
}
}
}
path: "/tmp/test.json"
target_format: json
}
}

# Apply top-level files section from configuration into local file system
sdk {

apply_files: true
}

配置保险库

Enterprise Feature

此功能在ClearML企业版计划下可用。

ClearML企业服务器包括配置库。用户可以添加配置部分到库中,一旦库被启用,配置将在代码执行和/或代理启动时合并到ClearML和ClearML代理配置中。

这些配置会覆盖配置文件中写入的配置。

参见 configuration vault