torchx.tracker¶
概述和用法¶
注意
原型,请自行承担风险,API 可能会更改
执行 ML 作业的从业人员通常需要跟踪以下信息:
- 作业输入
- 配置
模型配置
HPO 参数
- 数据
版本
来源
- 作业结果
指标
模型位置
概念性作业分组
AppRun
提供了一个统一的 **接口**,作为一种实验和工件跟踪解决方案,通过提供 TrackerBase
适配器实现来支持包装可插拔的跟踪实现。
示例用法¶
使用 tracker API 的示例 代码。
Tracker 设置¶
要启用跟踪,需要
使用 .torchxconfig 在启动器端定义跟踪后端(入口点/模块和配置)。
使用入口点在用户作业中添加入口点 (规范)
1. 启动器端配置¶
- 用户可以在 .torchxconfig 的 **torchx:tracker** 部分下定义任意数量的跟踪后端,其中
- 键:是跟踪器的任意名称,该名称将用于配置其属性
在 [tracker:<TRACKER_NAME>] 下
- 值:是 *入口点* 或 *模块* 工厂方法,该方法必须在用户作业中可用。该值将被注入到
用户作业中,并用于构建跟踪器实现。
[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. 用户作业配置(高级)¶
在上一步中定义的入口点值必须在 [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 示例 目录 提供了有关如何在用户应用程序中配置和使用它的示例。
查询数据¶
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。
- class torchx.tracker.AppRun(id: str, backends: Iterable[TrackerBase])[source]¶
在作业级别公开跟踪器 API,应该是封装该模块实现的唯一 API。
此 API 仍处于实验阶段,将来可能会更改。
- 参数:
id (str) – 跟踪器 API 使用的作业标识
backends (Iterable[TrackerBase]) – 将用于持久化数据的 TrackerBase 实现列表。