问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

大语言模型量化方法对比:GPTQ、GGUF、AWQ 包括显存和速度

创作时间:
作者:
@小白创作中心

大语言模型量化方法对比:GPTQ、GGUF、AWQ 包括显存和速度

引用
CSDN
1.
https://blog.csdn.net/linzhiji/article/details/138912632

大语言模型的量化方法对于模型的部署和推理性能至关重要。本文将介绍三种主流的量化方法:GPTQ、GGUF和AWQ,并通过Qwen 7B模型的实际测试数据,对比它们在显存占用和推理速度方面的表现。

GPTQ:训练后量化方法

GPTQ是一种4位量化的训练后量化(PTQ)方法,主要关注GPU推理和性能。该方法的核心思想是通过最小化权重的均方误差,将所有权重压缩到4位。在推理过程中,它会动态地将权重去量化为float16,以提高性能,同时保持较低的内存占用。

GGUF:统一格式量化方法

GGUF(以前称为GGML)是一种量化方法,允许用户使用CPU来运行LLM,但也可以将其某些层加载到GPU以提高速度。虽然使用CPU进行推理通常比使用GPU慢,但对于那些在CPU或苹果设备上运行模型的人来说,这是一种非常好的格式。

AWQ:激活感知权重量化

AWQ(激活感知权重量化)是一种类似于GPTQ的量化方法。与GPTQ相比,AWQ的一个重要区别在于它假设并非所有权重对LLM的性能都同等重要。因此,在量化过程中会跳过一小部分权重,这有助于减轻量化损失。根据论文所述,AWQ可以实现显著加速,同时保持相似甚至更好的性能。

实际测试:Qwen 7B模型

为了更直观地理解这些量化方法的效果,我们使用Qwen 7B模型进行了一些实际测试。测试环境为A4000显卡,16GB显存。

原始模型

modeIdOrPath="Qwen/Qwen1.5-7B-Chat"
fType=torch.bfloat16
model = AutoModelForCausalLM.from_pretrained(
    modeIdOrPath,
    torch_dtype=fType,
    device_map='auto',
)
  • 初始显存占用:17GB
  • 平均速度:2-3秒
  • 请求后显存占用:18GB左右

带Flash Attention 2的原始模型

model = AutoModelForCausalLM.from_pretrained(
    modeIdOrPath,
    torch_dtype=fType,
    device_map='auto',
    attn_implementation="flash_attention_2"
)
  • 初始显存占用:17GB
  • 速度:2-3秒(无明显变化)
  • 请求后显存占用:18GB左右

GPTQ Int8量化模型

modeIdOrPath="Qwen/Qwen1.5-7B-Chat-GPTQ-Int8"
  • 初始显存占用:11GB
  • 平均时间间隔:15秒(比非量化模型慢)
  • 请求后显存占用:12.7GB

参考资料

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号