量化
大语言模型的参数通常以高精度浮点数存储,这导致模型推理需要大量计算资源。
量化技术通过将高精度数据类型存储的参数转换为低精度数据类型存储, 可以在不改变模型参数量和架构的前提下加速推理过程。这种方法使得模型的部署更加经济高效,也更具可行性。
量化可以根据 何时量化 分为:后训练量化 和 训练感知量化,
也可以根据 量化参数的确定方式 分为:静态量化 和 动态量化。
1.PTQ(大约 2018)
后训练量化(PTQ, Post-Training Quantization)一般是指在模型预训练完成后,基于校准数据集(calibration dataset)确定量化参数进而对模型进行量化。
1.GPTQ(2023.3)
GPTQ 是一种静态的后训练量化技术。
”静态” 指的是预训练模型一旦确定,经过量化后量化参数不再更改。
GPTQ 量化技术将 fp16 精度的模型量化为 4-bit ,在节省了约 75% 的显存的同时大幅提高了推理速度。
为了使用GPTQ量化模型,您需要指定量化模型名称或路径,例如 model_name_or_path: TechxGenus/Meta-Llama-3-8B-Instruct-GPTQ
2.QAT(大约 2017)
在训练感知量化(QAT, Quantization-Aware Training)中,模型一般在预训练过程中被量化,然后又在训练数据上再次微调,得到最后的量化模型
1.AWQ(2023.2)
AWQ(Activation-Aware Layer Quantization)是一种静态的后训练量化技术。
其思想基于:有很小一部分的权重十分重要,为了保持性能这些权重不会被量化。
AWQ 的优势在于其需要的校准数据集更小,且在指令微调和多模态模型上表现良好。
为了使用 AWQ 量化模型,您需要指定量化模型名称或路径,例如 model_name_or_path: TechxGenus/Meta-Llama-3-8B-Instruct-AWQ
看论文,貌似要解决部署到边缘设备上的问题