【Datawhale组队学习202601】Base-NLP task06 大模型训练与量化

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、量化
    • [1.1 冗余与压缩](#1.1 冗余与压缩)
    • [1.2 量化的价值](#1.2 量化的价值)
    • [1.3 精度与显存的关系](#1.3 精度与显存的关系)
    • [1.4 显存占用估算](#1.4 显存占用估算)
  • [二、Transformers 中的主流集成方案](#二、Transformers 中的主流集成方案)
    • [3.1 GPTQ 面向生成式模型的高效量化](#3.1 GPTQ 面向生成式模型的高效量化)
    • [3.2 AWQ 激活感知权重量化](#3.2 AWQ 激活感知权重量化)
    • [3.3 BitsAndBytes](#3.3 BitsAndBytes)
  • [四、Qwen2.5 模型推理量化实战](#四、Qwen2.5 模型推理量化实战)
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、量化

  • 量化 ,听起来是一个复杂的数学概念,但实际非常简单,就是 用较少的信息来表示数据,在尽量不损失模型性能的前提下,降低资源开销。

1.1 冗余与压缩

1.2 量化的价值

(1)降低显存开销,降低功率能耗:通常模型以 FP16(16位浮点数)格式存储,若量化为 INT8(8位整数),显存占用直接减半;若进一步量化为 INT4(4位整数),显存占用仅为原来的 1/4。原本需要多张 A100 才能加载的千亿模型,量化后可能只需一张消费级显卡即可运行。可别忘了,还能省电。

(2)提升推理速度:数据量的减少意味着内存带宽(Memory Bandwidth)压力的降低。在 LLM 推理这种典型的"内存受限(Memory-bound)"场景下,更快的权重加载速度直接转化为更快的 Token 生成速度。

(3) 推动大模型"下乡":千亿参数模型原本得蹲在机房(几十万的服务器),量化后一张3090/4090显卡甚至手机NPU就能跑。

1.3 精度与显存的关系

模型权重通常以浮点数形式存储,不同的精度决定了每个参数占用的字节数。

  • FP32(Full Precision):单精度浮点数,占用 4 Bytes。这是深度学习训练的默认精度,但在推理时通常不需要这么高。
  • FP16 / BF16(Half Precision):半精度浮点数,占用 2 Bytes。
    • FP16:传统的半精度,数值范围较小,容易溢出。
    • BF16(BFloat16):Google 提出的格式,牺牲了小数位精度以换取与 FP32 相同的数值范围(指数位),训练更稳定,是目前大模型训练的主流选择。
  • INT8:8 位整数,占用 1 Byte。
  • INT4:4 位整数,占用 0.5 Byte(即 4 bit)。

1.4 显存占用估算

  • 在计算机存储单位中, 1 G B = 1024 M B 1 GB = 1024 MB 1GB=1024MB, 1 M B = 1024 K B 1 MB = 1024 KB 1MB=1024KB。
  • 但在估算模型参数量(如 7 B = 7 B i l l i o n 7B = 7 Billion 7B=7Billion)和显存( G B GB GB)时,为了方便,通常近似认为 1 GB ≈ 10 9 Bytes 1 \text{ GB} \approx 10^9 \text{ Bytes} 1 GB≈109 Bytes。如果追求精确计算,记得除以 1024 3 1024^3 10243。
  • 模型所需显存大小的 通用估算公式 如下:

权重显存占用 ≈ 模型参数量 × 每参数占用字节数 \text{权重显存占用} \approx \text{模型参数量} \times \text{每参数占用字节数} 权重显存占用≈模型参数量×每参数占用字节数

  • 以 Qwen2.5 为例,这里选择 Qwen2.5-7B (约 70 70 70 亿参数,即 7 × 10 9 7 \times 10^9 7×109):

(1)FP16 / BF16 精度(2 Bytes/参数)

7 × 10 9 × 2 Bytes ≈ 14 GB (13.2) 7 \times 10^9 \times 2 \text{ Bytes} \approx 14 \text{ GB} \tag{13.2} 7×109×2 Bytes≈14 GB(13.2)

(2)INT8 量化(1 Byte/参数)

7 × 10 9 × 1 Byte ≈ 7 GB (13.3) 7 \times 10^9 \times 1 \text{ Byte} \approx 7 \text{ GB} \tag{13.3} 7×109×1 Byte≈7 GB(13.3)

(3)INT4 量化(0.5 Byte/参数)

7 × 10 9 × 0.5 Byte ≈ 3.5 GB (13.4) 7 \times 10^9 \times 0.5 \text{ Byte} \approx 3.5 \text{ GB} \tag{13.4} 7×109×0.5 Byte≈3.5 GB(13.4)

  • 但是,这只是模型权重的静态占用。实际运行时,还需要预留显存给:

    • KV Cache:上下文缓存,与序列长度(Context Length)成正比,上下文越长,占用越大。
    • 激活值:中间层计算结果,与 Batch Size 和序列长度相关。
    • 框架开销:PyTorch / CUDA context 本身会占用一定开销。
  • 所以,实际显存需求通常比估算值高 20 20%~30% 20。例如加载 7B 的 INT4 模型( 3.5 G B 3.5GB 3.5GB 权重),推荐显存至少 6 G B 6GB 6GB 起步。


二、Transformers 中的主流集成方案

虽然量化方法层出不穷,但在 Hugging Face Transformers 的官方文档与实践中,最常用的三类集成方式是加载 GPTQAWQ 以及 bitsandbytes(bnb)

  • 在代码层面,它们通常通过如下实现相对统一的调用体验。
python 复制代码
# 搭配相应的配置类(如 GPTQConfig、AwqConfig、BitsAndBytesConfig)
AutoModel*.from_pretrained(..., quantization_config=...) 
  • 如果从使用场景来区分,
    • ·GPTQAWQ 主要面向推理部署与加速,它们属于 PTQ(Post-Training Quantization) 算法,生成的模型通常以量化后的检查点形式保存,加载后显存占用低且推理速度快。
    • bitsandbytes 则既常用于 8bit/4bit 推理,也是诸如 QLoRA 在内的一系列低显存微调方案的核心依赖,尤其擅长让大模型在单卡上完成 4-bit 训练。

PTQ(训练后量化):模型训完直接"硬砍"精度 → 快但容易翻车
QAT(量化感知训练):训练时就模拟量化效果 → 慢但稳如老狗

3.1 GPTQ 面向生成式模型的高效量化

GPTQ (Generative Pre-trained Transformer Quantization) 是一种面向大规模生成式 Transformer 的训练后量化(Post-Training Quantization, PTQ)技术。

是经典的 OBQ (Optimal Brain Quantization) 算法在超大模型上的高效进化版,基于近似二阶信息实现了一次性权重量化(one-shot weight quantization)。

3.2 AWQ 激活感知权重量化

3.3 BitsAndBytes

BNB 是承载 LLM.int8() 和 QLoRA 等前沿研究的工程基石。

四、Qwen2.5 模型推理量化实战


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

相关推荐
hssfscv2 小时前
Javaweb学习笔记——后端实战7 springAOP
笔记·后端·学习
bylander2 小时前
【AI学习】TM Forum自智网络L4级标准体系
人工智能·学习·智能体·自动驾驶网络
世优科技虚拟人2 小时前
从AI数字人讲解到MR数字人导览,数字人厂商革新文旅新服务
人工智能·大模型·数字人·智能交互
我想我不够好。2 小时前
2026.1.28 消防监控学习
学习
Engineer邓祥浩2 小时前
设计模式学习(24) 23-22 策略模式
学习·设计模式·策略模式
张小凡vip2 小时前
数据挖掘(七) ---Jupyter Notebook快捷方式和魔术命令(特殊命令)
人工智能·jupyter·数据挖掘
Luhui Dev2 小时前
MCP、Skills、Agents SDK 什么区别?AI 能力调度接口的 3 种范式解析
人工智能
2601_949720262 小时前
flutter_for_openharmony手语学习app实战+手语识别实现
学习·flutter
才兄说2 小时前
机器人租售出场稳?到点就上台
人工智能·机器人