核心观点与关键数据
图数据无处不在,图机器学习任务包括节点预测、链接预测、知识图谱补全、社区预测、图性质预测和图生成模型等。图神经网络(GNN)通过学习点、边或整张图的向量表示,成为解决图机器学习任务的核心技术。
DGL 框架介绍
DGL(Deep Graph Library)是一个面向图结构数据的专用深度学习框架,2018年12月在Neurips大会上宣布开源。DGL由张峥教授发起,主要开发团队为亚马逊云科技上海人工智能研究院。DGL在学界和业界均获得广泛关注,GithubStars达9.8K,Forks 2.3K,贡献者206,论文引用数600+。
DGL 开源社区建设
DGL拥有广泛的开源合作伙伴,每月定期组织用户群分享会,邀请学界和业界研究者分享最新成果。DGL在学术顶会上举办手把手教程(如GTC’19, KDD’19, WWW’20等),所有材料公开在GitHub。
DGL 应用领域
DGL在知识图谱嵌入、复杂图GNN评测、结构化自然语言处理、生命科学数据库和可视化等领域有广泛应用。
DGL 三年开发历程
- 2018年:First prototype,V0.1(NeurIPS’18)
- 2019年:V0.2 Sampling APIs,V0.3 Fused message passing,V0.3.1 NN modules,V0.4 Heterogeneous graph,V0.4.3 TF support
- 2020年:V0.5 Distributed Training,User guide,New API doc
- 2021年:V0.6 GNN Model Push
- 2022年:V0.7 GPU Sampling,CPU kernel update,V0.8 Enhanced sampling pipeline, heterograph, data transforms
易用性与高性能
图神经网络入门门槛较高,编写高效代码不容易。DGL通过Graph Attention Network(GAT)和User-defined Function(UDF)等机制,将不规则形状的图计算转换为固定形状的张量计算,实现性能优化。Graphiler技术利用编译器对用户代码进行无缝转换,性能提升可达10x ~ 100x。
大规模图挑战
学术圈和工业界越来越关注大规模图数据,工业界图数据已达百亿甚至千亿量级。巨图训练采用基于子图采样的小批次训练方法,但单GPU训练中CPU数据拷贝成为瓶颈。DGL v0.8通过CUDA UVA技术和预取下一批次特征,在ogbn-papers100M训练中GraphSAGE性能提升近4x。多GPU训练则面临高效采样算法和多GPU间高速带宽利用等问题。
训练成本
MAG240M图结构30GB,节点特征200GB。CPU+GPU混合训练成本为$7.824/hr,全GPU训练成本为$31.296/hr。Web graph数据量更大,成本更高。GNN模型推理代价也很高,需要大幅修改原生模型实现。DGL通过全自动GNN推理技术,自动生成高效逐层推理代码,并搜索推理超参数,自适应硬件优化推理速度。
总结
DGL作为全球领先的图神经网络系统,技术特点突出,开源社区活跃。图神经网络系统仍面临易用性、高性能和大规模图等挑战,DGL在编译、分布式等领域的研究成果为解决这些问题提供了有效途径。欢迎使用并贡献DGL,实习岗位常年开放。