解锁模型魔法:你需要的基础知识秘籍
我们经常会看到模型的名字中会带有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为例
- 7B = 7 Billion 70亿个参数
- 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倍的方案来计算)
- 使用Float参数类型来计算,7B * 4 * 4 ≈ 104GB
- 使用half/BF16参数类型计算,7B * 2 * 4 ≈ 52GB