科学计算大模型训练常见报错与解决方案
科学计算大模型训练常见报错及解决方案请详见表1。
| 常见报错 | 问题现象 | 原因分析 | 解决方案 |
|---|---|---|---|
| 训练日志提示“not enough train data” | 训练作业失败,在训练结果页面选择“日志”,然后选择“模型微调”或“模型预训练”,可看到作业运行日志出现报错信息 “not enough train data”。 | 训练集选取时间区段内满足训练条件的数据不足。 | 参照排查步骤排查数据,训练集选择的时间区段需要至少超过模型分辨率对应时长。 |
| 训练日志提示“not enough valid data” | 训练作业失败,在训练结果页面选择“日志”,然后选择“模型微调”或“模型预训练”,可看到作业运行日志出现报错信息 “not enough valid data”。 | 验证集选取时间区段内满足验证条件的数据不足。 | 参照排查步骤排查数据,对于全球天气模型,验证集选择的时间区段需要满足表2对应关系,需要至少超过模型分辨率对应时长,请相应地延长验证集的时间区段时长 |
| 训练日志提示中包含关键字“torch.distributed.all_gather_object(all_metrics, metrics)、HCCL_CONNECT_TIMEOUT、PTA call acl api failed” | 训练作业失败,在训练结果页面选择“日志”,然后选择“模型微调”或“模型预训练”,可看到作业运行日志出现报错信息包含关键字“torch.distributed.all_gather_object(all_metrics, metrics)、HCCL_CONNECT_TIMEOUT、PTA call acl api failed” | 多卡间通信超时。 | 可尝试添加环境变量HCCL_CONNECT_TIMEOUT,参数默认值为 120,可设置范围为 120-7200,推荐值 1800,然后重试任务。如果仍有问题,请联系昇腾HCCL相关同事定位昇腾日志中异常的详细原因。 |
排查步骤
- 排查训练/验证集数据时间是否在训练选择的时间范围内,将时间格式转换为UTC时间进行排查,既为页面对应的时间格式。
- 排查训练选择的训练特征参数在训练/验证集数据中是否存在。如时间范围内有时间为2024010100的数据,页面选择的特征为高空层次类型sigma,层次1.0, 0.99463,高空特征U、V,表面特征T、U、V,排查数据文件中是否存在时间为2024010100,高空层次类型为sigma,层次为1.0, 0.99463,高空特征为U、V,表面特征为T、U、V的数据。
- 排查上游数据集特征是否存在,上游模型一般必然存在全球天气,可能存在区域天气。训练页面如果配置了上游模型特征,则需要对应特征的区域天气数据,全球天气需要满足以下特征。
"fields": { "upper_air_isobaric": { "features": { "Z": "z", "Q": "q", "T": "t", "U": "u", "V": "v" }, "layers": [ "50hPa", "100hPa", "150hPa", "200hPa", "250hPa", "300hPa", "400hPa", "500hPa", "600hPa", "700hPa", "850hPa", "925hPa", "1000hPa" ] } }表面:
"fields": { "surface": { "features": { "P": "msl", "U": "u10", "V": "v10", "T": "t2m" }, "layers": null } } - 排查训练/验证集数据区域范围,是否满足页面设置的区域范围要求。上下游数据集均需要覆盖页面设置的区域范围,如页面设置lat 30-40,lon 30-40,数据内需要涵盖了30-40的范围。场站数据除外,场站坐标需要在选择范围之内有至少一个站。