Angel-SNIP 高效机器学习模型压缩套件开源项目

我要开发同款
匿名用户2023年07月25日
81阅读
开发技术Python
所属分类人工智能、机器学习/深度学习
授权协议MIT

作品详情

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

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论