特征值检测
简介
特征值检测是针对NPU的PyTorch API,作用是检测在训练过程中激活值的梯度特征值是否存在异常。当前仅能识别数据类型为BF16或FP32的模型在训练过程中出现的收敛异常。

PyTorch图模式(TorchAir)不支持此特性。
Ascend Extension for PyTorch 7.0.0及之前,可参考Ascend Extension for PyTorch相应版本的资料进行操作。
特征值检测需要计算激活值梯度的统计值,会产生额外的显存占用,最多可能存在1.5G的额外显存消耗,用户显存紧张情况下可能导致OOM(Out of Memory,内存不足)。
开启检测开关
- 训练前,配置如下环境变量,开启特征值检测和checksum联动功能:
故障处理
对于检测过程中可能会产生的三种异常场景说明如下:
- 梯度异常:单次梯度异常会打印“A grad-norm spike may happen”的Event日志,日志等级为INFO,默认不开启,可以通过设置“export TORCH_NPU_LOGS=silent”开启。训练过程中梯度单次跳变,如果后续不产生特征值异常告警,无需进行处理。
- 特征值异常:特征值异常打印“feature detection detects abnormal results”的Warning日志,训练过程中多次发生梯度跳变,建议通过checksum联动进一步确认是否为aicore错误的硬件故障。
- checksum校验异常:checksum校验异常打印“The result of Matmul checksum is abnormal”的Warning日志,确认报错卡产生了aicore错误的硬件故障,请联系华为工程师维修更换。
父主题: 关键特性适配