论文阅读笔记——D3: Differential Testing of Distributed Deep Learning With Model Generation

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),测试层冻结模型以检测转换引入的不一致性
模型输入根据模型的输入层参数生成输入

在这里插入图片描述

D 3 D^3 D3 加载模型 M i M_i Mi 和输入 I i I_i Ii,在分布式设置 S k S_k Sk 下进行预设次数的迭代训练,然后对 I i I_i Ii 进行推理,产生输出 O i k O_{ik} Oik。在所有分布式和非分布式输出下,比较输出。重点关注分布式设置与非分布式设置之间的比较,报告输出向量的逐元素差异,如果差异大于设定的阈值,则视为潜在的不一致性缺陷。由于不一致性太多了,采用 CRADLE 的变化率度量。

  • 计算在两个不同测试场景中同一层的两次执行的每对对应隐藏状态之间的平均绝对距离(MAD),根据产生最大变化率的层API对不一致性进行聚类。
  • 从每个聚类中随机抽样测试场景进行详细调查。

实验

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值