msModelSlim 资料
欢迎来到 msModelSlim 资料,此资料目录将为你提供有关 msModelSlim 快速入门、功能、算法、接口、FAQ等介绍,帮助你更快熟悉 msModelSlim 工具。
msModelSlim 资料将在工具迭代更新中不断完善,有任何问题请联系我们,让我们一起构筑更易用的 msModelSlim 工具!
安装指南
具体安装步骤请查看安装指南
快速入门
| 名称 | 文档 |
|---|---|
| 一键量化快速入门 | 一键量化快速入门 |
支持矩阵
| 类别 | 文档 |
|---|---|
| 大模型支持矩阵 | 大模型支持矩阵 |
功能指南
msModelSlim当前支持两种量化服务:V0量化服务与V1量化服务。
msModelSlim V0量化服务基于旧版msModelSlim量化框架及其Python API 接口实现量化功能,将量化过程分为模型加载、离群值抑制和量化校准与保存三个阶段,可以在离群值抑制和量化校准阶段分别采用一种算法。
随着量化算法日益丰富,模型愈发庞大复杂,msModelSlim认识到仅凭离群值抑制算法和量化算法描述的量化方案无法满足新的模型量化需求,在算法之上还有量化策略,即不同的结构可以采用不同的量化算法;同时,随着模型规模愈发庞大,如何利用受限的资源完成大模型的量化也成为迫在眉睫的问题。
msModelSlim认为量化本质上是对模型局部结构的修改和替换,基于此msModelSlim重新设计了量化框架及其Python API,新框架将局部模块、一个算法和一批数据的结合作为基本校准单元,将量化过程视为一系列的基本校准单元,并搭建了msModelSlim V1 量化服务。
当前使用msModelSlim的方式主要包括:
- 大模型一键量化:通过V0量化服务或V1量化服务实现,用户指定必要参数即可通过命令行快速完成量化;
- 大模型量化敏感层分析:通过V1量化服务实现,用户指定必要参数即可通过命令行快速完成量化敏感层分析;
- 大模型脚本量化:通过V0量化服务实现,用户按基本量化流程搭建量化脚本,实现模型加载、离群值抑制和量化校准与保存三个阶段完成量化;
用户可快速通过推荐实践找到以上方式在已支持模型上的实现,快速完成量化;也可以通过下面的表格内容找到各个功能模块的使用说明,自定义完成量化。
大模型一键量化
| 框架 | 主要模块 | 子模块 | 功能/主题 | 文档 | 相关接口说明 |
|---|---|---|---|---|---|
| PyTorch | 一键量化 | 命令行一键量化 | 大模型训练后量化 | 一键量化使用说明 | 一键量化接口说明 |
| 大模型量化算法 | 异常值抑制算法 Flex Smooth Quant |
Flex Smooth Quant 算法说明 | - | ||
| 异常值抑制算法 Flex AWQ SSZ |
Flex AWQ SSZ 算法说明 | - | |||
| 异常值抑制算法 Iterative Smooth |
Iterative Smooth 算法说明 | - | |||
| 权重量化算法 SSZ |
SSZ 算法说明 | - | |||
| 异常值抑制算法 KV Smooth |
KV Smooth 算法说明 | - | |||
| KVCache 量化算法 | KVCache 量化算法说明 | - | |||
| FA3 量化算法 | FA3 量化算法说明 | - | |||
| 直方图激活量化算法 | 直方图激活量化算法说明 | - | |||
| 激活值阶段间混合量化算法 PDMIX |
PDMIX 算法说明 | - | |||
| 大模型浮点稀疏 | 大模型浮点稀疏 | - |
大模型量化敏感层分析
| 框架 | 模块 | 功能/主题 | 文档 | 相关接口说明 |
|---|---|---|---|---|
| PyTorch | 量化敏感层分析 | 分析量化过程中的精度敏感层 | 量化敏感层分析使用指南 |
接口说明:必需参数 接口说明:可选参数 |
大模型脚本量化
| 框架 | 模块 | 功能/主题 | 文档 | 相关接口说明 |
|---|---|---|---|---|
| PyTorch | 大模型量化 | 大模型训练后量化 | 大模型训练后量化 |
AntiOutlierConfig AntiOutlier process QuantConfig Calibrator run save LayerSelector FakeQuantizeCalibrator |
| FA 量化使用说明 | FA量化使用说明 | FAQuantizer quant |
||
| 低显存量化特性使用说明 | 低显存量化特性使用说明 | - | ||
| 混合校准数据集 | 混合校准数据集 |
CalibrationData |
||
| MindSpeed 适配器 | MindSpeed适配器 |
ModelAdapter AntiOutlierAdapter CalibratorAdapter process() |
||
| 开源权重转换为 msModelSlim 权重 | 开源权重转换为msModelSlim权重 | - | ||
| 大模型稀疏量化 | 大模型稀疏量化 | 大模型稀疏量化 | - | |
| 权重压缩 | 权重压缩 |
CompressConfig Compressor run export export_safetensors |
||
| 多模态生成模型推理优化 | 多模态生成模型推理优化 | 多模态生成模型推理优化 |
DitCache: DitCacheSearchConfig DitCache: DitCacheAdaptor 采样优化接口: ReStepSearchConfig 采样优化接口: ReStepAdaptor |
查看其他功能
其他功能
PyTorch
| 框架 | 模块 | 功能/主题 | 文档 | 相关接口说明 |
|---|---|---|---|---|
| PyTorch | 大模型压缩 | 长序列压缩 | 长序列压缩 |
Alibi编码类型: RACompressConfig Alibi编码类型: RACompressor Alibi编码类型: get_alibi_windows RoPE编码类型: RARopeCompressConfig RoPE编码类型: RARopeCompressor RoPE编码类型: get_compress_heads |
| 伪量化精度测试 | 伪量化精度测试工具 | 伪量化精度测试工具 | - | |
| 常规模型量化 | 训练后量化 | 训练后量化 |
QuantConfig Calibrator get_quant_params export_param export_quant_safetensor export_quant_onnx |
|
| 量化感知训练 | 量化感知训练 |
QatConfig qsin_qat save_qsin_qat_model |
||
| 模型稀疏 | 模型稀疏 | 模型稀疏 |
SparseConfig Compressor compress() |
|
| 稀疏加速训练 | 稀疏加速训练 |
sparse_model_depth sparse_model_width |
||
| 模型剪枝 | Transformer 类模型权重剪枝调优 | Transformer类模型权重剪枝调优 |
add_blocks_params set_steps prune_model_weight |
|
| 基于重要性评估的剪枝调优 | 基于重要性评估的剪枝调优 |
__init__ set_importance_evaluation_function set_node_reserved_ratio analysis prune prune_by_desc |
||
| 模型低秩分解 | 模型低秩分解 | 模型低秩分解 |
__init__ from_ratio from_vbmf from_dict from_file from_fixed decompose_network count_parameters |
MindSpore
| 框架 | 模块 | 文档 | 相关接口说明 |
|---|---|---|---|
| MindSpore | 常规模型训练后量化 | 训练后量化 |
create_quant_config quantize_model save_model |
ONNX
common
| 类别 | 模块 | 文档 | 相关接口说明 |
|---|---|---|---|
| common | 模型蒸馏 | 模型蒸馏 |
get_distill_model set_teacher_train add_inter_soft_label add_output_soft_label set_hard_label add_custom_loss_func |
自主量化
面向需要将自有模型接入 msModelSlim 的开发者,msModelSlim提供了自主量化模型接入指南。
案例集
| 案例分类 | 案例名称 | 说明 |
|---|---|---|
| 量化精度调优 | w8a8精度调优策略 | w8a8精度调优策略指南 |
| w8a16精度调优策略 | w8a16精度调优策略指南 | |
| 稀疏量化调试 | 稀疏量化精度调试案例 | 稀疏量化精度调试方法和案例 |
| 代码集成 | 量化及稀疏量化场景导入代码样例 | 量化和稀疏量化代码集成示例 |
| 权重转换 | msModelSlim量化权重转AutoAWQ&AutoGPTQ使用指南 | 量化权重格式转换指南 |
| 推理部署 | 加速库&MindIE-Torch场景下的量化权重使用案例 | 推理加速库中量化权重使用方法 |
FAQ
FAQ 旨在帮助用户解决一些使用msModelSlim工具时遇到的常见问题,目前正在逐步完善中,msModelSlim将持续补充和更新。
具体FAQ可查看FAQ