From 62266e0f3224e6d17a8b1d7155e19d0959fb4b7d Mon Sep 17 00:00:00 2001 From: user_10012209 <734267852@qq.com> Date: Wed, 13 Sep 2023 15:41:18 +0800 Subject: [PATCH] =?UTF-8?q?[att\debug\accuracy=5Ftools\api=5Faccuracy=5Fch?= =?UTF-8?q?ecker]=E9=A2=84=E6=A3=80=E5=B7=A5=E5=85=B7=E8=B5=84=E6=96=99?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E8=B0=83=E6=95=B4=E5=92=8C=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=91=BD=E5=90=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api_accuracy_checker/README.md | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/README.md b/debug/accuracy_tools/api_accuracy_checker/README.md index 41ae3ff9f..614763ce5 100644 --- a/debug/accuracy_tools/api_accuracy_checker/README.md +++ b/debug/accuracy_tools/api_accuracy_checker/README.md @@ -54,15 +54,12 @@ Ascend模型精度预检工具能在昇腾NPU上扫描用户训练模型中所 msCheckerConfig.update_config(dump_path="my/dump/path", real_data=True, enable_dataloader=True, target_iter=1) ``` - - dump_path:设置dump路径,须为已存在目录。 - - - real_data:真实数据模式,可取值True或False,配置为True后开启真实数据模式,dump信息增加forward_real_data和backward_real_data目录,目录下保存每个API输入的具体数值。 - - 注意:开启真实数据模式目前仅支持单卡,且会存盘较多数据,可能对磁盘空间有较大冲击。 - - - enable_dataloader:自动控制开关,可取值True或False,配置为True后自动识别dump target_iter参数指定的迭代数据,并在该迭代执行完成后退出训练。 - - - target_iter:指定dump某个step的数据,仅支持dump1个step,须指定为训练脚本中存在的step。 + | 参数名称 | 说明 | 是否必选 | + | ----------------- | ------------------------------------------------------------ | -------- | + | dump_path | 设置dump路径,须为已存在目录,默认为当前目录。 | 否 | + | real_data | 真实数据模式,可取值True或False,默认为False,配置为True后开启真实数据模式,dump信息增加forward_real_data和backward_real_data目录,目录下保存每个API输入的具体数值。开启真实数据模式目前仅支持单卡,且会存盘较多数据,可能对磁盘空间有较大冲击。 | 否 | + | enable_dataloader | 自动控制开关,可取值True或False,默认为False,配置为True后自动识别dump target_iter参数指定的迭代数据,并在该迭代执行完成后退出训练。 | 否 | + | target_iter | 指定dump某个step的数据,默认为1,仅支持dump1个step,须指定为训练脚本中存在的step。 | 否 | 3. 将API信息输入给run_ut模块运行精度检测并比对,运行如下命令: @@ -71,14 +68,16 @@ Ascend模型精度预检工具能在昇腾NPU上扫描用户训练模型中所 python run_ut.py -forward ./forward_info_0.json -backward ./backward_info_0.json ``` - - -forward:指定前向API信息文件forward_info_{pid}.json,必选。 - - -backward:指定反向API信息文件backward_info_{pid}.json,必选。 - - -save_error_data:保存精度未达标的API输入输出数据,可选。 - - --out_path:指定run_ut执行结果存盘路径,默认“./”(相对于run_ut的路径),可选。 + | 参数名称 | 说明 | 是否必选 | + | ---------------- | ------------------------------------------------------------ | -------- | + | -forward | 指定前向API信息文件forward_info_{pid}.json。 | 是 | + | -backward | 指定反向API信息文件backward_info_{pid}.json。 | 是 | + | -save_error_data | 保存精度未达标的API输入输出数据。 | 否 | + | --out_path | 指指定run_ut执行结果存盘路径,默认“./”(相对于run_ut的路径)。 | 否 | - run_ut执行结果包括pretest_result.csv和pretest_details.csv两个文件。pretest_result.csv是API粒度的,标明每个API是否通过测试。建议用户先查看pretest_result.csv文件,对于其中没有通过测试的或者特定感兴趣的API,根据其API name字段在pretest_details.csv中查询其各个输出的达标情况以及比较指标。 + run_ut执行结果包括accuracy_checking_result.csv和accuracy_checking_details.csv两个文件。accuracy_checking_result.csv是API粒度的,标明每个API是否通过测试。建议用户先查看accuracy_checking_result.csv文件,对于其中没有通过测试的或者特定感兴趣的API,根据其API name字段在accuracy_checking_details.csv中查询其各个输出的达标情况以及比较指标。 - 注意:目前API通过测试的标准是每个输出与标杆比对的余弦相似度大于0.99,并且float16和bfloat16数据要通过双千分之一标准,float32数据要通过双万分之一标准,pretest_details.csv中的相对误差供用户分析时使用。 + 注意:目前API通过测试的标准是每个输出与标杆比对的余弦相似度大于0.99,并且float16和bfloat16数据要通过双千分之一标准,float32数据要通过双万分之一标准,accuracy_checking_details.csv中的相对误差供用户分析时使用。 4. 如果需要保存比对不达标的输入和输出数据,可以在run_ut执行命令结尾添加-save_error_data,例如: @@ -89,15 +88,15 @@ Ascend模型精度预检工具能在昇腾NPU上扫描用户训练模型中所 ## FAQ -1. 多卡训练dump结果只有一组json,是否为正常现象? - 答:正常来说,多卡训练应该能dump下来与卡数相当的数组json文件,每组都包含forward backward和stack信息。目前在部分流水并行、张量并行场景下,工具的开关无法在每张卡上自动打开,用户需要在训练代码中添加打开工具开关的调用: +多卡训练dump结果只有一组json,是否为正常现象? +答:正常来说,多卡训练应该能dump下来与卡数相当的数组json文件,每组都包含forward backward和stack信息。目前在部分流水并行、张量并行场景下,工具的开关无法在每张卡上自动打开,用户需要在训练代码中添加打开工具开关的调用: ```Python import api_accuracy_checker.dump as DP DP.dump.set_dump_switch("ON") ``` - 上述代码要添加在迭代前向的代码段中,或者说是遍历数据集循环的代码段中。如对于GPT-3可以添加在pretrain_gpt.py 的forward_step函数中。之后工具会适配这个场景开关的自动打开。 + 上述代码要添加在迭代前向的代码段中,或者说是遍历数据集循环的代码段中。如对于GPT-3可以添加在pretrain_gpt.py 的forward_step函数中。之后工具会适配这个场景开关的自动打开。 # 溢出API解析工具 -- Gitee