【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提供了大量能使我们快速便捷地处理数据的函数和方法。

相关推荐
冬奇Lab19 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab19 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP1 天前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年1 天前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼1 天前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS1 天前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区1 天前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈1 天前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang1 天前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx
shengjk11 天前
NanoClaw 深度剖析:一个"AI 原生"架构的个人助手是如何运转的?
人工智能