torchx.tracker 的¶
概述和用法¶
注意
原型,使用风险自负,API 可能会发生变化
运行 ML 作业的从业者通常需要跟踪以下信息:
- Job inputs:
- 配置
模型配置
HPO 参数
- 数据
版本
来源
- 工作成果:
指标
模型位置
概念性作业分组
AppRun
提供统一的接口作为实验和工件跟踪解决方案,该解决方案
支持封装可插拔跟踪实现,方法是提供TrackerBase
适配器
实现。
用法示例¶
使用跟踪器 API 的示例代码。
跟踪链接设置¶
要启用跟踪,需要:
使用 .torchxconfig 在启动器端定义跟踪器后端(入口点/模块和配置)
使用 entry_points 在用户作业中添加入口点(规范)
1. 启动端配置¶
- 用户可以在 .torchxconfig 的 torchx:tracker 部分下定义任意数量的跟踪器后端,其中:
- Key:是跟踪链接的任意名称,其中该名称将用于配置其属性
在 [tracker:<TRACKER_NAME>] 下
- 值:是入口点或模块工厂方法,必须在用户作业中可用。该值将被注入到
user job 的 intent 中,用于构建跟踪器实现。
[torchx:tracker]
tracker_name=<entry_point_or_module_factory_method>
每个跟踪链接都可以在 [tracker:<TRACKER NAME>] 部分下额外配置 (目前仅限于 config 参数):
[tracker:<TRACKER NAME>]
config=configvalue
例如,~/.torchxconfig 可以设置为:
[torchx:tracker]
tracker1=tracker1
tracker2=backend_2_entry_point
tracker3=torchx.tracker.mlflow:create_tracker
[tracker:tracker1]
config=s3://my_bucket/config.json
[tracker:tracker3]
config=my_config.json
2. 用户作业配置 (Advanced)¶
上一步中定义的 entrypoint 值必须在 [torchx.tracker] 组下可被发现,并且可以在用户作业中调用
(取决于打包/分发机制)来创建TrackerBase
.
要实现该目标,请在 entry_points.txt 中定义分发中的入口点,如下所示:
[torchx.tracker]
entry_point_name=my_module:create_tracker_fn
获取AppRun
实例¶
用:app_run_from_env()
>>> import os; os.environ["TORCHX_JOB_ID"] = "scheduler://session/job_id" # Simulate running job first
>>> from torchx.tracker import app_run_from_env
>>> app_run = app_run_from_env()
参考TrackerBase
实现¶
FsspecTracker
提供跟踪器后端的参考实现。
GitHub 示例目录提供了有关如何
在 User Application 中配置并使用它。
查询数据¶
CmdTracker
在 CLI 级别公开用户可用的作:torchx tracker list jobs [–parent-run-id RUN_ID]
torchx tracker list metadata RUN_ID
torchx tracker list artifacts [–artifact ARTIFACT_NAME] RUN_ID
或者,后端实现可能会公开 UI 供用户使用。
- 类 torchx.tracker 中。AppRun(id: str, backends: Iterable[TrackerBase])[来源]¶
在作业级别公开跟踪器 API,并且应该是唯一封装该模块实现的 API。
此 API 目前仍处于试验阶段,将来可能会更改。
- 参数
id (str) – 跟踪器 API 使用的任务身份
backends (Iterable[TrackerBase]) —— 将用于持久化数据的 TrackerBase 实现列表。