昇腾社区首页
中文
注册

推理量化精度调优案例

本章节以Llama-3.1-8B模型为例,通过W8A8量化场景展示量化精度调优方法,量化精度评估基于伪量化功能,数据集为BoolQ。原始浮点模型的具体情况请参见原始浮点模型量化精度

原始浮点模型量化精度

  • 原始浮点模型(未进行量化)的精度85.35%。

  • 全量化后模型精度(未开启离群值抑制,量化参数取默认值,校准集取五条数据,未进行回退)的精度77.43%。

量化后精度目标

原始浮点模型量化精度可知,Llama-3.1-8B模型当前量化精度损失为7.92%,我们的预期目标为精度损失小于1%。

量化步骤

  1. 在W8A8量化场景下,针对Llama-3.1-8B模型,对五种离群值抑制方法逐一进行了尝试。
    • m3也适用于W8A8量化场景,但可能会导致离群值增多,量化精度损失更多,效果不稳定,因此未尝试。
    • 不同模型或量化场景下,离群值抑制方法的表现可能会有所不同,建议根据具体任务需求选择合适的算法进行优化。
    • anti_method取值m1时,精度值为78.87%。

    • anti_method取值m2时,精度值为79.27%。

    • anti_method取值m4时,精度值为64.01%。

    • anti_method取值m5时,精度值为79.17%。

    • anti_method取值m6时,精度值为64.89%。

    通过以上数据可以发现,在Llama-3.1-8B模型中,离群值抑制算法m2取得了最佳的精度结果(79.27%),相较于其他方法表现最优。这表明在当前模型和量化场景下,m2算法能够更有效地抑制离群值,提升量化模型的精度。

  2. 选择激活量化算法。
    • 不同的激活量化算法在不同模型上的表现会有差异,需根据具体任务需求合理选择。
    • 基于步骤1,当开启离群值抑制算法m2时,默认使用的激活量化方法(act_method)为1。
    • act_method取值为1,精度为79.27%。

    • act_method取值为2,精度为80.40%。

    • act_method取值为3,精度为78.32%。

    通过以上数据可以发现,在Llama-3.1-8B模型上,设置act_method=2时,取得了最佳的模型精度结果(80.40%)。

  3. 调整校准集。

    使用anti_method=m2,act_method=2的配置,将校准数据集从5条扩展至50条后,模型精度从80.40%改变为79.05%。由此可见,对于Llama-3.1-8B模型而言,最初的5条校准数据已经能够充分满足校准需求,增加校准数据量并未带来精度改善。

  4. 执行量化回退。

    使用anti_method=m2,act_method=2,5条校准数据集的配置,针对Llama-3.1-8B模型,分别进行了手动和自动量化回退测试。

    1. 手动回退10层down层后,模型精度提升至84.59%。

    2. 再设置自动回退参数disable_level = 'L10',自动回退10层后,模型精度进一步提升至85.22%。

    通过以上调优策略,量化模型的精度相较于浮点模型仅损失了0.12%,达到了量化后精度目标