MindSpore Golden Stick 文档
MindSpore Golden Stick(金箍棒)是MindSpore团队和华为诺亚团队联合设计开发的一个模型压缩工具。我们有两大目标:
我们希望构建MindSpore开源生态的模型压缩能力,并提供简洁易用的接口方便用户提升MindSpore网络的部署效率;
我们希望屏蔽框架和硬件的复杂性,为模型压缩算法提供扩展性良好的基础能力。
MindSpore Golden Stick基于MindSpore内置的模型压缩技术和组件化设计,具备如下特点:
SoTA算法: 金箍棒中的模型压缩算法主要有两大来源,一个是业界的SoTA的算法,我们会持续在MindSpore生态上跟进;另一个是华为算法团队提供的创新性算法;
接口易用: 金箍棒提供类Transformers的接口,并且支持直接将Hugging Face社区的权重进行压缩,输出的权重同样符合Hugging Face社区权重格式;
分层解耦: 金箍棒致力于构建易用的算法预研平台,我们对框架做了分层和模块化设计,一方面屏蔽框架和硬件的复杂性,另一方面方便算法工程师在算法不同层级快速进行创新和实验;
硬件适配: 支持在昇腾硬件上将Hugging Face的权重进行量化,并在vllm-MindSpore Plugin或MindSpore Transformers上进行部署。
用户可以参阅 架构设计 ,快速了解MindSpore Golden Stick的系统架构。
如果您对MindSpore Golden Stick有任何建议,请通过 issue 与我们联系,我们将及时处理。
使用MindSpore Golden Stick进行模型压缩
MindSpore Golden Stick提供了统一的模型压缩接口,支持训练后量化(PTQ)、量化感知训练(QAT)、模型剪枝等多种压缩技术,可以通过以下说明文档进行学习:
当前金箍棒的工作主要聚焦在LLM网络和多模态理解网络的压缩上,主要使用训练后量化技术。QAT算法、剪枝算法主要针对CV网络,技术已经相对陈旧,当前已经不再演进和维护。后续我们也可能规划一些针对LLM网络的QAT或者剪枝算法,也欢迎大家在社区贡献代码或者提交需求。
MindSpore Golden Stick支持算法列表
训练后量化(PTQ):
-
训练后量化的基础原理和常见方案。
-
华为泰勒团队与MindSpore团队联合开发的创新算法,提供更高精度的A8W8量化能力。
-
结合OutlierSuppressionLite和GPTQ算法,实现层级混合精度量化。
-
支持A16W8量化,提供基础的权重量化能力。
-
支持A8W8量化,通过平滑激活值分布提升量化精度。
-
支持A16W4量化,通过激活感知权重量化提升低比特量化效果。
-
支持A16W4量化,基于梯度的训练后量化算法。
-
支持per-token动态量化,在推理过程中实时计算量化参数。
-
量化感知训练(QAT):
剪枝:
部署集成
贡献指南
RELEASE NOTES