中文

DistDGL:面向十亿规模图的分布式图神经网络训练

机器学习 2021-08-04 v3 分布式、并行与集群计算

摘要

图神经网络(GNN)在从图结构数据中学习方面已取得巨大成功。它们被广泛应用于推荐、欺诈检测和搜索等多种应用中。在这些领域,图通常很大,包含数亿节点和数十亿边。为应对此挑战,我们开发了 DistDGL,一种在机器集群上以 mini-batch 方式训练 GNN 的系统。DistDGL 基于流行的 GNN 开发框架 Deep Graph Library(DGL)构建。DistDGL 将图及其关联数据(初始特征与嵌入)分布到各机器上,并依此分布遵循所有者计算(owner-compute)规则推导计算分解。DistDGL 采用同步训练方法,并允许构成 mini-batch 的 ego-network 包含非局部节点。为最小化分布式计算的开销,DistDGL 使用了一种高质量且轻量的 min-cut 图划分算法及多重平衡约束。这使其能减少通信开销并静态平衡计算。它进一步通过复制 halo 节点和使用稀疏嵌入更新来降低通信。这些设计选择的组合使 DistDGL 能够在实现高并行效率与内存可扩展性的同时训练高质量模型。我们在归纳式与直推式 GNN 模型上均展示了我们的优化。结果表明,DistDGL 在不牺牲模型精度的前提下实现线性加速,且在 16 台机器的集群上,对含 1 亿节点和 30 亿边的图仅需 13 秒即可完成一个训练轮次。DistDGL 现已作为 DGL 的一部分公开可用:https://github.com/dmlc/dgl/tree/master/python/dgl/distributed。

关键词

引用

@article{arxiv.2010.05337,
  title  = {DistDGL: Distributed Graph Neural Network Training for Billion-Scale Graphs},
  author = {Da Zheng and Chao Ma and Minjie Wang and Jinjing Zhou and Qidong Su and Xiang Song and Quan Gan and Zheng Zhang and George Karypis},
  journal= {arXiv preprint arXiv:2010.05337},
  year   = {2021}
}