Accelerate documentation
实验跟踪器
实验跟踪器
GeneralTracker
用于所有日志集成实现的基础 Tracker 类。
每个函数都应接收 **kwargs,这些参数会自动从提供给 Accelerator 的基础字典中传入。
应实现 name、requires_logging_directory 和 tracker 属性,使得:
name (str):跟踪器类名称的字符串表示形式,例如 “TensorBoard” requires_logging_directory (bool):日志记录器是否需要一个目录来存储其日志。 tracker (object):应返回跟踪器类使用的内部跟踪机制(例如 wandb 的 run)
实现还可以包含一个 main_process_only(bool)属性,用于切换相关的日志记录、初始化及其他函数是否应在主进程上执行,还是在所有进程上执行(默认使用 True)。
应在跟踪 API 中运行任何最终化函数。如果 API 不应包含此类函数,则不要重写该方法。
日志
< source >( values: dictstep: int | None = None**kwargs )
将 values 记录到当前运行中。跟踪 API 的 log 基础实现应放在此处,同时包含针对 `step` 参数的特殊行为。
在 Accelerator 内部延迟初始化 tracker,以避免在 InitProcessGroupKwargs 之前初始化 PartialState。
store_init_configuration
< source >( values: dict )
将 values 作为超参数记录到运行日志中。实现应使用跟踪 API 的实验配置功能。
register_tracker_class
accelerate.tracking.register_tracker_class
< source >( tracker_class: type )
参数
- tracker_class(
GeneralTracker的子类) — 要注册的 tracker 类。它必须继承自GeneralTracker,并定义一个非空的name类属性以及一个requires_logging_directory类属性。该类实例化时,会将传递给Accelerator.init_trackers()的project_name作为第一个位置参数传入。当requires_logging_directory为True时,日志目录将作为第二个位置参数传入(与内置 tracker 的约定一致)。来自init_kwargs的特定于 tracker 的关键字参数会作为**kwargs转发。
注册一个自定义的 GeneralTracker 子类,以便在 Accelerator 的 log_with 参数中通过其 name 进行引用,方式与内置跟踪器相同。
在实例化使用它的 Accelerator 之前,必须先注册该 tracker。
示例:
from accelerate import Accelerator
from accelerate.tracking import GeneralTracker, register_tracker_class
class MyTracker(GeneralTracker):
name = "my_tracker"
requires_logging_directory = False
# ... implement the rest of the `GeneralTracker` interface
register_tracker_class(MyTracker)
accelerator = Accelerator(log_with="my_tracker")TensorBoardTracker
class accelerate.tracking.TensorBoardTracker
< source >( run_name: strlogging_dir: str | os.PathLike**kwargs )
支持 tensorboard 的 Tracker 类。应在脚本开始时进行初始化。
WandBTracker
class accelerate.tracking.WandBTracker
< source >( run_name: str**kwargs )
支持 wandb 的 Tracker 类。应在脚本开始时进行初始化。
Trackio
class accelerate.tracking.TrackioTracker
< source >( run_name: str**kwargs )
参数
- run_name (
str) — 实验运行的名称。在实例化 trackio 时,将用作project名称。 - **kwargs(额外的关键字参数,可选) —
传递给
trackio.init方法的额外关键字参数。请参阅此 init 以查看所有支持的关键字参数。
支持 trackio 的 Tracker 类。应在脚本开始时进行初始化。
CometMLTracker
class accelerate.tracking.CometMLTracker
< source >( run_name: str**kwargs )
参数
- run_name (
str) — 实验运行的名称。 - **kwargs(额外的关键字参数,可选) —
传递给
comet_ml.start方法的额外关键字参数: https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/start/
支持 comet_ml 的 Tracker 类。应在脚本开始时进行初始化。
API 密钥必须存储在 Comet 配置文件中。
注意:
对于 comet_ml 版本 < 3.41.0,额外的关键字参数会传递给 comet_ml.Experiment:https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/Experiment/#comet_ml.Experiment.__init__
AimTracker
类 accelerate.tracking.AimTracker
< source >( run_name: strlogging_dir: str | os.PathLike | None = '.'**kwargs )
支持 aim 的 Tracker 类。应在脚本开始时进行初始化。
MLflowTracker
class accelerate.tracking.MLflowTracker
< source >( experiment_name: str | None = Nonelogging_dir: str | os.PathLike | None = Nonerun_id: str | None = Nonetags: dict[str, typing.Any] | str | None = Nonenested_run: bool | None = Falserun_name: str | None = Nonedescription: str | None = None )
参数
- experiment_name (
str, 可选) — 实验的名称。环境变量 MLFLOW_EXPERIMENT_NAME 的优先级高于此参数。 - logging_dir (
str或os.PathLike,默认为".") — mlflow 日志的存储位置。 - run_id (
str, 可选) — 如果指定,则获取具有指定 UUID 的运行,并在该运行下记录参数和指标。该运行的结束时间未设置,其状态设置为 running,但该运行的其他属性(source_version、source_type 等)不会更改。环境变量 MLFLOW_RUN_ID 的优先级高于此参数。 - tags (
Dict[str, str], 可选) — 一个可选的dict,其键和值均为str,或一个dict的str转储,用于设置运行的标签。如果正在恢复某个运行,这些标签将设置在恢复后的运行上。如果正在创建新运行,这些标签将设置在新运行上。环境变量 MLFLOW_TAGS 的优先级高于此参数。 - nested_run (
bool,可选,默认为False) — 控制 run 是否嵌套在父 run 中。True 表示创建一个嵌套 run。环境变量 MLFLOW_NESTED_RUN 的优先级高于此参数。 - run_name (
str, 可选) — 新运行的名称(存储为 mlflow.runName 标签)。仅在未指定run_id时使用。 - description (
str, 可选) — 一个可选的字符串,用于填充运行的描述框。如果正在恢复某个运行,描述将设置在恢复后的运行上。如果正在创建新运行,描述将设置在新运行上。
支持 mlflow 的 Tracker 类。应在脚本开始时进行初始化。
__init__
< source >( experiment_name: str | None = Nonelogging_dir: str | os.PathLike | None = Nonerun_id: str | None = Nonetags: dict[str, typing.Any] | str | None = Nonenested_run: bool | None = Falserun_name: str | None = Nonedescription: str | None = None )
ClearMLTracker
class accelerate.tracking.ClearMLTracker
< source >( run_name: str | None = None**kwargs )
支持 clearml 的 Tracker 类。应在脚本开始时进行初始化。
SwanLabTracker
class accelerate.tracking.SwanLabTracker
< source >( run_name: str**kwargs )
支持 swanlab 的 Tracker 类。应在脚本开始时进行初始化。