
# 科学计算大模型训练常见报错与解决方案
科学计算大模型训练常见报错及解决方案请详见[表1]。
 表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相关同事定位昇腾日志中异常的详细原因。        |
   
 #### 排查步骤
1. 排查训练/验证集数据时间是否在训练选择的时间范围内，将时间格式转换为UTC时间进行排查，既为页面对应的时间格式。
2. 排查训练选择的训练特征参数在训练/验证集数据中是否存在。如时间范围内有时间为2024010100的数据，页面选择的特征为高空层次类型sigma，层次1.0, 0.99463，高空特征U、V，表面特征T、U、V，排查数据文件中是否存在时间为2024010100，高空层次类型为sigma，层次为1.0, 0.99463，高空特征为U、V，表面特征为T、U、V的数据。
3. 排查上游数据集特征是否存在，上游模型一般必然存在全球天气，可能存在区域天气。训练页面如果配置了上游模型特征，则需要对应特征的区域天气数据，全球天气需要满足以下特征。 高空：
   ```
   "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
       }
   }
   ```
   
4. 排查训练/验证集数据区域范围，是否满足页面设置的区域范围要求。上下游数据集均需要覆盖页面设置的区域范围，如页面设置lat 30-40，lon 30-40，数据内需要涵盖了30-40的范围。场站数据除外，场站坐标需要在选择范围之内有至少一个站。
 
