环境变量
Trackio 使用环境变量来配置其行为的各个方面,尤其是针对部署到 Hugging Face Spaces 和数据持久化的场景。本指南涵盖了主要的环境变量及其用法。
核心环境变量
TRACKIO_DIR
指定用于存储 Trackio 数据的自定义目录。默认情况下,Trackio 会将数据存储在 ~/.cache/huggingface/trackio/ 中。
export TRACKIO_DIR="/path/to/trackio/data"注意:只要 Trackio 未在启用持久化存储的 Space 中运行,此环境变量即生效。如果 Trackio 正在启用持久化存储的 Space 中运行(通过 PERSISTANT_STORAGE_ENABLED 环境变量检测),则 Trackio 数据将存储在 /data/trackio 中。
TRACKIO_SERVER_URL
自托管 Trackio 服务器的基础 URL(http:// 或 https://)。您可以在查询字符串中包含 write_token(如 trackio.show() 中的 full_url),或者保持 URL 不变,改为设置 TRACKIO_WRITE_TOKEN。设置后,trackio.init() 会将指标发送到该服务器。等效于向 trackio.init() 传递 server_url=。
优先级:如果同时设置了 TRACKIO_SPACE_ID(或在代码中传入了 space_id),则会使用 Hugging Face Space,并忽略 TRACKIO_SERVER_URL。当同时传入 space_id 和 server_url 时,规则相同:space_id 优先。
请参阅 自托管服务器。
export TRACKIO_SERVER_URL="http://127.0.0.1:7860"
export TRACKIO_WRITE_TOKEN="YOUR_TOKEN"TRACKIO_WRITE_TOKEN
自托管 Trackio 服务器的仪表盘 write token(与写入访问 URL 中的 write_token 查询参数值相同)。在 Trackio 服务器上设置此值时,将使用该值作为服务器的写入令牌,而不是在启动时生成随机令牌。在 Trackio 客户端上设置此值时,当 TRACKIO_SERVER_URL 或 server_url 为不带查询参数的基础 URL 时,请使用此值。客户端会在每个请求中发送此令牌(例如作为 X-Trackio-Write-Token 请求头),以便在未运行于 Hugging Face Spaces 上时,对指标摄取和上传进行身份验证。
TRACKIO_FRONTEND_DIR
Trackio 自定义静态前端目录的路径。该目录必须包含 index.html。
设置后,Trackio 将使用该前端来运行 trackio.show() 以及 trackio.sync() 和 trackio.freeze() 等部署流程,除非显式传入了 frontend_dir / --frontend 参数。
export TRACKIO_FRONTEND_DIR="/path/to/my-trackio-frontend"如果配置的目录无效,Trackio 将忽略该目录并回退到内置的前端选择逻辑。自动复制起始模板的行为仅在显式的 frontend_dir / --frontend 参数指向缺失或空目录时才会生效。
TRACKIO_LOGO_LIGHT_URL 和 TRACKIO_LOGO_DARK_URL
自定义在 Trackio 仪表板中为浅色和深色主题显示的徽标。您可以提供自定义徽标的 URL。请注意,应同时提供这两个环境变量;否则,对于未提供的任何变量,将使用 Trackio 的默认值。
export TRACKIO_LOGO_LIGHT_URL="https://example.com/logo-light.png"
export TRACKIO_LOGO_DARK_URL="https://example.com/logo-dark.png"注意:对于远程 Trackio Spaces,这些环境变量仅在通过
trackio.init(space_id=...)首次创建 Space 时生效。若要更改现有 Space 的徽标,请直接在 Hugging Face Space 设置中更新 Space 变量。
TRACKIO_PLOT_ORDER
控制 Trackio 仪表板中图表和指标组的排序。该值应为逗号分隔的指标模式列表,用于指定期望的顺序。分组会被保留——如果首先指定了 train/loss,则所有其他 train/* 指标将一起显示在 train 组中,且 train/loss 在该组内排在首位。
如果某个模式未匹配到任何指标,它将被直接忽略,而不会引发错误。
export TRACKIO_PLOT_ORDER="train/loss,val/loss"
**Pattern Matching:**
- **Exact matches**: `train/loss` matches exactly `train/loss`
- **Group wildcards**: `train/*` matches all metrics starting with `train/`
- **Partial wildcards**: `*gpu*` matches any metric containing "gpu"
**Behavior:**
- Metrics are grouped first (e.g., all `train/*` metrics stay together)
- Within each group, metrics are ordered according to the specified patterns
- Groups appear in the order of their first matching pattern
- Unspecified metrics appear in alphabetical order after specified ones
> **Note:** For remote Trackio Spaces, this environment variable is only applied when the Space is first created via `trackio.init(space_id=...)`. To change the plot order on an existing Space, update the `TRACKIO_PLOT_ORDER` Space variable directly in the Hugging Face Space settings.
### `TRACKIO_THEME`
Sets the theme for the Trackio dashboard. Can be a built-in Gradio theme name or a theme from the Hugging Face Hub.
```bash
# Built-in themes
export TRACKIO_THEME="soft"
export TRACKIO_THEME="citrus"
export TRACKIO_THEME="monochrome"
# Themes from the Hub
export TRACKIO_THEME="gstaff/xkcd"
export TRACKIO_THEME="ParityError/Anime"注意:对于远程 Trackio Spaces,此环境变量仅在通过
trackio.init(space_id=...)首次创建 Space 时生效。若要更改现有 Space 的主题,请直接在 Hugging Face Space 设置中更新TRACKIO_THEMESpace 变量。
TRACKIO_COLOR_PALETTE
自定义 Trackio 仪表盘中用于绘制折线的调色板。该值应为以逗号分隔的十六进制颜色代码列表。在绘制多个运行结果时,这些颜色将按顺序循环使用。
export TRACKIO_COLOR_PALETTE="#FF0000,#00FF00,#0000FF,#FFFF00,#FF00FF,#00FFFF"默认调色板: #A8769B, #E89957, #3B82F6, #10B981, #EF4444, #8B5CF6, #14B8A6, #F59E0B, #EC4899, #06B6D4
TRACKIO_TABLE_TRUNCATE_LENGTH
控制表格单元格中字符串值在截断前显示的最大长度。当单元格值超过此长度时,将被截断并显示一个可展开的元素,以便查看完整文本。默认值为 250 个字符。
export TRACKIO_TABLE_TRUNCATE_LENGTH="500"TRACKIO_STORAGE_MODE
控制 Trackio 如何在本地持久化数据。允许的值:auto(默认值)、sqlite、jsonl。
sqlite:训练进程直接写入项目的 SQLite 数据库(历史行为)。jsonl:训练进程将仅追加的 JSONL 片段写入TRACKIO_DIR/inbox/,每个进程对应一个文件;仪表盘服务器(trackio show)会将它们导入 SQLite。这完全避免了 SQLite 的并发写入问题,从而确保 Trackio 在 SQLite 的锁机制和 mmap 语义不可靠的网络文件系统(NFS、Lustre、FSx、GPFS、WekaFS、CephFS 等)上是安全的。auto:当检测到TRACKIO_DIR位于网络文件系统上时(仅限 Linux),自动选择jsonl,否则选择sqlite。
export TRACKIO_STORAGE_MODE="jsonl"TRACKIO_INBOX_POLL_INTERVAL
仪表盘服务器和 Trackio Spaces 检查新 JSONL 片段以进行导入的频率(以秒为单位),包括来自本地收件箱目录和 Hugging Face Bucket 收件箱的片段。默认值为 15;低于 5 的值将被限制为 5。
export TRACKIO_INBOX_POLL_INTERVAL="30"TRACKIO_SQLITE_*(高级)
覆盖 Trackio 在其 SQLite 连接上设置的 PRAGMAs。这些设置主要在不寻常的文件系统上有用;无效的值将被忽略。
TRACKIO_SQLITE_JOURNAL_MODE:取值为wal、delete、truncate、persist、memory或off之一。本地默认值为wal,在 Spaces 上默认值为delete。TRACKIO_SQLITE_MMAP_SIZE:内存映射 I/O 的大小(以字节为单位)。默认值为0(禁用),因为在网络文件系统上,内存映射读取是触发 SIGBUS 崩溃的直接原因,且对 Trackio 的工作负载几乎没有收益。TRACKIO_SQLITE_SYNCHRONOUS:取值为off、normal、full或extra之一。默认值为normal。TRACKIO_SQLITE_LOCKING_MODE:取值为normal或exclusive。在 Spaces 上默认为exclusive,在其他环境中默认为normal。TRACKIO_SQLITE_TEMP_STORE:取值为default、file或memory之一。默认值为memory。
推荐的集群配置:如果您的主目录或缓存目录位于共享文件系统(/fsx、Lustre、NFS、GPFS、WekaFS 等)上,请将 TRACKIO_DIR 指向节点本地磁盘(例如 /tmp 或 $SLURM_TMPDIR),或者依赖 TRACKIO_STORAGE_MODE=auto,它会自动检测网络文件系统并切换到 JSONL 片段日志记录。如果必须在共享文件系统上直接写入 SQLite,请设置:
export TRACKIO_SQLITE_JOURNAL_MODE="delete"
export TRACKIO_SQLITE_MMAP_SIZE="0"TRACKIO_WEBHOOK_URL
设置用于警报的全局 webhook URL。设置后,每次调用 trackio.alert() 都会将警报负载 POST 到该 URL。原生支持 Slack 和 Discord 的 webhook URL(负载会自动格式化)。可以通过 webhook_url 参数按警报或按运行进行覆盖。
export TRACKIO_WEBHOOK_URL="https://hooks.slack.com/services/T.../B.../xxx"有关更多详细信息,请参阅警报指南。
TRACKIO_WEBHOOK_MIN_LEVEL
设置应发送到 Webhook 的最低告警级别。低于此级别的告警仍会打印到终端、存储在数据库中并显示在仪表板上,但不会发送到 Webhook 目标。
允许的值:info、warn、error。
export TRACKIO_WEBHOOK_MIN_LEVEL="warn"使用 warn 时,仅 WARN 和 ERROR 级别的警报会发送到 webhook URL。
TRACKIO_CAPTURE_CONSOLE
当设置为 1 或 true 时,Trackio 会捕获运行期间写入 stdout 和 stderr 的所有内容,并在仪表板的运行页面上显示。这相当于向 trackio.init() 传递 capture_console=True;显式指定的 capture_console 参数具有更高优先级。
export TRACKIO_CAPTURE_CONSOLE=1有关更多详细信息,请参阅 捕获控制台输出和启动命令。
TRACKIO_HANDLE_SIGTERM
当设置为 1 或 true 时,trackio.init() 会安装一个 SIGTERM 处理程序,将该信号转换为正常退出,从而在进程因 Slurm 时间限制、docker stop 或 Kubernetes 驱逐而停止时,完成运行并保存其最后的指标和控制台输出。退出代码保持为 143。该处理程序仅从主线程安装,且仅在未设置其他 SIGTERM 处理程序时生效。默认情况下此功能处于关闭状态,因为它会改变整个进程对 SIGTERM 的响应方式:例如,进程在退出前会等待非守护线程,并且那些链式调用现有处理程序的框架(例如 PyTorch Lightning 的 Slurm 自动重新排队)将选择退出,而不是忽略该信号。
export TRACKIO_HANDLE_SIGTERM=1TRACKIO_BUCKET_ID
用于在 Hugging Face Space 上运行时持久化 Trackio 数据的 Hugging Face Bucket ID(例如 username/bucketname)。通常,在通过 trackio.init(space_id=...) 或 trackio.sync(...) 创建 Space 时,会自动在 Space 上设置此值;除非显式提供 bucket_id,否则会根据 Space ID 自动生成一个 bucket。
export TRACKIO_BUCKET_ID="username/my-trackio-bucket"TRACKIO_DATASET_ID(已弃用)
已弃用:将 Trackio 数据持久化到 Hugging Face Dataset(
dataset_id/TRACKIO_DATASET_ID)的功能已弃用,并将在 Trackio 的未来版本中移除。请改用 Hugging Face Bucket(bucket_id/TRACKIO_BUCKET_ID)。
Hugging Face 数据集的 ID(例如 username/datasetname),Trackio Space 会通过后台提交调度器将数据同步到该数据集。当在 Space 上设置此参数时,Trackio 会发出弃用警告,但目前仍会继续同步到该数据集。
export TRACKIO_DATASET_ID="username/my-trackio-dataset"HF_TOKEN
您的 Hugging Face 身份验证令牌。在 Hugging Face 上创建 Spaces 和 Buckets 时必需。从本地机器部署到 Spaces 时,请在本地设置此项。必须对您部署 Trackio 仪表板的命名空间具有 write 权限。
export HF_TOKEN="hf_xxxxxxxxxxxxx"Gradio 环境变量
由于 Trackio 基于 Gradio 构建,您可以使用 Gradio 的环境变量来控制 Trackio 的行为。以下是一些示例:
GRADIO_SERVER_PORT
指定 Tradio 仪表板启动时使用的端口。默认值为 7860
export GRADIO_SERVER_PORT=8000GRADIO_SERVER_NAME
定义 Trackio 仪表板服务器的主机名。若要使仪表板可从任意 IP 地址访问,请将其设置为 "0.0.0.0"
export GRADIO_SERVER_NAME="0.0.0.0"GRADIO_MCP_SERVER
在 Trackio 中启用 MCP(Model Context Protocol)服务器功能。启用后,Trackio 仪表盘将被配置为 MCP 服务器,并且某些功能将作为 MCP 工具暴露出来,供 LLM 使用(例如读取已记录的指标)。
export GRADIO_MCP_SERVER="True"请参阅 Gradio 使用的更完整的环境变量列表。
Update on GitHub