训练结果输出
日志及权重
训练过程中,MindSpeed-LLM框架训练loss、性能信息日志会在最后的Rank节点打印,Llama-Factory框架loss、性能信息日志会在第一个Rank节点打印。训练结果结构说明如下:
- MindSpeed-LLM
|──{af_output_dir} #{af_output_dir}参数设置值,如yaml文件中参数配置 # 自动生成数据目录结构 |──preprocessed_data # 数据预处理目录 |──converted_hf2mg_weight_TP${TP}PP${PP} # 原始HF转MG格式权重目录 |──converted_mg2hf_weight # 训练完成权重MG转HF格式权重 |──saved_checkpoints # 训练完成MG格式权重 |──training_loss.png # loss曲线图 |──logs # 训练日志 |──xx-xx-<时间戳>-npu_info-R${RankID}.txt # 训练显存监控日志 |──xx-xx-<时间戳>-run_log-${Nodes}-${RankID}.txt # 训练过程运行日志
- Llama-Factory
|──{output_dir} #{output_dir}参数设置值,如yaml文件中参数配置 # 自动生成数据目录结构 |──model-000xx-of-000xx.safetensors # 权重文件 |──trainer_log.jsonl # 训练jsonl文件loss打印 |──training_loss.png # loss曲线图 |──logs # 训练日志 |──xx-xx-<时间戳>-npu_info-R${RankID}_WS${world_size}.txt # 显存监控日志 |──xx-xx-<时间戳>-run_log-R${RankID}_WS${world_size}.txt # 过程运行日志 |──......
查看性能
训练性能主要通过训练日志中的2个指标查看:吞吐量和loss收敛情况。
- MindSpeed-LLM
- 吞吐量(tokens/s/p):global batch size*seq_length/(总卡数*elapsed time per iteration)*1000,其global batch size(GBS)、seq_len(SEQ_LEN)为训练时设置的参数,日志中有打印。
- loss收敛情况:日志里存在lm loss参数 ,lm loss参数随着训练迭代周期持续性减小,并逐渐趋于稳定平缓。也可以使用可视化工具TrainingLogParser查看loss收敛情况。
- Llama-Factory
- 吞吐量(tokens/s/p):${output_dir}参数值路径下的trainer_log.jsonl计算性能。取中间过程多steps平均值吞吐计算,一般训练日志中已计算打印出吞吐值。公式为:
delta_tokens = end_total_tokens-start_ total_tokens
delta_time = end_elapsed_time - start_elapsed_time
吞吐值(tps) = delta_tokens / delta_time / 训练卡数
如图所示:
- loss收敛情况:loss收敛图存放路径${output_dir}参数值路径下的training_loss.png中也可以使用可视化工具TrainingLogParser查看loss收敛情况,将trainer_log.jsonl文件上传至可视化工具页面即可。
- 吞吐量(tokens/s/p):${output_dir}参数值路径下的trainer_log.jsonl计算性能。取中间过程多steps平均值吞吐计算,一般训练日志中已计算打印出吞吐值。公式为: