阿里巴巴艾宝乐大规模图学习平台GraphLearn
01 平台介绍
GraphLearn 是阿里巴巴开发的工业级大规模图学习平台,支持百亿边、十亿点规模的图,兼容常用深度学习框架,提供简洁灵活的数据预处理封装。平台支持异构图、属性图、有向图、无向图,具备多种采样、负采样策略,高效的多线程异步采样,支持多种数据源(ODPS、OSS、HDFS)。GraphLearn 支持多种 GNN 算法(GraphSAGE、GCN、GAT、Bipartite-GraphSAGE、RGCN、UltraGCN等),兼容 TensorFlow 1.x 和 PyTorch/PyG,支持 GPU 训练优化(即将开源),支持在线推理(即将开源),Temporal GNN(开发中)。开源地址:https://github.com/alibaba/graph-learn,文档地址:https://graph-learn.readthedocs.io/zh_CN/latest/
02 系统优化
采样优化
采样抽象为 queryDAG 进行并行,基于 Actor 的无锁纯异步调度,与训练过程 pipeline 匹配,支持 Gremlin-like 语言。针对稀疏场景的 GNN 模型优化,采用 AdamAsyncOptimizer 加速梯度更新,输入 string 特征 hash 压缩存储,Embedding coalescence 高性能 embedding lookup,高质量边生成方法,Batch-share 负采样+SoftmaxCE 损失函数,Embedding normalization。
gl_torch:针对 PyTorch 的 GPU 加速 GNN 训练
典型流程问题:Graph-Learn PyTorch 瓶颈在 IO(通信、数据拷贝和格式转换)。优化思路:通信优化、减少数据转换、利用图的性质(提高 locality)。与 quiverteam 合作,开发 gl_torch。GPU 采样性能提升显著,单卡 GPU 采样速度是 PyG CPU(单核)的 80 倍左右。支持 UnifiedTensor,实现 GPU 间 p2p 访问和 GPU Zero-Copy 访问内存。运行模式优化显示,特征全在 GPU 时性能提升显著,8 卡 GPU 相比单卡速度提升 70 倍。
03 应用案例
推荐召回
- GraphSAGE:将 u2i/i2i 推荐问题转换成顶点间的边连接预测问题,不局限于行为历史序列,可挖掘多类型高阶关系,易捕捉数据的动态变化,运行效率高。
- 丰富的模型库:i2i 召回使用高质量 i2i 图和 GraphSAGE 模型,提高长尾覆盖;u2i 召回使用 UltraGCN 模型,简化 GCN 模型,直接计算 user 和其点击过的 item 及相似 item 的内积;序列推荐使用 SURGE 模型,将序列通过 metric learning 转换成图,用 GNN 挖掘用户兴趣。
安全风控
- 垃圾注册检测:使用多种类型边的 RGCN 算法,发掘账号之间的团伙信息。
- 垃圾评论识别:使用 GCN 模型进行点分类,识别垃圾评论。
04 在线推理
在线推理采样服务系统架构性能优异,2 跳采样 P99 延时 20ms,分钟级图更新,QPS 单机 2 万,线性扩展。在线推理链路高效支持实时推理需求。