D3 论文
以往研究关注训练好的模型是否存在错误行为,本文关注构建和训练模型的代码本身是否存在问题。构建了一个分布式等价规则:1)分布式与非分布式等价(在单 GPU 与多 GPU 上训练的模型等价);2)不同分布式设置等价(使用列式分片(column-wise sharding)训练的模型和使用行式分片(row-wise sharding)训练的模型,对于相同的输入,输出应该是等价的)。

分布式参数:
- 世界大小(world size):分布式集群中的处理器数量,例如在 GPU 训练中,就是 GPU 的数量。
- 分片类型(sharding type):模型分片的方式,例如列式分片和行式分片。
- 设备(device):使用的硬件设备,如 GPU 或 CPU。
- 权重量化(weight quantization):模型权重的量化方式,例如 int8。
- 激活量化(activation quantization):激活函数的量化方式,例如 float16。
- 分片器类型(sharder type):用于分片的具体工具或方法,例如 EmbeddingBagSharder。
通过系统地生成和组合分布式参数的候选值,D3能够生成大量多样化的分布式设置。这些设置用于测试分布式深度学习库,确保在不同设置下模型的输出等价。

| 类型 | 方法 |
|---|---|
| DLRM 类结构 | 变异稀疏组件(Embedding)、密集组件(线性层)、交互组件(均值、sigmoid) |
| 其他结构 | 使用 Muffin 生成链式结构和基于单元的结构模型 |
| 层冻结模型 | 随机冻结模型中的一个层(trainable=False或requires_grad=False),测试层冻结模型以检测转换引入的不一致性 |
| 模型输入 | 根据模型的输入层参数生成输入 |

最低0.47元/天 解锁文章
4334






