阿里巴巴开源图神经网络平台:Graph-Learn
是一个面向大规模图神经网络的研发和应用而设计的分布式框架,它提供了完整的 GNN 解决方案,涵盖从数据预处理、模型训练到在线推理的各个环节。Graph-Learn 已经成功应用于阿里巴巴的多个业务场景,并不断发展和优化,为 GNN 的应用提供了强大的支持。
图神经网络 (GNN) 近年来在机器学习领域异军突起,在搜索推荐、网络安全、知识图谱等领域展现出巨大潜力。然而,随着图数据规模的不断增长,如何高效地训练和部署 GNN 模型成为了一个巨大的挑战。为了解决这一问题,阿里巴巴开源了 Graph-Learn 平台,提供了一套完整的 GNN 解决方案,涵盖从数据预处理、模型训练到在线推理的各个环节。
Graph-Learn 诞生于阿里巴巴内部,最初名为 AliGraph,经过多年的发展和优化,已经成功应用于阿里巴巴的多个业务场景,例如搜索推荐、网络安全、知识图谱等。Graph-Learn 1.0 版本之后,更进一步增加了在线推理服务,为 GNN 在实际业务中的应用提供了完整的解决方案。
Graph-Learn 的核心功能
Graph-Learn 主要包含两个核心功能:
1. 训练框架:GraphLearn Training
GraphLearn Training 专门针对大规模图数据的训练而设计,提供以下功能:
- 图采样: 支持在批图上进行高效的图采样,提供 Python 和 C++ 接口,以及类似 Gremlin 的 GSL (Graph Sampling Language) 接口。
- 模型训练: 支持离线训练和增量训练,兼容 TensorFlow 和 PyTorch,提供数据层、模型层接口和丰富的模型示例。
GraphLearn Training 的设计目标是简化 GNN 模型的开发流程,并提供高效的训练性能。
2. 在线推理服务:Dynamic Graph Service
Dynamic Graph Service 负责在动态图上进行实时采样和推理,提供以下功能:
- 动态图采样: 支持在流式更新的动态图上进行实时采样,并提供 P99 延迟 20ms 的性能保证。
- 在线推理: 提供 GSL 和 TensorFlow Model Predict 的 Java 接口,支持将训练好的 GNN 模型部署到线上进行实时预测。
Dynamic Graph Service 的设计目标是将 GNN 模型应用到实际业务场景中,并提供低延迟、高性能的推理服务。
Graph-Learn 的应用场景
Graph-Learn 可以应用于各种需要利用图结构数据的场景,例如:
- 搜索推荐: 利用用户行为数据构建用户-商品图,进行个性化推荐。
- 网络安全: 利用网络流量数据构建网络拓扑图,进行异常检测和攻击溯源。
- 知识图谱: 利用实体关系数据构建知识图谱,进行知识推理和问答系统。
Graph-Learn 的架构
Graph-Learn 的架构如下图所示:
整个流程可以概括为以下步骤:
- 用户在 Web 上发起请求,通过 Client 端在动态图上实时采样,并利用采样结果作为模型输入,向 TensorFlow Model service 请求预测结果。
- 用户动作、预测结果、反馈标签以及 Web 上的一些上下文数据落盘到 Data Hub(例如 Log Service)。
- 数据更新作为图更新流入动态图采样服务,更新图。
- GraphLearn Training 小时级别的加载增量数据构图,增量训练模型,并部署到 TensorFlow Model service。
总结
Graph-Learn 是一个面向大规模图神经网络的研发和应用而设计的分布式框架,它提供了完整的 GNN 解决方案,涵盖从数据预处理、模型训练到在线推理的各个环节。Graph-Learn 已经成功应用于阿里巴巴的多个业务场景,并不断发展和优化,为 GNN 的应用提供了强大的支持。
参考文献
@article{zhu2019aligraph,
title={AliGraph: a comprehensive graph neural network platform},
author={Zhu, Rong and Zhao, Kun and Yang, Hongxia and Lin, Wei and Zhou, Chang and Ai, Baole and Li, Yong and Zhou, Jingren},
journal={Proceedings of the VLDB Endowment},
volume={12},
number={12},
pages={2094--2105},
year={2019},
publisher={VLDB Endowment}
}
更多推荐
所有评论(0)