引言

  • 现代大语言模型(如 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 微调