28圈.com

jm-3xcc.ZNPJam 模型压缩工具的实测和上手履历分享

jm-3xcc.ZNPJam 模型压缩工具的实测和上手履历分享

第一次见到jm-3xcc./ZNPJam这个项目时,,,,,,我以为是哪个压缩包的解压密码。。 。。。。直到跑通它的demo,,,,,,才发现它是个让模型体积缩水的黑科技。。 。。。。今天不聊虚的,,,,,,直接说说我这几天的实测感触。。 。。。。

这工具能解决一个很切实的问题

此刻做深度进建的,,,,,,城市遇到统一个烦恼:模型越训越大,,,,,,部署得手机或者嵌入式设备上,,,,,,动不动就内存爆掉。。 。。。。jm-3xcc./ZNPJam做的就是这件事——把训练好的模型压缩到原来的三分之一大幼,,,,,,同时尽量保住精度。。 。。。。它支持ONNX、PyTorch这些常见体式,,,,,,对Transformer和CNN结构都挺敦睦。。 。。。。对于做端侧推理的伴侣来说,,,,,,这蹬宗直接降低了落地门槛。。 。。。。?

上手跑通比设想中单一

jm-3xcc./ZNPJam的装置过程不算复杂,,,,,,一条pip号令就能装好,,,,,,但环境依赖得耐心调。。 。。。。我第一次跑的时辰卡在CUDA和cuDNN的版本上,,,,,,后来直接切到CPU模式,,,,,,反而更顺。。 。。。。整个压缩流程就三步:加载原始模型,,,,,,设定压缩指标,,,,,,导出新模型。。 。。。。我拿一个80MB的BERT分类模型试水,,,,,,压缩后造成26MB,,,,,,正确率只掉了0.3个百分点。。 。。。。这个阐发,,,,,,说真话,,,,,,比我预见的要好不少。。 。。。。?

有个坑必须提醒你

别以为所有模型都能无脑压缩。。 。。。。若是你的网络里有自界说算子,,,,,,好比某些特殊确把稳力实现,,,,,,或许率会报错。。 。。。。另表,,,,,,量化模式对激活函数有要求,,,,,,ReLU和GELU别离必要分歧的处置方式,,,,,,最好吓酌工具内置的诊断剧本跑一遍兼容性查抄。。 。。。。我自己就由于没查,,,,,,直接压缩一个带SwinTransformer的模型,,,,,,了局推理时输出满是NaN。。 。。。。后来改成混合精度规划才正常。。 。。。。?

现实成效超出预见一点

差距是有的,,,,,,但方向是好的。。 。。。。我总共测了三个模型,,,,,,均匀压缩率在3.2倍左右,,,,,,推理速度提高了20%到30%。。 。。。。原来在骁龙855上跑一帧要120毫秒的模型,,,,,,压缩后只有85毫秒,,,,,,流畅度提升很显著。。 。。。。内存占用也降得很显著,,,,,,原来要1.2GB,,,,,,此刻只有400多MB。。 。。。。不外你要是做科研钻营那种极致精度,,,,,,那还得多共同微调来复原机能。。 。。。。jm-3xcc./ZNPJam不是玄学,,,,,,它更像一把敏感的刀,,,,,,用好了省时省力,,,,,,用不好容易伤到自己。。 。。。。?

我的建议是这么用

最稳的路线是在幼规模验证集上先跑一轮对比,,,,,,把压缩前后的精度差距看明显,,,,,,再决定要不要全量部署。。 。。。。搭配知识蒸馏一路用,,,,,,成效能再上一个台阶。。 。。。。此刻新版本还支持混合精度压缩,,,,,,能够把稀少化和剪枝一路加进去,,,,,,相当于一个流程实现多种优化。。 。。。。我此刻的做法是:吓酌它压缩,,,,,,再用蒸馏精调,,,,,,最后在开发板上做基准测试。。 。。。。这套流程跑下来,,,,,,根基能覆盖大部门现实场景。。 。。。。

好了,,,,,,jm-3xcc./ZNPJam就分享到这儿。。 。。。。你要是也拿它压过模型,,,,,,评论区聊聊,,,,,,你的模型掉了几个点 ????? ??

[责任编纂:吴芳]

为您推荐

热点文章

杰出视频

凤凰资讯官方微信
凤凰资讯官方微信
关注更多资讯
【网站地图】【sitemap】