本参考页面提供了关于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仓库中的示例配置文件。
Clearml配置文件中的值可以通过环境变量、配置库和命令行参数进行覆盖。
编辑您的配置文件
要添加、更改或删除选项,请编辑您的配置文件。
编辑您的ClearML配置文件:
-
打开配置文件进行编辑,根据您的操作系统:
- Linux -
~/clearml.conf
- Mac -
$HOME/clearml.conf
- Windows -
\User\<username>\clearml.conf
- Linux -
-
在必填部分(本页列出的部分),添加、修改或删除必填选项。
-
保存配置文件。
环境变量
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"
。
请谨慎使用!这可能会通过允许访问主机上的密钥/秘密而引入安全风险。
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
(字符串)
兼容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
(布尔值)
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_name
是MyMachine
且process_id
是12345
,则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 argumentsdefault_docker.match_rules.arguments
应格式化为单个字符串(例如:"-e VALUE=1 --ipc=host"
), 与agent.default_docker.arguments
不同notematch_rules
如果在命令行中传递了--docker
,则会被忽略。- The rules can be:
script.requirements
- Match all script requirementsscript.repostiry
,script.branch
- Match based on Git repository or branch where the script is storedscript.binary
- Match binary executable used to launch the entry pointproject
- 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 withexamples
(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
- 不进行解析。像安装其他包一样安装PyTorchdirect
- 通过解析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
- 不安装。
Torch Nightly 构建是临时的,会不时被删除。
agent.package_manager.type
(字符串)
-
指示要使用的Python包管理器的类型。
值为:
pip
conda
poetry
-
如果使用
pip
或conda
,代理会根据任务的“已安装包”部分安装所需的包。如果“已安装包”为空,它将回退到使用存储库根目录中的requirements.txt
。如果选择了poetry
,并且根存储库包含poetry.lock
或pyproject.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.enabled
为true
,则此选项指定缓存文件夹。
代理.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
此选项已弃用。请使用 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
。
你必须使用安全协议与api.web_server
、api.files_server
和api.api_server
。使用https
,而不是http
。
api.http.default_method
(字符串)
- 设置所有API请求和认证登录的请求方法。当带有有效载荷的
GET
请求被服务器阻止时,可以使用POST
请求代替。请求选项有:"GET", "POST", "PUT"。
此配置选项是实验性的,尚未经过严格测试,因此可能会产生意想不到的后果。
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
- 不验证。
仅在需要时设置为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.secret
和sdk.aws.s3.key
)。Boto3在环境变量、凭证文件和配置了IAM角色的元数据服务中查找凭证。参见Boto3 文档。
sdk.aws.s3.credentials
sdk.aws.s3.credentials
([字典])
- 字典列表,用于AWS S3,每个字典可以包含单个S3存储桶或单个存储桶的主机的凭据。
sdk.aws.s3.credentials.bucket
(字符串)
- 对于AWS S3,如果为单个存储桶指定凭据,则这是单个存储桶的存储桶名称。
请参阅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
参数覆盖
- 设置pandas
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 diff
或hg 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
(布尔值)
此选项已弃用。此绘图行为现在通过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个文件)。
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_bytes
,size.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_prefix
。registered_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_environment
或sdk.apply_environment
设置为true
来启用。
示例:
environment {
key_a: value_a
key_b: value_b
}
文件部分
files
(字典)
files
部分允许定义文件,这些文件将在指定路径下自动生成,并具有预定义的内容和目标格式。
通过将agent.apply_files
或 sdk.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
}
配置保险库
此功能在ClearML企业版计划下可用。
ClearML企业服务器包括配置库。用户可以添加配置部分到库中,一旦库被启用,配置将在代码执行和/或代理启动时合并到ClearML和ClearML代理配置中。
这些配置会覆盖配置文件中写入的配置。