引导式测验 · 中等 等级

激活重新计算权衡测验

测试激活检查点内存权衡、选择性重新计算和重播正确性,包括为什么额外的计算不能解决所有内存成本。

相关引导路径激活重新计算权衡
问题 1 的 8

激活重新计算会牺牲什么来节省内存?

预览每个问题8 问题

当您参加测验时,就会出现答案和解释。

  1. 激活重新计算会牺牲什么来节省内存?
    • 模型精度
    • 额外计算(FLOPs)
    • 网络带宽
    • 数值精度
  2. 为什么前向传递激活通常会被存储?
    • 将它们显示给用户
    • 压缩模型
    • 它们是标记化所必需的
    • 因为反向传播需要它们来计算梯度
  3. 为什么应该在实际模型上测量激活检查点(activation checkpointing)的开销?
    • 检查点放置位置、算子和硬件决定了重放的成本
    • 它总是会使挂钟时间精确增加百分之四十
    • 它保证了十倍的速度提升
    • 它消除了所有的前向计算
  4. 对于具有可比激活值的理想化 N 层链,平方根检查点放置策略可以实现什么样的存储扩展?
    • 所有模型参数的 O(N 平方)
    • 无论 N 为多少,所有训练内存的 O(1)
    • 激活存储的 O(sqrt(N))
    • 优化器状态的 O(N 平方)
  5. 选择性(非完整)重新计算背后的想法是什么?
    • 每个操作重新计算两次
    • 永远不要重新计算任何东西
    • 仅重新计算嵌入层
    • 仅重新计算占用大量内存但计算成本低的操作,缓存昂贵的操作
  6. 哪种补充技术经常与重新计算相结合以节省更多内存?
    • 增加批量大小
    • 将激活卸载到 CPU 或 NVMe
    • 删除所有标准化层
    • 切换到推理模式
  7. 检查点块包含 Dropout。为什么在重放期间保持一致的 RNG 状态很重要?
    • Dropout 变成了模型权重量化器
    • 优化器不再需要梯度
    • 反向重计算应该重现预期的前向随机性
    • 批大小必须变为一
  8. 检查点减少了存储的激活值,但优化器状态仍然超过了 GPU 内存。为什么作业仍然内存不足?
    • 激活重计算不会消除优化器状态的存储
    • 检查点将每个优化器张量增加到 FP64
    • 反向传播不再消耗任何内存
    • 模型无法在使用优化器的情况下使用检查点