• 显存
    • 参数类型
      • fp32
        • 32bits
        • 单精度
          • 精度23bits
          • 指数8bits
      • fp16
        • 16bits
        • 半精度
          • 精度10bits
          • 指数5bits
      • int8
        • 8bits
        • 整型
      • BF16
        • Google发明
        • 16bits
          • 精度7bits
          • 指数8bits
  • 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万亿次
        • 0.3度/时
  • 并行
    • 模型并行
      • 不同层在不同卡
        • 模型不好切分,层参数量不一样
      • 当前卡串行时,其它卡闲置
        • batchsize切分流水线优化
        • 前向算完直接反向
          • 每层更新参数不配套
    • 拆解矩阵
      • 列并行
        • 激活函数支持
      • 行并行
        • 激活函数不支持
      • 多抽头天然支持并行
      • 张量并行
        • 有qxq个处理器
        • Y=XA,将X和A都划分成qxq的块
          • GPU可以自动完成
          • GPU间没有重复数据,节约了内存
    • 数据并行,单机多卡
      • 可拼内存
      • 内存浪费
        • 每卡都加载模型副本