云服务器内容精选
-
逐个替换模型,检测有问题的模型 该方式主要是通过模型替换,先定位出具体哪个模型引入的误差,进一步诊断具体的模型中哪个算子或者操作导致效果问题,模型替换原理如下图所示。通过设置开关选项(是否使用onnx模型),控制模型推理时,模型使用的是onnx模型或是mindir的模型。 图1 精度诊断流程 一般情况下,onnx模型推理的结果可以认为是标杆数据,单独替换某个onnx模型为MindSpore Lite模型,运行得到的结果再与标杆数据做对比,如果没有差异则说明pipeline的差异不是由当前替换的MindSpore Lite模型引入。 如果有差异,则说明当前模型与原始onnx的结果存在差异。依次单独替换onnx模型为对应的MindSpore Lite模型,从而定位出有差异的模型。在模型初始化的代码块已经添加了use_ascend参数,修改参考如下: 图2 代码修改 以上述现象为例,通过修改use_ascend参数值对模型替换,可以发现:当text_encoder模型为onnx模型,其余模型为mindir模型时,能够得到和标杆数据相同的输出,因此可以判断出转换得到的text_encoder模型是产生pipeline精度误差的根因。通过下一小节可以进一步确认模型精度的差异。
-
使用精度对比工具ait debug compare 在模型转换场景,误差的累积和算子溢出等都可能导致转换后的模型存在误差。当识别到模型误差较大时,可以使用一键式全流程精度比对工具ait debug compare对比转换前的onnx模型和转换后的OM模型。 使用该工具对比onnx模型和OM模型,指定onnx模型路径、 OM模型路径、生成文件的路径以及模型输入shape的信息。其中,-o表示对比结果的保存路径,需要是一个已经存在的路径。 #shell ait debug compare -gm ./model.onnx -om ./text_encoder.om -o ./ --input-shape "input_ids:1,77" 执行成功后,会在指定输出目录下输出{timestamp}文件夹,打开对应的文件夹,可以看到result_{timestamp}.csv文件,该文件统计了各个图算子在推理过程中的日志信息。具体各个字段代表的含义可以参考昇腾整网对比文档。 排查精度问题时可以通过检索.csv文件中CosineSimilarity(余弦相似度)和MaxAbsoluteError(最大绝对误差)两列的信息定位第一个发生突变的算子。一般认为余弦相似度小于0.99时算子的精度有偏差,这种情况表明:该突变行对应的Ascend算子和onnx算子的执行结果存在较大差异,从而将排查重点锁定在对应的算子上。 如下图所示,最大绝对误差在Trilu_233这个算子处发生突变(溢出)。如果用户对模型比较了解,可以继续排查模型网络中使用这个算子的地方,否则需要向华为工程师求助。 图3 误差分析 该算子精度问题是由MindSpore Lite 2.1.0版本引入,在华为工程师修复该问题后,端到端的pipeline模型的输出能够对齐。 图4 修复后推理结果
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格