- 显存
- 参数类型
- fp32
- 32bits
- 单精度
- 精度23bits
- 指数8bits
- fp16
- 16bits
- 半精度
- 精度10bits
- 指数5bits
- int8
- 8bits
- 整型
- BF16
- Google发明
- 16bits
- 精度7bits
- 指数8bits
- fp32
- 参数类型
- LLaMA-6B模型显存
- 训练
- 参数类型int8,参数6B,6GB空间
- 梯度同上要6GB
- 优化器参数,AdamW
- 2倍模型参数, 12GB
- 预测
- 模型显存6GB
- 数据
- hidden_size=4096
- intermediate_size=11008
- num_hidden_layers=32
- context_length=2048
- 每个样本需要
- (4096+11008)204832*1byte=990MB
- batchsize=50
- 990MB*50
- batchsize太小不稳定
- 训练
- 硬件
- A100
- 显存
- 80G
- 显存
- V100
- 显存
- 32G
- 计算
- 1个TFLOPS
- 每秒1万亿次
- 1个TFLOPS
- 电
- 0.3度/时
- 显存
- A100
- 并行
- 模型并行
- 不同层在不同卡
- 模型不好切分,层参数量不一样
- 当前卡串行时,其它卡闲置
- batchsize切分流水线优化
- 前向算完直接反向
- 每层更新参数不配套
- 不同层在不同卡
- 拆解矩阵
- 列并行
- 激活函数支持
- 行并行
- 激活函数不支持
- 多抽头天然支持并行
- 张量并行
- 有qxq个处理器
- Y=XA,将X和A都划分成qxq的块
- GPU可以自动完成
- GPU间没有重复数据,节约了内存
- 列并行
- 数据并行,单机多卡
- 可拼内存
- 内存浪费
- 每卡都加载模型副本
- 模型并行