d38171030
ee839216
Trainer
mindspore.Model
GRAPH_MODE
training_graph
mindformers.pynative.trainer.Trainer
/home/fdw/code/hyper-parallel/hyper_parallel/trainer
状态说明:
MFLossMonitor
LossCallback
train.logging.log_steps
MFLossMonitor(print_separate_loss=true)
monitor_config.local_loss_format
monitor.train_state.local_loss
train.monitor.monitor_on: true
local_loss_format: [log, tensorboard]
on_substep_end
train.monitor.device_local_loss_format
loss/device_accum_local_loss
local_norm
train.monitor.local_norm_format
target
invert
train.monitor.device_local_norm_format
grad/device_local_norm
check_for_nan_in_loss_and_grad: true
train.debug.check_nan_inf
check_for_global_norm
global_norm_spike_threshold
global_norm_spike_count_threshold
monitor_config.weight_state_format
monitor_config.optimizer_state_format
monitor_config.stable_rank_config
monitor_config.max_attention_logit_format
MaxLogitsMonitor(step_interval=N)
track_max_attention_logit
mean_sum
mean
max(load_i) / mean(load) - 1
max_vio
expert_load
tokens_per_expert
monitor.moe_monitor.save_tokens_per_expert_interval
MoEDropRateCallback
ColdHotExpertMonitor
ExpertMigrateCallback
tensorboard.tensorboard_dir
monitor.tensorboard.output_dir
train.monitor.*_format: [tensorboard]
TensorBoardCallback
train_precision_sync: true
train.debug.deterministic: true
主要源码入口:
mindformers/core/callback/callback.py:348
:805
:993
:1172
:1411
:2853
mindformers/pynative/callback/loss_callback.py:33
mindformers/pynative/tools/monitor.py:145
:288
:534
mindformers/pynative/callback/max_logits_monitor.py:38
hyper_parallel/trainer/callbacks/base.py:156
:679
:758
:1101
:1176
hyper_parallel/trainer/base.py:1023
:1437
hyper_parallel/core/moe_utils.py:37
train.logging.report_throughput: true
model_flops_per_token
peak_tflops
ProfilerCallback
torch.profiler
profile_rank_ids
profile_communication
with CommDebugMode(model) as mode
generate_comm_debug_tracing_table()
get_comm_counts()
profile_memory
profiler_level
with_stack
data_simplification
TrainingStateMonitor
:2264
mindformers/trainer/trainer.py:1115
mindformers/pynative/tools/profiler.py:40
mindformers/pynative/trainer/trainer.py:884
:592
hyper_parallel/trainer/config.py:293
hyper_parallel/core/dtensor/debug/_comm_debug_mode.py:47
本节只统计显存观测和问题定位能力,不统计降低显存占用的训练策略。
profile_memory: true
MemoryMonitorCallback
memory_analysis.html
hyper_parallel/tools/memory_visualizer/memory_analysis.html
mindformers/core/callback/callback.py:2264
hyper_parallel/trainer/callbacks/base.py:1197
hyper_parallel/trainer/config.py
MemoryMonitorConfig
CheckpointMonitor
train.checkpoint.save_steps
keep_checkpoint_max
save_max
StatefulDataLoader
verify_ckpt_valid
checkpoint.reshard_worker_num
load_worker_number
checkpoint.load_balanced: true
checkpoint.no_load_optim: true
CheckpointMonitor.exception_save: true
HealthCheckpointConfig
tools/resume_ckpt.py
TrainFaultTolerance
MS_ENABLE_TFT
ARF:1
UCE:1
MS_ENABLE_TFT=TRE:1
NPU_ASD_ENABLE=1
MS_SDC_DETECT_ENABLE=1
SDCMonitor
StressDetectCallBack
StressTestModelMonitor
mindformers/core/callback/callback.py:1604
:1630
:2792
:3360
mindformers/trainer/base_trainer.py:1120
:1434
mindformers/version_control.py:241
mindformers/pynative/callback/checkpoint_callback.py:31
mindformers/pynative/trainer/trainer.py:779
mindformers/checkpoint/checkpoint.py
reshard.py
fully_parallel.py
utils.py:314
hyper_parallel/trainer/callbacks/base.py:259
:285
:374
:420
args.train.*
max_logits
max_attention_logit/mean
on_exception
max_logits/mean_sum
1. 范围与统计口径
d38171030(2026-07-18),HyperParallelee839216(2026-07-24)。Trainer、mindspore.Model、GRAPH_MODE/training_graph链路。mindformers.pynative.trainer.Trainer的 MindSpore PyNative 链路。/home/fdw/code/hyper-parallel/hyper_parallel/trainer。它当前实际是 PyTorch eager Trainer;核心并行库存在某项能力,不等于 Trainer 已经接入。状态说明:
2. 精度与训练状态监控
MFLossMonitor;动态图使用LossCallback;HyperParallel 使用train.logging.log_stepsMFLossMonitor直接输出;动态图基础日志没有与静态图等价的独立 overflow 指标MFLossMonitor(print_separate_loss=true);动态图LossCallback;HyperParallel 仅 MoE aux loss 有实现且 MoE callback 配置路径有缺陷monitor_config.local_loss_format;动态图monitor.train_state.local_loss;HyperParalleltrain.monitor.monitor_on: true、local_loss_format: [log, tensorboard],从on_substep_end采集 raw micro losstrain.monitor.device_local_loss_format输出loss/device_accum_local_loss,当前不做跨 rank 聚合local_norm配置;HyperParalleltrain.monitor.local_norm_format,并可配target正则和inverttrain.monitor.device_local_norm_format输出grad/device_local_norm,当前不做跨 rank 聚合check_for_nan_in_loss_and_grad: true;动态图未接入;HyperParallel 已修复train.debug.check_nan_inf接线,但只检查 global grad norm,且只有 rank 0 抛异常check_for_global_norm、global_norm_spike_threshold、global_norm_spike_count_thresholdmonitor_config.weight_state_formatmonitor_config.optimizer_state_formatmonitor_config.stable_rank_config,支持参数筛选、聚合和采样周期monitor_config.max_attention_logit_format;动态图加入MaxLogitsMonitor(step_interval=N);均依赖模型支持track_max_attention_logitmean_sum,与 max logits 结合判断整体分布和局部极值mean_sum的指标;MindFormers 两种模式现有的是各层/各 head 最大值的整体mean,不能直接等同于mean_summax(load_i) / mean(load) - 1,直接反映路由稳定性max_vio的指标;静态图可从expert_load、动态图可从 tokens-per-expert、HyperParallel 可从核心tokens_per_expert推导。HyperParallel Trainer 的 MoE callback 还存在配置路径缺陷monitor.moe_monitor.save_tokens_per_expert_interval;HyperParallel 核心能同步计数,但 Trainer callback 错读配置且未输出完整直方图MoEDropRateCallbackColdHotExpertMonitor、ExpertMigrateCallbacktensorboard.tensorboard_dir;动态图配置monitor.tensorboard.output_dir;HyperParalleltrain.monitor.*_format: [tensorboard]已能写 local/device loss/norm 和 rank 0 global loss/norm,但通用TensorBoardCallback仍是 stubtrain_precision_sync: true;动态图使用确定性训练配置;HyperParalleltrain.debug.deterministic: true主要源码入口:
mindformers/core/callback/callback.py:348、:805、:993、:1172、:1411、:2853。mindformers/pynative/callback/loss_callback.py:33、mindformers/pynative/tools/monitor.py:145、:288、:534、mindformers/pynative/callback/max_logits_monitor.py:38。hyper_parallel/trainer/callbacks/base.py:156、:679、:758、:1101、:1176,hyper_parallel/trainer/base.py:1023、:1437,hyper_parallel/core/moe_utils.py:37。3. 性能监控与 Profiler
train.logging.report_throughput: truemodel_flops_per_tokenpeak_tflopsMFLossMonitor;HyperParallel Progress callback 使用 tqdmProfilerCallback目前没有创建或驱动torch.profilerprofile_rank_ids/每 PP stage 取卡;动态图 profiler 支持 rank 配置profile_communicationwith CommDebugMode(model) as mode,再调用generate_comm_debug_tracing_table()或get_comm_counts();支持 Torch/MindSpore,但尚未接入 Trainer 配置和按 step/rank 调度profile_memoryprofiler_levelwith_stackdata_simplificationTrainingStateMonitor配置 throughput baseline/linearity主要源码入口:
mindformers/core/callback/callback.py:348、:805、:2264,mindformers/trainer/trainer.py:1115。mindformers/pynative/tools/profiler.py:40、mindformers/pynative/trainer/trainer.py:884。hyper_parallel/trainer/callbacks/base.py:156、:592,hyper_parallel/trainer/config.py:293,hyper_parallel/core/dtensor/debug/_comm_debug_mode.py:47。4. 显存分析
本节只统计显存观测和问题定位能力,不统计降低显存占用的训练策略。
profile_memory: true;HyperParallel memory profiler 未实现profile_memory和with_stackMemoryMonitorCallback为 stubmemory_analysis.html,可读取 block CSV 展示无碎片/理论/含碎片显存曲线,但 Trainer 不负责采集和自动打开hyper_parallel/tools/memory_visualizer/memory_analysis.html离线导入 block CSV;支持峰值明细、解释器、A/B diff 和 CSV/JSON 导出,但尚未接入 Trainer/OOM 自动诊断链路主要源码入口:
mindformers/core/callback/callback.py:2264、mindformers/pynative/tools/profiler.py:40。hyper_parallel/trainer/callbacks/base.py:1197、hyper_parallel/trainer/config.py的MemoryMonitorConfig、hyper_parallel/tools/memory_visualizer/memory_analysis.html。5. 高可用、快速恢复与 Checkpoint
CheckpointMonitor;动态图 checkpoint config;HyperParalleltrain.checkpoint.save_stepskeep_checkpoint_max/save_max;HyperParallel 无 keep-maxStatefulDataLoaderverify_ckpt_validcheckpoint.reshard_worker_num;动态图复用 loader,但load_worker_number未传入,worker 实际仍为默认值;HyperParallel DCP 能处理部分 world-size 变化,缺少 Trainer 级显式流程和验收checkpoint.load_balanced: truecheckpoint.no_load_optim: true;HyperParallel 可通过状态选择实现,但无完整用户配置CheckpointMonitor.exception_save: trueHealthCheckpointConfig声明,没有运行时消费tools/resume_ckpt.py参与筛选;其他 Trainer 需显式路径TrainFaultTolerance,通过MS_ENABLE_TFT打开相应能力MS_ENABLE_TFT含ARF:1,并配置同步 checkpointUCE:1;检测和故障处置依赖 MindSpore/TFTMS_ENABLE_TFT=TRE:1配合 global norm health 配置NPU_ASD_ENABLE=1、MS_SDC_DETECT_ENABLE=1并加入SDCMonitor;当前主要告警,未形成自动恢复闭环StressDetectCallBack/StressTestModelMonitor,属于实验能力主要源码入口:
mindformers/core/callback/callback.py:1604、:1630、:2792、:3360,mindformers/trainer/base_trainer.py:1120、:1434,mindformers/version_control.py:241。mindformers/pynative/callback/checkpoint_callback.py:31、mindformers/pynative/trainer/trainer.py:779。mindformers/checkpoint/checkpoint.py、reshard.py、fully_parallel.py、utils.py:314。hyper_parallel/trainer/callbacks/base.py:259、:285、:374、:420。6. HyperParallel 主要能力欠缺
P0:修复已有能力的真实可用性
args.train.*。TrainingStateMonitor 和 GradientHealth 已正确接线;Profiler、通用 TensorBoard、Memory、MoE、GC、Eval 等仍读取错误层级。P1:补齐大模型精度与性能诊断
max_logits和mean_sum。若mean_sum的业务定义不同于现有 MindFormers 的max_attention_logit/mean,需先固定公式、聚合维度和跨 TP/CP 规约语义。max_vio一等指标;基于同步后的 tokens-per-expert 计算并输出 layer 级、全局最大值和趋势,同时保留原始直方图。P2:建立高可用闭环
on_exception生命周期和 last-words checkpoint;诊断包包含配置、日志、最近指标、显存摘要和 profiler 环形缓冲。7. 建议验收矩阵
max_vio、attentionmax_logits/mean_sum有明确公式和并行规约;注入 NaN/Inf 后全 rank 有界退出