检查项汇总
精度调优前,请按照如下表格的要求进行检查,并记录相关检查结果,排除参考基准和模型迁移过程中可能存在的问题。
序号 |
检查项 |
简介 |
检查结果 |
---|---|---|---|
检查参考基准脚本 |
|||
1 |
基准模型多次训练需要得到相同的结果预期,如果基准模型的多次训练相互对比不满足精度对比要求,那么该参考基准不适合用于精度对比。 |
通过/不通过/未进行 |
|
2 |
由于昇腾AI处理器(简称NPU)硬件架构仅支持用户模型执行在混合精度训练模式下,故用户模型也需要以混合精度训练。如果用户模型未使能混合精度训练模式、或使能不当,会有可能导致NPU无法训练或训练精度不符合预期的结果。 |
通过/不通过/未进行 |
|
检查迁移后脚本 |
|||
3 |
在精度调优前,首先需要确保模型迁移成功且在NPU上功能调通。如果涉及分布式训练,确保正确使能。特别需要注意的是,在迁移过程中,需要确保正确使能混合精度训练。 |
通过/不通过/未进行 |
|
4 |
迁移后的脚本需在NPU上正确使能Loss Scale。且由于NPU计算特性与GPU混合精度计算特性存在差异,LossScaleManager参数也往往需要进行适当的调整以保证精度。 |
通过/不通过/未进行 |
|
6 |
训练数据集往往较大,且可能出现不完整情况,需要确保数据集完整性。 |
通过/不通过/未进行 |
|
7 |
用户模型代码的数据预处理流程可能存在基于资源自动设定的变量,该变量会导致对数据集打乱的随机性不一致。需要从代码级别确认数据预处理的接口调用,尽可能减小该差异。 |
通过/不通过/未进行 |
|
8 |
用户模型代码的多节点数据预处理流程可能存在基于文件名、文件个数等进行分片的模式。该模式下由于文件读取接口在不同节点上对文件名排序的不同,会导致分片差异较大甚至文件重复分片到不同节点等不期望的结果。需要增加调试代码排除类似问题,确认分片规则与基准一致。 |
通过/不通过/未进行 |
|
9 |
用户训练过程中,常常会出现例如未清空中间数据等流程错误,然后基于该不期望的中间数据可能会引起精度不一致的问题。用户需要对训练流程有基本的知识积累,并自行检查整个训练、验证过程的正确性。 |
通过/不通过/未进行 |
|
10 |
进行脚本迁移的用户可能对超参的一致性不熟悉,导致迁移完成后,但一些超参的计算事实上与参考基准不一致。此时需要检查实际执行超参与参考基准的一致性。 |
通过/不通过/未进行 |