文件最后提交记录最后更新时间
Fix T-FSM OOM: DFS scheduling + shrink_to_fit + mimalloc + profiling counters for embeddings_store monitoring Co-authored-by: Karifannaa<ruslan.khrulev@h-partners.com> 2 个月前
feat(modelvis): 添加 git bash 可以运行的构建脚本 Co-authored-by: AtlasAccount<AtlasAccount@noreply.gitcode.com> Co-authored-by: hummel mao<gtenbay@163.com> 5 个月前
更新文档图片,添加缩略图功能介绍 Co-authored-by: heiheihei<1395202740@qq.com> 7 个月前
Fix T-FSM OOM: DFS scheduling + shrink_to_fit + mimalloc + profiling counters for embeddings_store monitoring Co-authored-by: Karifannaa<ruslan.khrulev@h-partners.com> 2 个月前
feat: ModelVis plugin后端部分代码 Signed-off-by: 空白 <3440771474@qq.com> 1 年前
feat(README, package.json, .gitignore): 更新打包依赖说明,添加测试覆盖率步骤和相关脚本 Co-authored-by: hummel mao<gtenbay@163.com> 6 个月前
feat: ModelVis plugin后端部分代码 Signed-off-by: 空白 <3440771474@qq.com> 1 年前
Fix T-FSM OOM: DFS scheduling + shrink_to_fit + mimalloc + profiling counters for embeddings_store monitoring Co-authored-by: Karifannaa<ruslan.khrulev@h-partners.com> 2 个月前
Fix T-FSM OOM: DFS scheduling + shrink_to_fit + mimalloc + profiling counters for embeddings_store monitoring Co-authored-by: Karifannaa<ruslan.khrulev@h-partners.com> 2 个月前
切换包管理工具为pnpm,添加eslint规则 Co-authored-by: heiheihei<1395202740@qq.com> 5 个月前
README.md

ModelVis

一、介绍

ModelVis 是一个跨平台的桌面应用程序,专为可视化AI大模型的图结构数据而设计。 它支持多种文件格式,包括 ONNX、MindIR、GEIR、PBTXT (以 protobuf 格式序列化) 文件类型和 PyTorch 开启调试时导出的调试图 DOT 文件,并允许用户深入探索和理解复杂的神经网络架构。

ModelVis 是一个轻量级工具,用于可视化机器学习模型。受 Netron 的启发,具有更好的性能。

1.1 特性

  • 交互式: 可视化图形
  • 快速: 由 Rust 驱动的解析和布局
  • 流畅: 由 WebWorker 驱动的渲染
  • 广泛格式兼容: 支持 ONNX、MindIR、GEIR、PBTXT 和 DOT 文件类型的导入。
  • 子图导航: 轻松查看嵌套的子图结构,并支持跳转子图和返回上一层级。
  • 重复结构(FSG)搜索: 识别并定位重复的算子结构,以支持算子融合,从而优化模型性能。
  • 性能分析: 最新版本支持导入昇腾 msprof 采集的 Profiling 数据,帮助用户分析算子运行耗时和内存搬运时间。

二、安装教程

请访问 Releases(临时) 页面下载适用于您操作系统的安装包。按照安装向导完成安装过程。

  • MacOS 版本: Ventura 13.5 及以上
  • Windows 版本: Win 10 及以上

2.1 Mac 安装问题

2.1.1 打开报错

Mac 安装问题打开报错

解决方法:在控制台输入指令 xattr -cr /Applications/ModelVis.app

三、使用说明

3.1 文件导入

打开首页,然后点击页面中间的上传按钮。 文件导入 文件导入方法二

3.2 图可视化展示

选择文件后,应用程序将显示图形数据的布局。 可视化展示图形布局

3.2.1 查看节点、边详情

点击一个节点将显示其名称、操作类型、输入和输出。 节点信息 边信息

3.2.2 动态形状算子节点

注意:动态形状算子节点功能依赖模型结构信息,具有动态算子的模型才会显示这个功能。

动态形状,在 PyTorch 文档中称作 Dynamic Shape,在 vLLM 文档中称作 Symbolic Shape。 我们这里沿用 PyTorch 的说法。

显示动态节点的列表,点击后滚动到该节点。 动态形状算子

3.3 子图跳转

注意:子图跳转功能依赖模型结构信息,具有子图的模型才会显示这个功能。

点击子图节点,页面将跳转以显示子图的布局。(子图节点有两种颜色。绿色表示子图布局完成,红色表示子图布局未完成。只有绿色的子图节点可点击。) 点击子图节点 子图内容展示

点击左下角工具提示中的面包屑导航上的上一个图表,页面将跳转到上一个图表。 子图返回主图

3.4 搜索节点、跳转

点击左上角搜索框,输入节点名称,点击搜索按钮,将使相应的结果在屏幕上居中。 搜索节点,点击结果 搜索结果跳转

3.5 重复结构(FSG)搜索

点击左下角工具提示中的 FSG 按钮,以切换 FSG (Frequent Substructure Graph) 功能的可见性。 查找重复结构

选中表格一行,可查看这类重复结构中的一个图形在图中的位置。 重复结构图形查看

  1. 点击表格内的“上”、“下”箭头,可以上下跳转,查看某一个具体重复结构图形: 跳转具体的重复结构图形的箭头按钮;
  2. 打开表头的“全部结构”开关,可以查看这类重复结构的全部图形:显示全部重复结构图形的开关

3.6 Profiling 数据导入,耗时分析

在 FSG 的模态框中点击 “导入CSV” 按钮以导入配置数据。

注意:Profiling 数据是对重复结构(FSG)功能的增强,用于展示重复结构的算子运行耗时和内存搬运时间,找到耗时长的算子,从而建议哪些算子融合,提高模型效率。

通常 Profiling 数据是和模型结构数据配套的,通过脚本获取,一起导出。导入非配套的 Profiling 数据可能会得到错误的耗时结果。

获取 Profiling 数据的工具:msprof

导入 Profiling CSV 数据

只允许导入 kernel_details.csvop_summary*.csv 这两种命名方式的 CSV 文件。

导入后显示耗时的计算结果

3.7 缩略图

点击左下角工具提示中的 Minimap 按钮,可以打开缩略图,查看当前可视窗口展现的是模型的哪一部分。 显示缩略图

四 打包时依赖

确保安装 Maven 与 GraalVM 并配置好环境变量

其中 GraalVM 的环境变量设置:

GRAALVM_HOME = "{GraalVM安装路径}"
PATH += "{GraalVM安装路径}/bin"

环境配置好后,根据您的操作系统,在/build目录下选择您的系统,运行build_release脚本即可

mac用户可能需要先安装brew install protobuf

若您需要切换Maven源,脚本可以接受一个参数,表示您的Maven setting文件的路径。

五 开发者测试与覆盖率

当需要运行测试用例,检查测试覆盖率时,需要做以下步骤。

5.1 安装 cargo-tarpaulin

cargo install cargo-tarpaulin

5.2 运行测试脚本

app/package.json 中启动脚本

pnpm run cargo-test

完成后,将会生成 reports 文件夹记录测试覆盖率