解锁模型魔法:你需要的基础知识秘籍


解锁模型魔法:你需要的基础知识秘籍

我们经常会看到模型的名字中会带有0.5B、7B、32B等等,其中B表示是Billion(十亿)个参数

模型大小 参数数量
0.5B 5亿
1.5B 15亿
7B 70亿
13B 130亿
32B 320亿
70B 700亿

计算机基础知识,内存/磁盘存储,基本单位为字节(byte)

单位 换算
KB 1 KB=1024 Bytes
MB 1 MB=1024 KB
GB 1 GB=1024 MB
TB 1 TB=1024 GB

训练模型参数类型

参数类型 占用字节 说明
float 4 bytes 32位浮点数
half/BF16 2 bytes 16位浮点数
int8 1 bytes 8位整数
int4 0.5 bytes 4位整数

评估内存使用需求

此处以Qwen2.5-VL-7B-Instruct-bf16为例

  1. 7B = 7 Billion 70亿个参数
  2. BF16 = 使用参数类型为half/BF16,占用2个字节

计算:需要占用字节数:7,000,000,000 * 2 = 14,000,000,000 bytes 也就是140亿字节

换算成占用多少GB

= 14 * 1000 * 1000 * 1000 / 1024 / 1024 / 1024 = 14 *

≈ 14 * 0.93

≈ 13.02 GB

说明:
$$
1000 * 1000 * 1000 / 1024 / 1024 / 1024 = (1000 / 1024)^3 ≈ 0.93
$$

评估模型训练需求

说明:

为了确保模型训练的精准度,一般参数类型选择float类型,如果硬件性能稍微差点,也可以选择half/BF16,但是不能选择Int8和Int4。

由于模型训练收到反向传播算法、Adam优化算法以及Transformer架构等因素的影响,训练所需的内存一般是LLM(Large Language Model)内存需求的3~4倍。

例如:训练Qwen-7B模型所需的内存计算(保守估算按照4倍的方案来计算)
  1. 使用Float参数类型来计算,7B * 4 * 4 ≈ 104GB
  2. 使用half/BF16参数类型计算,7B * 2 * 4 ≈ 52GB

文章作者: 会编程的吕洞宾
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 会编程的吕洞宾 !
  目录