开发者
资源
[object Object][object Object]

msModelSlim 提供了两种量化方式:一键量化(V1)传统量化(V0)

  • 一键量化(V1):面向零基础用户,通过命令行方式快速完成量化,具备“开箱即用”的特性。系统会自动匹配最佳实践配置,用户只需指定必要参数即可;此外也支持自定义精细化混合量化策略,灵活性高。
  • 传统量化(V0):通过 Python 脚本方式执行量化,在泛化性、可读性等方面均低于一键量化,已停止演进,通常用于一键量化尚未支持的模型。

下面将以 Qwen2.5-7B-Instruct 为例完成量化并基于vllm-ascend完成一次推理。

[object Object][object Object]

vllm-ascend提供用于部署的Docker镜像,可以从镜像仓库拉取预构建镜像,具体参考

[object Object]

安装命令具体参考《

[object Object]

以 Qwen2.5-7B-Instruct 为例,可前往 获取原始模型权重。

[object Object]
[object Object]
[object Object]

传统量化方式需要准备校准数据文件([object Object] 格式),用于量化过程中的校准。示例数据文件位于 [object Object] 目录下,如 [object Object][object Object] 等。

[object Object][object Object]

一键量化通过命令行方式启动,系统会自动匹配最佳实践配置。

[object Object]
[object Object]
[object Object]

参数说明可以参考

说明:

  • 最佳实践库中的配置文件放在 [object Object] 中。
  • 若最佳实践库中未匹配到符合条件的最优配置,系统将依据预设规则为你推荐其他可用配置,并向你确认是否使用该推荐配置继续量化。
  • 如果需要打印量化运行日志,可通过环境变量 [object Object] 进行设置,可选值为 [object Object](默认)或 [object Object]
[object Object]

使用一键量化功能量化 Qwen2.5-7B-Instruct 模型,量化方式采用 w8a8:

[object Object]

其中:

  • [object Object] 为 Qwen2.5-7B-Instruct 原始浮点权重路径
  • [object Object] 为用户自定义的量化权重保存路径
[object Object]

传统量化通过 Python 脚本执行。

[object Object]

不同模型有对应的量化脚本,以 Qwen 模型为例:

[object Object]
[object Object][object Object]undefined

更多参数: 传统量化支持更多高级参数,如 [object Object](手动回退的量化层)、[object Object](稀疏量化异常值占比)、[object Object](KV Cache 量化)等。详细参数说明请参考各模型目录下的 README.md 文件。

[object Object]

示例 1:Qwen2.5-7B-Instruct W8A8 量化

[object Object]

说明:

  • 不同模型的量化脚本位于 [object Object] 目录下对应的模型子目录中,如 [object Object][object Object]

  • 各模型的具体量化参数和最佳实践请参考对应模型目录下的 README.md 文件

  • 如果需要使用 NPU 多卡量化,请先配置环境变量:

    [object Object]
[object Object]

量化完成后,在保存路径目录下会生成以下文件:

[object Object]

文件说明:

  • [object Object](或 [object Object])- 包含量化参数和配置信息,描述了每个权重的量化类型(W8A8、FLOAT 等)
  • [object Object] - 实际的量化模型权重文件
  • [object Object] - 记录本次量化所使用的完整配置信息,可用于复现该量化权重
  • 其他文件为模型推理所需的配置和词汇表文件,来自原始浮点目录
[object Object]

量化完成后,您可以使用生成的量化权重进行推理。根据不同的推理框架,使用方法如下:

[object Object]

可参考 vllm-ascend 官方文档 运行Docker容器。

[object Object]

假设您已经参考前文使用 msModelSlim 完成了 Qwen2.5-7B-Instruct 的 W8A8 量化,量化后权重保存路径为:

[object Object]
[object Object]

在 Ascend 设备上使用 vllm-ascend 提供在线服务时,可执行:

[object Object]

说明:

  • [object Object] 路径 [object Object] 即为 msModelSlim 输出的量化模型目录。
  • [object Object]:指定使用适配 Ascend 的量化推理后端,加载由 msModelSlim 生成的权重。
  • 其余参数(如 [object Object])可根据实际业务场景调整。

服务启动后,可以通过 HTTP 接口发起推理请求,例如:

[object Object]

其中:

  • [object Object] 字段需要与 [object Object] 保持一致。
  • 推理时仅需指定量化后模型目录,无需再传入原始浮点权重。
[object Object]

如果希望在 Python 脚本中直接加载量化后模型进行离线推理,可以使用 vllm-ascend 的 [object Object] 接口:

[object Object]

要点说明:

  • [object Object] 依然指向量化后权重所在目录。
  • [object Object] 必须显式设置,以启用 Ascend 量化推理路径。
  • 其余采样参数可根据业务调整。
[object Object][object Object]

可通过《》查看不同模型的支持情况:

  • 标记了[object Object]的模型支持一键量化方式
  • 所有在 [object Object] 目录下有量化脚本的模型都支持传统量化方式
[object Object]

对于过大的模型(7B 及以上),如果遇到显存不足的问题,可以尝试:

  1. 使用逐层量化:在一键量化中默认生效,传统量化中不支持
  2. 使用 CPU 量化:设置 [object Object](一键量化)或 [object Object](传统量化),速度较慢但显存占用低
[object Object]

对于一键量化支持的多种算法,可以参考《》。

[object Object]

Q: 量化过程中出现显存不足怎么办?

A: 可以尝试以下方法:

  1. 使用逐层量化,在一键量化中默认生效,传统量化中不支持
  2. 使用 CPU 进行量化([object Object][object Object],速度较慢但显存占用低)

Q: 量化后的模型精度下降明显怎么办?

A: 可以尝试:

  1. 使用更高精度的量化类型(如从 w4a8 改为 w8a8)
  2. 参考 [object Object]路径下模型对应的最佳实践配置
  3. 检查离群值抑制算法、量化策略、校准数据集等是否合适,参考《》。

Q: 如何验证量化效果?

A: 可以使用推理框架在线/离线推理,在相同输入下对比量化前后的输出差异,以及比较量化前后的差值。

Q: 如何选择使用哪种量化方式?

A: 量化方式选择建议:

  • 如果模型支持一键量化,建议使用一键量化
  • 如果模型不支持一键量化,建议使用传统量化(已停止演进)

Q: 一键量化和传统量化生成的权重文件有什么区别?

A: 两种方式生成的权重文件格式相同,都可以用于推理。主要区别在于:

  • 一键量化使用最佳实践配置,可能包含一些优化
  • 传统量化支持生成MindIE推理框架独占格式,可用于老版本兼容;一键量化支持AscendV1格式(关于该格式的更多信息,请参考 中的说明),可用于多框架(MindIE、vllm-ascend、SGLang)使用。