前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源公告|高效机器学习模型压缩套件Angel -SNIP

开源公告|高效机器学习模型压缩套件Angel -SNIP

作者头像
腾讯开源
发布2023-08-03 09:29:54
2260
发布2023-08-03 09:29:54
举报

伴随着神经网络模型能力的增强,其本身的复杂度也在不断增加。这就造成模型的推理代价持续上升, 使得搜索系统的负载压力在不停增长。因此对模型进行可部署的压缩加速成为了不可或缺的技术需求。

SNIP 是一款基于python的集成“精调+蒸馏+模型加速”为一体的模型上线助力工具。用户只需要提供预训练模型和业务精调数据,并且修改 3~8 行训练代码, SNIP就会自动输出加速后的模型。工具效果方面,通过对多种量化与蒸馏算法的深度优化,我们相比业界方案实现了更高的加速效果,同时在多业务上都成功适配了行之有效的无损加速手段。

SNIP支持作为一个python包进行使用,同时对用户环境的依赖程度低,易于部署并使用,兼顾了效果与灵活性。

SNIP适用场景

  • 受限于现有的机器资源,需要对全精线上模型进行压缩,可以通过SNIP对指定结构的模型进行量化、蒸馏以达到模型加速的效果。
  • 对于需要精调模型的场景,可以单独使用SNIP的蒸馏算法对模型进行效果调优。

SNIP算法方案

SNIP通过对用户模型进行PTQ+QAT的量化处理,由此得到量化后的模型,但由于量化带来的精度损失通常难以通过微调恢复,因此SNIP通过配套的自研蒸馏算法来辅助模型调优,由此达到无损量化的目的。

SNIP功能介绍

  • 支持整套精调、蒸馏和模型量化的流程。
  • 支持蒸馏与量化解耦的使用方式。
  • 具备优秀的易用性,在用户脚本上仅仅需要改动七行代码即可实现量化训练。
  • 支持deepspeed和python启动方式。
  • 支持config或args初始化SNIP。
  • 支持多种可控蒸馏方式。

SNIP易用性展示

SNIP具备优秀的易用性,对于用户脚本的干扰性小,只需要简单的几行初始化操作以及forward和蒸馏操作,便可以轻松使用SNIP工具的精调、蒸馏与量化的流程,减少了用户上线加速模型所需时间,同时做到了高效与易用性。

SNIP项目规划

作为模型压缩加速工具包,SNIP后续将会不断在内部扩充算法、功能,并逐步增加开源内容,例如稀疏、裁剪、长句优化等应用场景广泛的算法。针对不同的模型,不同的训练环境做到多种多样的压缩策略,以满足不同业务生态下的压缩加速需求。

项目开源地址:

https://github.com/Angel-ML/SNIP

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯开源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档