《4-1 大规模图学习平台 GraphLearn.pdf》由会员分享,可在线阅读,更多相关《4-1 大规模图学习平台 GraphLearn.pdf(28页珍藏版)》请在三个皮匠报告上搜索。
1、|阿里巴巴 艾宝乐大规模图学习平台GraphLearn|目录1.平台介绍2.系统优化3.应用案例4.在线推理|01平台介绍|GraphLearn:工业级大规模图学习平台Server 0Server 1Server 2Server nTensor EngineGraph EngineDatasetPythonTensorFlow&PyTorchGSLSampler,KnnOperatorEgoGraph,SubGraphLarge-scaleHeterogeneousAttributedGNNRPCFriendlyFlexibleRobustEffectiveGCN,SAGE,GAT,SEAL|
2、GraphLearn 拓扑和特征存储|GraphLearn 采样实现Alias Method O(1)时间复杂度边权重预排序多种采样策略:Topk,random,edge_weight,in_degreeOp执行逻辑采样执行逻辑|GraphLearn GNN模型范式 EgoGraph based GNN(v0.4)dense格式采样树状子图root_node,1-hop nodes,2-hop nodes,SubGraph based GNN(v1.0)更general的sparse格式采样子图(类似PyG的Data)edge_index,node_featurenode-centric ag
3、gregationgraph message passingGNN训练流程1.子图采样2.特征预处理3.消息传递|分布式图存储和查询引擎兼容常用深度学习框架提供简洁灵活的数据预处理封装常用图卷积层,支持异构图实现常见GNNs,KG等算法,支持自定义算法GraphLearn 架构|GraphLearn GNN训练链路|GraphLearn:分布式图学习平台 支持百亿边、十亿点规模图 支持异构图、属性图、有向图、无向图 支持多种采样、负采样策略 高效的多线程异步采样 支持多种数据源(ODPS,OSS,HDFS)支持多种GNN算法:GraphSAGE,GCN,GAT,Bipartite-GraphS
4、AGE,RGCN,UltraGCN等 支持Tensorflow1.x和PyTorch/PyG GPU训练优化(即将开源)在线推理(即将开源)Temporal GNN(开发中)开源地址 https:/ https:/graph-learn.readthedocs.io/zh_CN/latest/|02系统优化|采样优化问题:GNN训练采样和特征查找成为瓶颈 采样抽象为query DAG进行并行 基于Actor的无锁纯异步调度 和训练过程pipeline Gremlin-like languageg.E(u2i).batch(64).alias(edge).outV().alias(src)|稀疏
5、场景GNN模型优化性能优化 AdamAsync Optimizer,加速梯度更新 输入string特征hash压缩存储,减少通信和存储 Embedding coalescence,高性能embedding lookup效果优化 高质量边生成方法 Batch-share 负采样+Softmax CE损失函数 Embedding normalization|gl_torch:针对PyTorch的GPU加速GNN训练典型流程问题:Graph-Learn PyTorch瓶颈在IO(通信,数据拷贝和格式转换)优化思路:通信优化 减少数据转换 利用图的性质(提高locality)OSDI21 P3:Dis
6、tributed Deep Graph Learning at Scale和quiver team合作 https:/ GPU sampling 图拓扑使用CSR格式存储在GPU/pin memory CUDA Kernel进行采样CPUPin MemoryGPUPyG0.87M-gl_torch-51.39M70.83MOGBN-Products 采样边数/sbatch_size=1024nbrs=15,10,5V100 GPUgl_torch GPU采样是pyg CPU(单核)采样的80倍左右|gl_torch