PyNative MaxLogitsMonitor 同时负责输出 max-attention-logit 和在每个训练步结束后清零 tracking 状态。Trainer 内部将模型保存为列表,但 callback 在跳过日志的分支中把整个列表传给单模型 reset 接口。
MaxLogitsMonitor
当配置日志间隔大于 1 时:
optimizer: type: Muon qk_clip_enabled: true callbacks: - type: MaxLogitsMonitor step_interval: 2
第 1 步结束后会报错:
AttributeError: 'list' object has no attribute 'reset_max_attention_logit'
此外,QK clip 需要每步自动 reset max-logits 状态,但当前 callback 没有独立的日志开关,用户无法保留 QK clip tracking/reset 并关闭 max-logits 日志。
期望行为:
qk_clip_enabled: true
建议新增独立的 enable_logging 配置,并让 step_interval 只控制日志频率;callback 在所有路径上仍对每个模型 chunk 执行 reset。
enable_logging
step_interval
upstream/master
dad55f0cf
Checklist
🐞 问题详细描述
PyNative
MaxLogitsMonitor同时负责输出 max-attention-logit 和在每个训练步结束后清零 tracking 状态。Trainer 内部将模型保存为列表,但 callback 在跳过日志的分支中把整个列表传给单模型 reset 接口。当配置日志间隔大于 1 时:
optimizer: type: Muon qk_clip_enabled: true callbacks: - type: MaxLogitsMonitor step_interval: 2第 1 步结束后会报错:
此外,QK clip 需要每步自动 reset max-logits 状态,但当前 callback 没有独立的日志开关,用户无法保留 QK clip tracking/reset 并关闭 max-logits 日志。
期望行为:
详细的环境信息描述
qk_clip_enabled: true其他辅助信息
建议新增独立的
enable_logging配置,并让step_interval只控制日志频率;callback 在所有路径上仍对每个模型 chunk 执行 reset。版本信息
upstream/masterdad55f0cf