【LLM】LLM的量化与微调方法
引言
现代大语言模型(如 LLaMA、ChatGLM、Qwen)动辄拥有数十亿甚至上万亿参数。以 FP16 精度存储时:
模型规模 显存占用 7B 参数 ~14 GB 13B 参数 ~26 GB 70B 参数 ~140 GB 这意味着多数人无法在消费级显卡(如 RTX 3090/4090,24GB)上加载完整模型,并且推理延迟高,难以部署到边缘设备
量化(Quantization) 就是解决这一问题的关键技术:通过降低模型权重的精度(如从 16 位压缩到 4 位),大幅减少模型体积和显存需求。
模型量化的概念
量化是将高精度数值(如 FP32/FP16)转换为低精度表示(如 INT8、INT4)的过程。
常见量化方式对比
精度 每参数位数 压缩比(相比 FP32) 显存需求(以7B 模型为例) FP32 32 bit 1x 28 GB FP16 16 bit 2x 14 GB INT8 8 bit 4x 7 GB INT4 4 bit 8x 3.5 GB 4-bit 量化可将模型体积压缩至原来的 1/8,是当前最激进但实用的压缩方式。
GPTQ量化
GPTQ(GPT Quantization)是一种专为大语言模型设计的后训练量化(Post-Training Quantization, PTQ)方法,无需重新训练模型,仅用少量校准数据即可完成 4-bit 量化,而模型精度损失极小(<5%)
GPTQ 的核心思想
- 逐层量化:从第一层到最后一层依次处理
- 误差补偿:将当前层的量化误差传递给后续层进行修正
- 数据校准:使用 128~512 个样本优化每层的量化参数
QLoRA
QLoRA是目前最流行的在 4-bit 模型上进行微调的方法,论文出自 2023 年,专门解决如何在消费级 GPU 上微调大模型。
QLoRA 的核心思想:
- 加载一个 4-bit 量化的基础模型(如 4-bit LLaMA)
- 冻结这个模型的所有权重(不更新)
- 只训练一小部分新增的低秩适配器(LoRA layers)
- 这些 LoRA 层以 FP16 或 NF4(一种 4-bit 浮点格式)存储,但可训练
优点:
- 显存占用极低(7B 模型可在 16GB GPU 上微调)
- 保留了 4-bit 模型的体积优势
- 微调效果接近全参数微调
LoRA vs QLoRA
维度 LoRA QLoRA 基础模型精度 FP16/BF16 4-bit(NF4/INT4) 显存需求 中等 极低 训练速度 快 略慢(量化开销) 精度保持 高 略低,但可接受 适用场景 有高性能 GPU 消费级 GPU 微调
评论