torchx.tracker¶
概述与用法¶
注意
原型版本,风险自担,API 可能会更改。
从业者运行机器学习任务时常常需要跟踪诸如以下信息:
- Job inputs:
- configuration
模型配置
超参数优化参数
- data
版本
来源
- Job results:
指标
模型位置
概念性工作分组
AppRun 提供了一个统一的接口,作为实验和工件跟踪解决方案,通过提供TrackerBase适配器实现来支持可插拔跟踪实现。
示例用法¶
示例 代码 使用追踪器 API。
跟踪器设置¶
要启用跟踪,需要:
定义追踪后端(入口点和配置)在启动器侧使用 .torchxconfig
在用户作业中使用 entry_points 添加入口点 (规范)
1. 启动器侧配置¶
- User can define any number of tracker backends under torchx:tracker section in .torchxconfig, where:
- Key: is an arbitrary name for the tracker, where the name will be used to configure its properties
在 [{name}] 跟踪器下
- Value: is entrypoint/factory method that must be available within user job. The value will be injected into a
用户任务,用于构建跟踪器实现。
[torchx:tracker]
tracker_name=<entry_point>
每个跟踪器可以在[tracker:<TRACKER NAME>]部分中进行额外配置(目前限于config个参数):
[tracker:<TRACKER NAME>]
config=configvalue
例如,~/.torchxconfig 可能设置为:
[torchx:tracker]
tracker1=tracker1
tracker12=backend_2_entry_point
[tracker:tracker1]
config=s3://my_bucket/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 示例 目录 提供了如何在用户应用程序中配置和使用它的示例。
查询数据¶
CmdTrackerexposes operations available to users at the CLI level:torchx tracker list jobs [–parent-run-id RUN_ID]torchx tracker list metadata RUN_IDtorchx tracker list artifacts [–artifact ARTIFACT_NAME] RUN_ID
或者,后端实现可能会提供用户使用的界面。
- class torchx.tracker.AppRun(id: str, backends: Iterable[TrackerBase])[source]¶
在作业级别公开跟踪器 API,并且应该是唯一封装该模块实现的 API。
此 API 仍处于试验阶段,未来可能会发生变化。
- Parameters:
id (str) – 跟踪器API使用的作业标识
后端 (可迭代[TrackerBase]) – TrackerBase 实现列表,用于持久化数据。