From 87a74079214f99e1632344a1b0423f98ec594667 Mon Sep 17 00:00:00 2001 From: l30044004 Date: Thu, 8 Aug 2024 10:29:06 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=86=E7=BA=A7=E5=8F=AF=E8=A7=86?= =?UTF-8?q?=E5=8C=96=E5=B7=A5=E5=85=B7readme=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../msprobe/pytorch/visualization/README.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 debug/accuracy_tools/msprobe/pytorch/visualization/README.md diff --git a/debug/accuracy_tools/msprobe/pytorch/visualization/README.md b/debug/accuracy_tools/msprobe/pytorch/visualization/README.md new file mode 100644 index 000000000..77e0c2866 --- /dev/null +++ b/debug/accuracy_tools/msprobe/pytorch/visualization/README.md @@ -0,0 +1,127 @@ +# PyTorch模型分级可视化工具 + +分级可视化工具将MindStudio精度调试工具dump的精度数据进行解析,还原模型图结构,实现模型各个层级的精度数据比对,方便用户理解模型结构、分析精度问题。 + +工具支持PyTorch版本:2.1/2.2 + +## 1.依赖安装 + +分级可视化工具依赖**MindStudio精度调试工具**和**tensorboard。** + +### 安装MindStudio精度调试工具 + +[MindStudio精度调工具安装](https://gitee.com/louyujing/att_graph/tree/master/debug/accuracy_tools/msprobe#%E5%B7%A5%E5%85%B7%E5%AE%89%E8%A3%85) + +### 安装tensorboard + +[tensorboard下载](https://mindstudio-sample.obs.cn-north-4.myhuaweicloud.com/tbgraph/tensorboard-2.15.1-py3-none-any.whl) + +``pip3 install``即可。 + +## 2.dump模型结构数据 +[数据采集](https://gitee.com/ascend/mstt/blob/master/debug/accuracy_tools/msprobe/pytorch/doc/dump.md) + +**需要选择level为L0(module信息)或者mix(module信息+api信息),才能采集到模型结构数据**。 + +## 3.生成图结构文件 + +### 下载分级可视化源码 + +``` +git clone https://gitee.com/ascend/mstt.git +cd mstt/debug +git checkout poc +``` + +### 图构建和比对 + +**如果只是想查看一个模型的结构,请选择单图构建**; +**如果想比较两个模型的结构差异和精度数据差异,请选择双图比对**。 + +将**dump_path/step?/rank?**传入构图接口,总之传入的路径下必须包含dump.json、construct.json和stack.json。 + +#### 单图构建 + +展示模型结构和精度数据。 + +**在分级可视化源码mstt/debug路径下创建.py文件,执行如下python代码**: + +``` +from accuracy_tools.msprobe.pytorch import build_graph + +dump_path = 'dump_path/step0/rank0' +out_path = 'out_path' +build_graph(dump_path, out_path) +``` + +#### 双图比对 + +展示模型结构、结构差异、精度数据和精度比对指标、精度是否疑似有问题(精度比对指标差异越大颜色越深)。 + +当前比对支持三种类型的dump数据,分级可视化工具比对时会自动判断: +1.统计信息:仅dump了API和Module的输入输出数据统计信息,占用磁盘空间小; +2.真实数据:不仅dump了API和Module的输入输出数据统计信息,还将tensor进行存盘,占用磁盘空间大,但比对更加准确; +3.md5:dump了API和Module的输入输出数据统计信息和md5信息。 +dump如何配置见[数据采集](https://gitee.com/ascend/mstt/blob/master/debug/accuracy_tools/msprobe/pytorch/doc/dump.md) + +**在分级可视化源码mstt/debug路径下创建.py文件,执行如下python代码**: + +``` +from accuracy_tools.msprobe.pytorch import compare_graph + +npu_path = 'dump_path_npu/step0/rank0' +bench_path = 'dump_path_bench/step0/rank0' +out_path = 'out_path' + +compare_graph(npu_path, bench_path, out_path) +``` + + +比对完成后将在**out_path**下生成一个**.vis文件。** + +## 4.启动tensorboard + +将生成vis文件的路径**out_path**传入--logdir + +``` +tensorboard --logdir out_path --bind_all +``` + +启动后会打印日志。 +``TensorBoard 2.15.1 at http://localhost.localdomain:6008/ (Press CTRL+C to quit)`` +localhost.localdomain是机器地址,6008是端口号。 + +**如果链接打不开,可以尝试使用vscode连接服务器,在vscode终端输入:** + +``` +tensorboard --logdir out_path +``` + +CTRL+C点击链接即可 + +## 5.浏览器查看 + +推荐使用谷歌浏览器,在浏览器中输入机器地址+端口号回车,出现TensorBoard页面,右上方选择GRAPHS即可展示模型结构图。 + +节点需要双击打开。 + +## 6.图比对说明 + +### 颜色 + +颜色越深,精度比对差异越大,越可疑。 + +### 疑似有精度问题判定 + +#### 真实数据模式 +所有输入的最小双千指标和所有输出的最小双千指标的差值的绝对值,大于0.1。 + +``One Thousandth Err Ratio(双千分之一)、Five Thousandths Err Ratio(双千分之五)精度指标:是指NPU的Tensor中的元素逐个与对应的标杆数据对比,相对误差大于千分之一、千分之五的比例占总元素个数的比例小于千分之一、千分之五`` + +#### 统计信息模式 +所有输入输出的统计量相对diff值,大于0.5,其中小值域相对diff值(小于1e-3)不参与判定。 + +``相对diff值:abs((npu统计值 - bench统计值) / bench统计值)`` + +#### md5模式 +任意输入输出的md5值不同。 -- Gitee From 563b28e695948b2d068a6d9f88b769fa4aeb687e Mon Sep 17 00:00:00 2001 From: l30044004 Date: Fri, 9 Aug 2024 11:06:52 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=A3=80=E8=A7=86=E6=84=8F=E8=A7=81?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debug/accuracy_tools/msprobe/pytorch/visualization/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debug/accuracy_tools/msprobe/pytorch/visualization/README.md b/debug/accuracy_tools/msprobe/pytorch/visualization/README.md index 77e0c2866..62ab98cda 100644 --- a/debug/accuracy_tools/msprobe/pytorch/visualization/README.md +++ b/debug/accuracy_tools/msprobe/pytorch/visualization/README.md @@ -38,7 +38,7 @@ git checkout poc **如果只是想查看一个模型的结构,请选择单图构建**; **如果想比较两个模型的结构差异和精度数据差异,请选择双图比对**。 -将**dump_path/step?/rank?**传入构图接口,总之传入的路径下必须包含dump.json、construct.json和stack.json。 +将**dump_path/step{id}/rank{id}**传入构图接口,总之传入的路径下必须包含dump.json、construct.json和stack.json。 #### 单图构建 -- Gitee From 0d75a27b5b53803cd7365a49c5fd6255ed66a397 Mon Sep 17 00:00:00 2001 From: l30044004 Date: Fri, 9 Aug 2024 14:43:57 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=A3=80=E8=A7=86=E6=84=8F=E8=A7=81?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../accuracy_tools/msprobe/pytorch/visualization/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debug/accuracy_tools/msprobe/pytorch/visualization/README.md b/debug/accuracy_tools/msprobe/pytorch/visualization/README.md index 62ab98cda..4f2f5da37 100644 --- a/debug/accuracy_tools/msprobe/pytorch/visualization/README.md +++ b/debug/accuracy_tools/msprobe/pytorch/visualization/README.md @@ -10,7 +10,7 @@ ### 安装MindStudio精度调试工具 -[MindStudio精度调工具安装](https://gitee.com/louyujing/att_graph/tree/master/debug/accuracy_tools/msprobe#%E5%B7%A5%E5%85%B7%E5%AE%89%E8%A3%85) +[MindStudio精度调试工具安装](https://gitee.com/louyujing/att_graph/tree/master/debug/accuracy_tools/msprobe#%E5%B7%A5%E5%85%B7%E5%AE%89%E8%A3%85) ### 安装tensorboard @@ -38,7 +38,7 @@ git checkout poc **如果只是想查看一个模型的结构,请选择单图构建**; **如果想比较两个模型的结构差异和精度数据差异,请选择双图比对**。 -将**dump_path/step{id}/rank{id}**传入构图接口,总之传入的路径下必须包含dump.json、construct.json和stack.json。 +将dump_path/step{id}/rank{id}传入构图接口,总之传入的路径下必须包含dump.json、construct.json和stack.json。 #### 单图构建 @@ -77,7 +77,7 @@ compare_graph(npu_path, bench_path, out_path) ``` -比对完成后将在**out_path**下生成一个**.vis文件。** +比对完成后将在**out_path**下生成一个**vis后缀文件**。 ## 4.启动tensorboard -- Gitee