模型参数数量决定 checkpoint 文件大小,受数据类型、优化技术和存储格式影响。
参数数量计算
| 层类型 | 参数计算公式 |
|---|---|
| 全连接层 | 输入维度 × 输出维度 + 输出维度(偏置) |
| 2D 卷积 | 卷积核² × 输入通道 × 输出通道 + 输出通道 |
| 3D 卷积 | 卷积核³ × 输入通道 × 输出通道 + 输出通道 |
| Transformer | 4×embed_dim² + 4×embed_dim×ff_dim |
Checkpoint 大小
$$checkpoint_size \approx 参数数量 \times 单参数字节数$$
| 数据类型 | 字节/参数 | 10亿参数大小 |
|---|---|---|
| FP32 | 4 | 400MB |
| FP16 | 2 | 200MB |
| int8 | 1 | 100MB |
附加开销
- 优化器状态:参数大小的 10-20%
- 元数据:< 1MB
- 框架信息:5-10%
优化技术
| 技术 | 效果 |
|---|---|
| 量化(int8) | 压缩至原体积 25% |
| 剪枝 | 减少 10-40% 参数 |
| 蒸馏 | 迁移至小模型 |
典型模型对比
| 模型 | 参数量 | 数据类型 | Checkpoint 大小 |
|---|---|---|---|
| 通义万相 2.2 | 27B | FP16 | ~54GB |
| Stable Video Diffusion | 1.9B | FP32 | ~760MB |
| Open-Sora 2.0 | 11B | FP16 | 22GB |
张芷铭的个人博客
Comments