快捷方式

torchx.tracker

概述和用法

注意

原型,请自行承担风险,API 可能会更改

执行 ML 作业的从业人员通常需要跟踪以下信息:

  • 作业输入
    • 配置
      • 模型配置

      • HPO 参数

    • 数据
      • 版本

      • 来源

  • 作业结果
    • 指标

    • 模型位置

  • 概念性作业分组

AppRun 提供了一个统一的 **接口**,作为一种实验和工件跟踪解决方案,通过提供 TrackerBase 适配器实现来支持包装可插拔的跟踪实现。

示例用法

使用 tracker API 的示例 代码

Tracker 设置

要启用跟踪,需要

  1. 使用 .torchxconfig 在启动器端定义跟踪后端(入口点/模块和配置)。

  2. 使用入口点在用户作业中添加入口点 (规范)

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 实现列表。

class torchx.tracker.api.TrackerBase[source]

跟踪解决方案实现/服务的抽象。

此 API 仍处于实验阶段,将来可能会发生很大程度的更改。

class torchx.tracker.backend.fsspec.FsspecTracker(fs: AbstractFileSystem, root_dir: str)[source]

使用 Fsspec 抽象实现 *TrackerBase*,并且具有使用各种存储选项来持久化数据的优势。

重要提示:*torchx.tracker.api* API 仍处于实验阶段,因此将来版本中没有向后兼容性保证。

每次运行都会有一个目录,其中包含用于元数据、工件、源代码和后代数据的子目录。

class torchx.cli.cmd_tracker.CmdTracker[source]

原型 TorchX 跟踪器子命令,允许通过与跟踪器实现交互来查询数据。

重要提示:将来可能会修改命令和参数。

支持的命令
  • tracker list jobs [–parent-run-id RUN_ID]

  • tracker list metadata RUN_ID

  • tracker list artifacts [–artifact ARTIFACT_NAME] RUN_ID

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获取您的问题的解答

查看资源