目录

torchx.tracker

概述与用法

注意

原型版本,风险自担,API 可能会更改。

从业者运行机器学习任务时常常需要跟踪诸如以下信息:

  • Job inputs:
    • configuration
      • 模型配置

      • 超参数优化参数

    • data
      • 版本

      • 来源

  • Job results:
    • 指标

    • 模型位置

  • 概念性工作分组

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

示例用法

示例 代码 使用追踪器 API。

跟踪器设置

要启用跟踪,需要:

  1. 定义追踪后端(入口点和配置)在启动器侧使用 .torchxconfig

  2. 在用户作业中使用 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 示例 目录 提供了如何在用户应用程序中配置和使用它的示例。

查询数据

  • CmdTracker exposes operations available to users at the CLI level:
    • torchx tracker list jobs [–parent-run-id RUN_ID]

    • torchx tracker list metadata RUN_ID

    • torchx 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 实现列表,用于持久化数据。

class torchx.tracker.api.TrackerBase[source]

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

此 API 仍处于试验阶段,未来可能会有较大改动。

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

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

重要:torchx.tracker.api API 仍处于实验阶段,因此尚未对未来的版本提供向后兼容保证。

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

class torchx.cli.cmd_tracker.CmdTracker[source]

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

注意:命令及其参数将来可能会被修改。

Supported commands:
  • 跟踪器列表工作 [–parent-run-id 运行ID]

  • 跟踪器列表元数据 RUN_ID

  • 跟踪器列表工件 [–工件 工件名称] 运行 ID

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

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

查看教程

资源

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

查看资源