引导式测验 · 硬 等级
ZeRO 和分片优化器测验
涵盖 ZeRO 阶段、Adam 状态内存、参数收集、梯度减小、卸载选项和通信成本。
问题 1 的 8
与普通数据并行相比,ZeRO 消除了哪些冗余?
预览每个问题8 问题
当您参加测验时,就会出现答案和解释。
- 与普通数据并行相比,ZeRO 消除了哪些冗余?
- 在每个 GPU 上复制优化器状态、梯度和参数的完整副本
- 每个 GPU 上的训练数据的重复副本
- 节点之间的冗余网线
- 对同一批次重复前向传播
- 为什么优化器状态通常是 Adam 占用最大内存的地方?
- Adam 根本不存储额外的状态
- Adam 保留额外的每个参数值(例如动量和方差),通常是模型大小的几倍
- Adam 复制整个数据集
- Adam 要求永远存储过去的每个梯度
- ZeRO 第 3 阶段分片有哪些第 1 阶段和第 2 阶段没有的分片?
- 训练数据
- 损失函数
- 模型参数本身
- 学习率表
- 在 ZeRO Stage 3 中,GPU 如何获取层前向传递所需的完整参数?
- 它永远不需要完整的参数
- 它从互联网下载它们
- 它每次都会从头开始重新计算它们
- 它执行全收集来收集丢失的切片,然后丢弃它们
- 哪个 PyTorch 功能本身实现了 ZeRO 风格的分片?
- FSDP(完全分片数据并行)
- 数据加载器
- TorchScript
- 自动梯度
- ZeRO 为节省内存所做的核心权衡是什么?
- 为了速度而牺牲模型精度
- 它增加了额外的通信以根据需要收集和分散碎片
- 它从模型中删除图层
- 它仅适用于非常小的模型
- Which state is partitioned in ZeRO Stage 1?
- Only parameters, with optimizer states replicated
- Parameters, gradients, and optimizer states all sharded
- Optimizer states, while parameters and gradients remain replicated
- Only input activations and labels
- What is a practical cost of ZeRO-style sharding?
- It removes the need to calculate gradients
- It makes every optimizer update local with no data exchange
- It requires the model to be retrained from scratch for every step
- Additional communication to gather parameters and distribute gradients