日志

查看源文件

日志保存

概述

MindSpore Transformers 会将模型的训练配置、训练步数、Loss、吞吐率等信息写入日志中,开发者可以自行指定日志存储的路径。

训练日志的目录结构

在训练过程中,MindSpore Transformers 默认会在输出目录(默认为 ./output )中生成训练日志目录: ./log

而当使用 ms_run 方式启动训练任务时,将会默认同时在输出目录下额外生成日志目录: ./msrun_log

文件夹

描述

log

rank_{i} 文件夹来划分保存每一张卡的日志信息。( i 对应为训练任务所用的 NPU 卡号)
每一个 rank_{i} 文件夹底下将包括 info.logerror.log 来分别记录训练时输出的 INFO 级别和 ERROR 级别的信息。单个日志默认大小为50M,且最多有5个日志备份。

msrun_log

worker_{i}.log 来记录每一张卡的训练日志(包括报错信息), scheduler.log 则记录了 msrun 的启动信息。
一般更常通过此文件夹查看训练日志信息。

以一个使用 msrun 当时启动的 8 卡任务为例,具体日志结构如下所示:

output
    ├── log
        ├── rank_0
            ├── info.log    # 记录 0 号卡的训练信息
            └── error.log   # 记录 0 号卡的报错信息
        ├── ...
        └── rank_7
            ├── info.log    # 记录 8 号卡的训练信息
            └── error.log   # 记录 8 号卡的报错信息
    └── msrun_log
        ├── scheduler.log   # 记录各张卡之间的通信信息
        ├── worker_0.log    # 记录 0 号卡的训练及信息
        ├── ...
        └── worker_7.log    # 记录 8 号卡的训练及信息

配置与使用

MindSpore Transformers 默认会在训练的 yaml 文件中指定文件输出路径为 ./output 。如果在 mindformers 路径下启动训练任务,则训练产生的日志输出将默认保存在 mindformers/output 下。

YAML 参数配置

如果需要重新指定输出的日志文件夹,可以在 yaml 中修改配置。

DeepSeek-V3 预训练 yaml 为例,可做如下配置:

output_dir: './output' # path to save logs/checkpoint/strategy

单卡任务指定输出目录

除了 yaml 文件配置来指定,MindSpore Transformers 还支持在 run_mindformer 一键启动脚本 中,使用 --output_dir 启动命令对日志输出路径做指定。

如果在这里配置了输出路径,将会覆盖 yaml 文件中的配置!

分布式任务指定输出目录

如果模型训练需要用到多台服务器,使用分布式任务拉起脚本 msrun_launcher.sh 来启动分布式训练任务。

在设置了共享存储的情况下,还可以在启动脚本中指定入参 LOG_DIR 来指定 Worker 以及 Scheduler 的日志输出路径,将所有机器节点的日志都输出到一个路径下,方便统一观察。