大模型参数和内存解析

在讨论大模型时,我们通常会见到类似 “175B” 或 “125M” 的描述。

  • B 表示 billion(十亿)
  • M 表示 million(百万)

每个参数的内存占用

模型中参数的数据类型直接影响每个参数的内存大小,常见的数据类型包括:

数据类型每个参数占用内存说明
float324 字节全精度训练常用,但占用内存较大
float16/bfloat162 字节半精度训练/推理,兼顾速度与精度
int81 字节量化推理,内存和计算资源大大降低
int40.5 字节边缘设备或极限量化场景,进一步降低内存开销

举例: 对于一个 7B 模型来说:

  • float32:约 28 GB
  • float16:约 14 GB
  • int8:约 7 GB
  • int4:约 3.5 GB

模型案例

GPT-3

  • 参数规模从 125M 到 175B 不等
  • 原始训练时可能使用 float32,但推理常用 float16 或经过 int8 量化
  • 例如:GPT-3 175B 模型在推理时常采用 float16 来降低内存需求

LLaMA-2

  • 提供 7B、13B 和 70B 等多个版本
  • 原始训练一般采用 float16 或 bfloat16
  • 推理阶段支持 float16,同时有 int8 或 int4 的量化版本

DeepSeek 系列

  • 包括 DeepSeek-LLM 和 DeepSeek-Coder 等
  • DeepSeek-LLM 常见有 7B 与 67B 版本,原始精度使用 float16/bfloat16,推理时可选 int8/int4
  • DeepSeek-Coder 针对代码任务,提供 1.3B、6.7B、33B 不同版本,均支持灵活的数据类型选择