监控

Deepspeed的Monitor模块可以将训练细节记录到与Tensorboard兼容的文件、WandB或简单的CSV文件中。以下是DeepSpeed将自动记录的内容概述。

Automatically Logged Data

字段

描述

条件

训练/样本/训练损失

训练损失。

Train/Samples/lr

训练期间的学习率。

Train/Samples/loss_scale

使用fp16进行训练时的损失比例。

fp16 必须启用。

训练/特征值/模型块参数_{i}

每个参数块的Eigen值。

eigenvalue 必须启用。

Train/Samples/elapsed_time_ms_forward

前向传播的全局持续时间。

flops_profiler.enabledwall_clock_breakdown

Train/Samples/elapsed_time_ms_backward

前向传播的全局持续时间。

flops_profiler.enabledwall_clock_breakdown

Train/Samples/elapsed_time_ms_backward_inner

不包括梯度减少时间的反向时间。仅在梯度减少不重叠的情况下,如果重叠,则内部时间应与整个反向时间大致相同。

flops_profiler.enabledwall_clock_breakdown

Train/Samples/elapsed_time_ms_backward_allreduce

allreduce操作的全局持续时间。

flops_profiler.enabledwall_clock_breakdown

Train/Samples/elapsed_time_ms_step

优化器步骤时间。

flops_profiler.enabledwall_clock_breakdown

TensorBoard

class deepspeed.monitor.config.TensorBoardConfig[来源]

设置TensorBoard监视器的参数。

enabled: bool = False

是否启用了Tensorboard日志记录。需要安装tensorboard包。

output_path: str = ''

Tensorboard日志将被写入的路径。如果未提供,输出路径将设置在训练脚本的启动路径下。

job_name: str = 'DeepSpeedJobName'

当前作业的名称。这将成为output_path内的一个新目录。

WandB

class deepspeed.monitor.config.WandbConfig[来源]

设置WandB监视器的参数。

enabled: bool = False

是否启用了WandB日志记录。需要安装wandb包。

group: Optional[str] = None

WandB组的名称。这可以用来将运行分组在一起。

team: Optional[str] = None

WandB团队的名称。

project: str = 'deepspeed'

WandB项目的名称。

彗星

class deepspeed.monitor.config.CometConfig[来源]

设置Comet监控器的参数。Comet使用实验对象来记录数据。 https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/Experiment/

enabled: bool = False

是否启用了Comet日志记录。需要安装comet_ml包。

samples_log_interval: int = 100

指标将在每处理samples_log_intervas个样本后提交到Comet

project: Optional[str] = None

Comet项目名称。可以通过.comet.config文件或环境变量COMET_PROJECT_NAME设置 https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options

workspace: Optional[str] = None

Comet 工作区名称。可以通过 .comet.config 文件或环境变量 COMET_WORKSPACE 设置 https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options

api_key: Optional[str] = None

Comet API 密钥。可以通过 .comet.config 文件或环境变量 COMET_API_KEY 设置 https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options

experiment_name: Optional[str] = None

用于日志记录的彗星实验名称。 可以通过.comet.config文件或环境变量COMET_EXPERIMENT_NAME设置 https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options

experiment_key: Optional[str] = None

用于记录日志的comet实验的密钥。必须是一个长度在32到50个字符之间的字母数字字符串。 可以通过.comet.config或环境变量COMET_EXPERIMENT_KEY设置 https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options

online: Optional[bool] = None

如果为True,数据将被记录到Comet服务器,否则将存储在本地离线实验中。默认为True。

mode: Optional[str] = None
Control how the Comet experiment is started, 3 options are possible.:
  • “get”:继续记录到由experiment_key值标识的现有实验。

  • “create”:总是创建一个新的实验,适用于HPO扫描。

  • “get_or_create”(默认):如果需要,启动一个新的实验,或者将日志记录持久化到现有的实验中。

CSV 监控

class deepspeed.monitor.config.CSVConfig[来源]

设置CSV监视器的参数。

enabled: bool = False

是否启用了记录到本地CSV文件的功能。

output_path: str = ''

CSV文件将被写入的路径。如果未提供,输出路径将设置在训练脚本的启动路径下。

job_name: str = 'DeepSpeedJobName'

当前作业的名称。这将成为output_path内的一个新目录。