运行大模型GPU占用计算公式:
\(M=\frac{(P * 4B)}{32 / Q} * 1/2\)
- M : 以GB标识的GPU内存
- P : 模型中的参数数量,例如一个7B模型有70亿参数
- 4B : 4个字节,表示用于每个参数的字节
- 32 : 4个字节中有32位
- Q : 应该用于加载模型的位数,例如16位、8位、4位
- 1.2 : 表示在GPU内存中加载其他内容的20%开销
常用大模型内存占用
大小(billion) | 模型位数 | 显存占用(GB) |
---|---|---|
1.5B | 4 | 0.9 |
1.5B | 8 | 1.8 |
1.5B | 16 | 3.6 |
7B | 4 | 4.2 |
7B | 8 | 8.4 |
7B | 16 | 16.8 |
9B | 4 | 5.4 |
9B | 8 | 10.8 |
9B | 16 | 21.6 |
40B | 4 | 24 |
40B | 8 | 48 |
40B | 16 | 96 |
70B | 4 | 42 |
70B | 8 | 84 |
70B | 16 | 168 |
量化大模型的标准写法
经常看到量化大模型后面带着q2_k
、ft16
、 q5_k_s
、q8_0
等写法。这类写法代表着大模型的量化后的指标,释义如下:
传统量化
包括q4_0、q4_1、q8_0等方法。
如q4_0。代表模型位数=4,0表示保留0位小数。即数据会被量化到0-255之间的整数
K值量化
如q2_k
、q5_k_s
等方法。实际上就是不同层用不同精度量化,以比传统量化更智能的方式分配bit。解压缩方式与传统量化类似,同样快速