一种大模型MLIR图例可视化编辑方法及产品与流程

摘要: 本技术涉及大模型编译,具体而言本技术实施例涉及一种大模型mlir图例可视化编辑方法及产品。背景技术:1、大模型推理、量化及算子定制开发均依赖mlir(多层级中间...
一种大模型MLIR图例可视化编辑方法及产品与流程

本技术涉及大模型编译,具体而言本技术实施例涉及一种大模型mlir图例可视化编辑方法及产品。

背景技术:

1、大模型推理、量化及算子定制开发均依赖mlir(多层级中间表示)作为编译基础设施。研发人员在大模型算子优化与调优过程中,需要直观查看算子数据流图,并对算子批量标记自定义算子的属性信息或目标绑定属性。

2、目前,mlir算子图的可视化方案主要包括以下几类。

3、一、原生graphviz离线可视化方案

4、llvm-mlir官方提供view-op-graph工具,可将mlir文件转换为dot文本格式,并借助graphviz渲染生成png或svg矢量图。该方案仅能实现算子图的静态展示,配套的emit-op-map工具可输出算子id与图形节点的映射json文件,用于辅助算子定位。研发人员在该方案下的编辑流程为:在linux环境下生成svg图后,通过截图或人工记录算子id,再手动在代码中硬编码target或custom_op_name等编译属性。该流程中,图形的查看与属性的编辑相互割裂,缺乏可视化的标注交互能力。

5、二、网页端前端可视化工具

6、基于web前端渲染引擎(如d3.js等)构建的mlir算子图可视化工具,支持鼠标框选节点等交互操作。然而,该类工具强依赖于浏览器环境,无法在离线环境下独立运行,且跨windows与linux编译后端的协同存在困难。编辑完成后,需要将标注结果导出为独立的json脚本,后端需二次解析该json文件后才可注入mlir,增加文件转换流程和系统复杂度。

7、三、本地一体化编译可视化工具

8、部分本地化工具(如turbolizer、netron等)能够提供模型结构或权重图的本地可视化,但均不兼容mlir自定义属性的标注与编辑,且仅支持单节点逐一点击修改,无法实现批量框选算子并批量写入编译属性。在大模型算子图动辄包含上千节点的场景下,单点操作效率极低。

9、综上,现有mlir图例可视化编辑工具主要存在以下技术缺陷。

10、其一,跨平台协同能力不足,编译与编辑环境分离。mlir编译后端通常仅部署于linux服务器,而研发人员日常使用windows终端进行开发,现有工具缺乏统一的跨平台交互链路。在linux端生成图形后,需人工记录算子id并手动修改mlir源码,修改后重新编译验证,迭代链路长且易引入人工错误。

11、其二,缺乏原生交互式图例标注能力,批量算子标记效率低下。graphviz方案仅输出静态图,无框选标注交互;前端框选类工具需将标注信息存储为独立编辑脚本,后端解析时需额外处理文件格式转换与坐标映射,且大规模算子图场景下单点修改耗时严重。

12、其三,文件传输与坐标体系不统一,导致算子匹配错位。图形文件、算子映射json、编辑脚本等多文件分离传输,前端坐标系与后端坐标系相互独立,框选标注坐标无法直接复用,容易出现标注框与mlir算子节点错位,进而导致属性绑定错误。

13、其四,环境依赖复杂,部署门槛高。若在windows端实现完整mlir解析与编辑功能,需编译llvm/mlir全套依赖,编译耗时巨大;离线办公环境无法联网安装依赖,工具分发和使用门槛较高。

14、其五,编辑结果无法随图形载体原生携带,溯源困难。标注信息独立存储于json或文本文件,图形与编辑脚本分离,文件丢失或版本混淆后无法追溯历史标注记录,多轮迭代时需手动维护多份编辑脚本,版本管理混乱。

技术实现思路

1、本技术实施例的目的在于提供一种大模型mlir图例可视化编辑方法及产品,本技术一些实施例将标注信息直接注入svg文件内部形成单一可流转文件,避免传统方案中图形、算子映射、编辑脚本多文件分离导致的版本混乱和文件丢失问题;同时,后端可利用同一svg文件直接解析标注,无需额外坐标转换脚本,提升全流程自动化程度,且本技术的实施例可以通过绘制标注区域对需要进行批量修改属性信息的多个算子进行统一操作,有效改善单点操作效率极低的问题。

2、第一方面,本技术的实施例提供一种大模型mlir图例可视化编辑方法,所述大模型mlir图例可视化编辑方法包括:获取由后端生成的原始svg矢量图;在所述原始svg矢量图上绘制标注区域,并获取所述标注区域的位置信息以及与所述标注区域对应的属性信息,其中,所述位置信息表征所述标注区域在所述全局坐标系中的几何边界,所述属性信息表征待注入的编译属性,所述编译属性包括类型名称和取值;将表征所述标注区域、所述位置信息以及所述属性信息的标注图层数据写入所述原始svg矢量图对应的svg文件中,得到带标注的svg文件;将所述带标注的svg文件发送至所述后端,以供所述后端根据所述带标注的svg文件匹配对应的算子节点并向匹配到的算子节点注入所述编译属性,得到目标mlir文件。

3、本技术实施例将标注信息直接注入svg文件内部形成单一可流转文件,避免传统方案中图形、算子映射、编辑脚本多文件分离导致的版本混乱和文件丢失问题;同时,后端可利用同一svg文件直接解析标注,无需额外坐标转换脚本,提升全流程自动化程度,且本技术的实施例可以通过绘制标注区域对需要进行批量修改属性信息的算子进行统一操作,有效改善单点操作效率极低的问题。

4、在一些实施例中,所述位置信息包括所述标注区域在所述全局坐标系中的横坐标、纵坐标、宽度和高度。

5、本技术的实施例的位置信息表现为标注区域的几何边界参数,例如,左上角横坐标x、左上角纵坐标y、矩形宽度width和矩形高度height。这四项数据是后端进行矩形碰撞检测以匹配算子节点的完整数据基础。将位置信息明确为四元组,以标准几何参数定义标注区域,使前后端对标注框的范围判定具有统一的数学依据,保证覆盖判别的一致性。

6、在一些实施例中,所述将表征所述标注区域、所述位置信息以及所述属性信息的标注图层数据写入所述原始svg矢量图对应的svg文件中,得到带标注的svg文件,包括:将与所述原始svg矢量图对应的svg文件解析为xml文档树;在所述xml文档树的根节点内部创建独立图层节点,其中,所述独立图层节点采用与所述原始svg矢量图的原始图形图层相区分的预设方式标识,以使所述后端解析时能够识别所述独立图层节点;将与所述标注区域对应的所述位置信息和所述属性信息序列化为图形标签,其中,所述图形标签采用与所述属性信息的类型相对应的预设方式携带编译属性类型指示信息,以使所述后端解析时能够根据所述指示信息确定待注入的编译属性的类型;将所述图形标签作为子节点挂载至所述独立图层节点下,得到所述带标注的svg文件。

7、本技术的实施例采用xml dom树节点追加方式写入标注图层,保证原始svg中的算子坐标、样式与布局不被修改或重新编码,实现标注信息与原始图形的无损共存,同时后端可通过固定的图层标识快速定位标注数据,提升解析效率。

8、在一些实施例中,所述在所述原始svg矢量图上绘制标注区域,包括:响应于鼠标拖拽操作,获取鼠标在屏幕上的像素位置;读取当前画布的缩放倍数和滚动条偏移量;根据所述缩放倍数和所述滚动条偏移量,将所述屏幕像素位置逆映射为所述全局坐标系下的逻辑坐标;根据所述逻辑坐标确定是否在所述原始svg矢量图上生成所述标注区域。

9、本技术的实施例通过实时逆映射将屏幕像素坐标转换为svg原生逻辑坐标,消除视图缩放、平移带来的坐标系偏差,确保无论用户当前视图如何变化,存储的标注区域坐标始终与graphviz输出的原始graph0坐标系对齐,避免标注框与算子节点错位的问题。

10、在一些实施例中,所述滚动条偏移量包括水平滚动条偏移量和垂直滚动条偏移量,其中,所述将所述屏幕像素位置逆映射为所述全局坐标系下的逻辑坐标,包括:将所述屏幕像素位置的横坐标与所述水平滚动条偏移量相加后除以所述缩放倍数,得到所述逻辑坐标的横坐标;将所述屏幕像素位置的纵坐标与所述垂直滚动条偏移量相加后除以所述缩放倍数,得到所述逻辑坐标的纵坐标。

11、本技术的实施例的逆映射公式为:逻辑横坐标 = (屏幕横坐标 + 水平滚动偏移量) / 缩放倍数,逻辑纵坐标 = (屏幕纵坐标 + 垂直滚动偏移量) / 缩放倍数,该算法将复杂的仿射变换逆运算简化为加法和除法,计算效率高且精度损失较小。

12、在一些实施例中,所述根据所述逻辑坐标确定是否在所述原始svg矢量图上生成所述标注区域,包括:将所述逻辑坐标与所述原始svg矢量图的边界进行比对;若所述逻辑坐标位于所述原始svg矢量图的有效绘图区域之外,则放弃将所述逻辑坐标确定为所述标注区域的顶点;若所述逻辑坐标位于所述原始svg矢量图的有效绘图区域之内,则将所述逻辑坐标确定为所述标注区域的一个顶点。

13、本技术的实施例限定逆映射后的有效性验证步骤,当用户拖拽鼠标至画布有效区域之外时(如滚动条拖拽过度导致视野超出svg边界),逆映射得到的逻辑坐标可能落在有效绘图区域之外。本技术的实施例通过边界比对过滤无效坐标,避免产生无法匹配任何算子的无效标注区域。也就是说,本技术的实施例在绘制过程中对坐标进行实时边界校验,自动过滤超出svg有效绘图区域的无效标注,防止写入非法坐标数据,进一步提高文件的鲁棒性。

14、在一些实施例中,所述大模型mlir图例可视化编辑方法,还包括:将所述标注区域存储于内存中的全局状态容器,其中,所述全局状态容器包含当前生效的标注区域列表和撤销历史栈;响应于撤销指令,将所述当前生效的标注区域列表回退至所述撤销历史栈中存储的历史状态。

15、本技术的实施例通过内存中的全局状态容器管理标注历史,支持对已绘制标注框的撤销操作,允许用户逐步回退错误框选,提升大标注过程中的操作容错率和编辑效率。

16、在一些实施例中,所述全局状态容器还包括重做栈;所述大模型mlir图例可视化编辑方法,还包括:响应于重做指令,将所述当前生效的标注区域列表前进至所述重做栈中存储的历史状态。

17、本技术的实施例的重做栈与撤销栈对称,存储被撤销的历史状态供恢复使用,撤销和重做构成完整的可回溯操作链,使用户能够在多次试错中自由往返,大幅降低误操作带来的返工成本。

18、在一些实施例中,所述在所述原始svg矢量图上绘制标注区域,并获取所述标注区域的位置信息以及与所述标注区域对应的属性信息,包括:响应于对多种视觉样式中的选择操作,确定目标编译属性类型;响应于鼠标在所述原始svg矢量图上的拖拽操作,获取鼠标在屏幕上的像素位置;根据当前画布的缩放倍数和滚动条偏移量,将所述屏幕像素位置逆映射为所述全局坐标系下的逻辑坐标;根据所述逻辑坐标确定所述标注区域的所述位置信息;根据所述鼠标的拖拽操作,在所述原始svg矢量图上按照与所述目标编译属性类型对应的视觉样式绘制所述标注区域;将所述目标编译属性类型作为所述属性信息的类型,并将所述属性信息的取值确定为预设值或用户输入值。

19、本技术的实施例通过视觉样式直观区分标注类型,用户无需额外操作即可通过颜色或线型识别当前标注所绑定的编译属性类型,提升操作效率和视觉辨识度。不同编译属性类型对应不同视觉样式,使得同一张svg图上多种标注类型的分布更直观,便于大规模算子图的批量标注与后续核查。

20、在一些实施例中,所述在所述原始svg矢量图上绘制标注区域,并获取所述标注区域的位置信息以及与所述标注区域对应的属性信息,包括:响应于鼠标在所述原始svg矢量图上的拖拽操作,获取鼠标在屏幕上的像素位置;根据当前画布的缩放倍数和滚动条偏移量,将所述屏幕像素位置逆映射为所述全局坐标系下的逻辑坐标;根据所述逻辑坐标确定所述标注区域的所述位置信息;根据所述鼠标的拖拽操作,在所述原始svg矢量图上以统一视觉样式绘制所述标注区域;通过交互操作获取编译属性类型及编译属性取值,分别作为所述属性信息的类型和取值。

21、本技术的实施例可以消除颜色作为信息通道的依赖,标注信息由用户主动输入的语义内容决定而非视觉样式决定。该模式兼顾色盲、色弱等视觉障碍研发人员的无障碍使用需求;突破颜色种类有限的限制(人眼可清晰区分的颜色通常不超过七种),理论上可支持无限多种属性类别的扩展,在大规模千级标注框同时显示时,统一视觉样式避免彩虹色块造成的视觉杂乱,降低误读率。

22、在一些实施例中,所述通过交互操作获取编译属性类型及编译属性取值,包括:在绘制所述标注区域之前,通过下拉菜单或单选按钮获取所述编译属性类型;或者,在绘制所述标注区域之后,响应于对所述标注区域的指定操作,弹出属性编辑对话框以获取所述编译属性类型及编译属性取值。

23、在一些实施例中,在所述获取由后端生成的原始svg矢量图之前,所述大模型mlir图例可视化编辑方法,还包括:由所述后端读取所述原始mlir文件;由所述后端将所述原始mlir文件中的算子数据流图转换为dot文本;由所述后端调用图形渲染工具将所述dot文本渲染为所述原始svg矢量图。

24、本技术的实施例提供后端生成原始svg矢量图的具体实现方式,后端先读取原始mlir文件,将其中的算子数据流图转换为dot文本(一种图形描述语言),再调用图形渲染工具(如graphviz)将dot文本渲染为svg矢量图。该过程中,图形渲染工具自动为每个算子节点分配全局坐标系下的独立坐标。

25、在一些实施例中,在所述将所述带标注的svg文件发送至所述后端之后,所述大模型mlir图例可视化编辑方法,还包括:由所述后端解析所述带标注的svg文件,提取所述标注区域的所述位置信息和所述属性信息;由所述后端将所述位置信息与所述原始svg矢量图数据中的全部算子的坐标逐一比对,得到被所述标注区域覆盖的目标算子节点;由所述第一处理端为所述目标算子节点注入与所述属性信息相对应的编译属性得到目标mlir文件。

26、本技术的实施例在接收到前端回传的带标注svg文件后,能够直接对该单一文件进行解析,提取其中标注区域的位置信息及待注入的编译属性信息,并将标注区域在全局坐标系下的几何边界与原始svg矢量图数据中各算子节点的全局坐标进行逐一比对,从而自动、精确地确定被标注区域覆盖的全部目标算子节点。在此基础上,后端自动为目标算子节点注入对应的编译属性并生成目标mlir文件,由此实现从图形化批量标注到mlir编译属性自动回注的完整闭环处理。该过程无需开发人员手动在mlir源码中逐一定位算子或单点编辑属性,显著提升大规模算子属性批量配置的处理效率。同时,由于前后端基于同一svg文件内的全局坐标系进行数据交互与坐标匹配,有效避免传统方式中因坐标系转换、字符串匹配或人工选择不当而导致的算子错绑、漏绑问题,确保编译属性注入的准确性和一致性。

27、在一些实施例中,所述由所述后端将所述位置信息与所述原始svg矢量图数据中的全部算子的坐标逐一比对,得到被所述标注区域覆盖的目标算子,包括:遍历与所述原始svg矢量图对应数据中的全部算子节点;对于当前遍历到的第i算子节点,执行以下判定:若所述标注区域的左边界小于所述第i算子节点的横坐标且所述第i算子节点的横坐标小于所述标注区域的右边界,并且所述标注区域的上边界小于所述第i算子节点的纵坐标且所述第i算子节点的纵坐标小于所述标注区域的下边界,则确定所述第i算子节点被所述标注区域覆盖;遍历完成后,将所有被覆盖的算子节点确定为所述目标算子。

28、本技术的实施例限定后端匹配算子节点的具体算法为坐标主键匹配机制,以算子节点在全局坐标系下的坐标作为唯一匹配标识,而非依赖算子名称或临时id;将标注区域的位置信息(几何边界)与各算子节点的坐标进行覆盖判定(矩形碰撞检测);将落入标注区域覆盖范围内的算子节点判定为匹配节点。算子名称在不同编译优化等级下可能发生变化,本技术实施例以不变的坐标作为匹配依据,消除属性绑定错误。

29、第二方面,本技术的一些实施例提供一种大模型mlir图例可视化编辑方法,所述大模型mlir图例可视化编辑方法包括:由第一处理端根据原始mlir文件生成原始svg矢量图;由第二处理端在所述原始svg矢量图数据上绘制标注区域,并获取所述标注区域的位置信息以及与所述标注区域对应的属性信息,其中,所述位置信息表征所述标注区域在所述全局坐标系中的几何边界,所述属性信息表征待注入的编译属性,所述编译属性包括类型名称和取值;由所述第二处理端将表征所述标注区域、所述位置信息以及所述属性信息的标注图层数据写入与所述原始svg矢量图对应的svg文件中,得到带标注的svg文件,并将所述带标注的svg文件发送至所述第一处理端;由所述第一处理端解析所述带标注的svg文件,提取所述标注区域的所述位置信息及所述属性信息;由所述第一处理端将所述位置信息与所述原始svg矢量图数据中的全部算子的坐标逐一比对,得到被所述标注区域覆盖的目标算子;由所述第一处理端为所述目标算子注入所述属性信息得到目标mlir文件。

30、第三方面,本技术的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如第一方面包括的任意一个实施例所述的大模型mlir图例可视化编辑方法。

31、第四方面,本技术的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面包括的任意一个实施例所述的大模型mlir图例可视化编辑方法。