torchx.tracker¶
概述与用法¶
注意
原型,使用风险自负,API可能会更改
运行机器学习任务的从业者通常需要跟踪以下信息:
- Job inputs:
- configuration
模型配置
HPO参数
- data
版本
来源
- Job results:
指标
模型位置
概念性的工作分组
AppRun 提供了一个统一的接口作为实验和工件跟踪解决方案,通过提供TrackerBase适配器实现来支持包装可插拔的跟踪实现。
示例用法¶
使用tracker API的示例code。
追踪器设置¶
要启用跟踪,需要:
在启动器端定义跟踪器后端(入口点/模块和配置)使用 .torchxconfig
在用户作业中使用entry_points添加入口点(specification)
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
在 [tracker:
] 下
- Value: is entrypoint or module factory method that must be available within user job. The value will be injected into a
用户作业并用于构建跟踪器实现。
[torchx:tracker]
tracker_name=<entry_point_or_module_factory_method>
每个跟踪器可以在[tracker:
[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 示例 目录 提供了如何在用户应用程序中配置和使用它的示例。
查询数据¶
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使用的作业标识
backends (Iterable[TrackerBase]) – 用于持久化数据的TrackerBase实现列表。