SGL:可扩展图神经网络工具包,助力大规模图学习
项目介绍
SGL(Scalable Graph Learning) 是一个专注于可扩展图学习的图神经网络(GNN)工具包。它旨在支持在超大规模数据集上进行深度图学习,使用户能够轻松实现可扩展的图神经网络,并在各种下游任务(如节点分类、节点聚类和链接预测)中评估其性能。此外,SGL 还支持基于 OpenBox 的自动神经架构搜索功能。SGL 由北京大学 DAIR 实验室的图学习团队设计和开发。
项目技术分析
SGL 的核心优势在于其高可扩展性、自动神经架构搜索功能以及易用性。与现有的 GNN 工具包(如 PyTorch Geometric 和 Deep Graph Library)相比,SGL 在以下三个方面具有显著优势:
- 高可扩展性:SGL 遵循 SGAP 设计范式,能够处理包含数十亿节点和边的图数据。
- 自动神经架构搜索:SGL 能够根据特定任务和预定义的多目标(如推理时间、内存成本和预测性能)自动选择合适的可扩展图神经网络架构。
- 易用性:SGL 提供了用户友好的接口,方便用户实现现有的可扩展 GNN 并执行各种下游任务。
项目及技术应用场景
SGL 适用于以下场景:
- 大规模图数据处理:适用于需要处理包含数十亿节点和边的大规模图数据的场景。
- 自动模型选择:适用于需要根据特定任务自动选择合适图神经网络架构的场景。
- 节点分类与聚类:适用于需要对图中的节点进行分类或聚类的场景。
- 链接预测:适用于需要预测图中节点之间链接关系的场景。
项目特点
- 高可扩展性:SGL 能够处理超大规模图数据,支持数十亿节点和边的图学习。
- 自动神经架构搜索:SGL 提供了自动选择合适图神经网络架构的功能,减少了手动调参的复杂性。
- 易用性:SGL 提供了简洁的接口,方便用户快速上手并实现各种图学习任务。
- 丰富的下游任务支持:SGL 支持节点分类、节点聚类和链接预测等多种下游任务。
快速开始
以下是一个简单的快速开始示例,展示了如何使用 SGL 进行节点分类任务:
from sgl.dataset import Planetoid
from sgl.models.homo import SGC
from sgl.tasks import NodeClassification
dataset = Planetoid("pubmed", "./", "official")
model = SGC(prop_steps=3, feat_dim=dataset.num_features, output_dim=dataset.num_classes)
device = "cuda:0"
test_acc = NodeClassification(dataset, model, lr=0.1, weight_decay=5e-5, epochs=200, device=device).test_acc
相关出版物
SGL 的开发团队在图神经网络领域有着丰富的研究成果,相关论文发表在多个顶级会议上,包括 WWW、NeurIPS、ICML 和 KDD 等。具体论文列表及链接请参见项目文档。
联系我们
如果您有任何技术问题,请提交新的 issue。对于其他问题,请联系 Wentao Zhang(wentao.zhang@pku.edu.cn)或 Zeang Sheng(shengzeang18@pku.edu.cn)。
许可证
SGL 的整个代码库采用 MIT 许可证。
通过 SGL,您可以轻松应对大规模图数据的挑战,并利用自动神经架构搜索功能优化模型性能。无论您是研究者还是开发者,SGL 都将是您进行图学习任务的得力助手。立即开始使用 SGL,探索图神经网络的无限可能!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



