[EuroSys2023 Best Poster] 面向动态图的极低时延GNN推理采样服务

简介: GraphLearn团队和浙大联合发表的论文被评选为EuroSys2023 best poster。

作者:沈雯婷

GraphLearn是阿里云机器学习平台PAI 团队和达摩院智能计算实验室图计算团队共建的工业界大规模图神经网络训练框架, 也是一站式图计算平台GraphScope的图学习引擎。GraphLearn最新开源了面向动态图的GNN在线推理实时采样服务(DGS)。DGS具备处理实时高吞吐图更新的能力,并能保证低时延、高并发的推理采样查询处理。其图更新和采样查询的性能在分布式环境下线性可扩展。近期,GraphLearn团队和浙大联合发表的《Dynamic Graph Sampling Service for Real-time GNN Inference at Scale》被评选为EuroSys2023 best poster。

1.png

Poster地址:https://2023.eurosys.org/docs/posters/eurosys23posters-final40.pdf
开源项目地址: GraphLearn, GraphScope

背景介绍

GNN模型通过图结构表征高阶邻域信息,在大规模工业落地中,一种常用的训练方式是通过邻域采样的方式来降低通信和计算的开销,从而获得分布式的扩展性。与此同时,在推荐、金融反欺诈等真实业务场景中,图的结构和属性往往会随着时间动态变化,GNN模型需要能实时采样并表征这些邻域的动态信息。

由于在线学习容易造成模型的抖动,在实际生产应用中,模型的部署也通常需要经过复杂的生产链路,因此一般采用近线模型进行部署,为了让GNN模型能够实时表征邻域信息,在GNN模型的推理过程中,需要通过实时的采样图结构和属性来进行实时推理。

为保证用户体验,这种实时推理的任务具有极低时延的需求,留给采样查询的时延空间非常小。同时,由于工业大图的数据规模和在线推理服务的QPS往往超出单机的存储和计算能力。因此,我们需要提供一个在大规模的动态图上保障极低时延的面向GNN模型推理的实时采样服务(P99在20毫秒以内),并具备在分布式环境下线性扩展的能力。

挑战

实时图采样服务的直观做法是维护一个动态图的存储和查询模块,在推理请求到达时对请求的点进行邻居采样计算和属性收集,采样计算得到的样本作为模型服务的输入进行推理。但是图数据的分布和推理采样的负载特性,导致这种直观的做法难以在分布式的动态图上实现稳定的低延时采样,具体地,存在以下挑战:

  1. 邻居采样需要遍历所有的邻居,并且随着图的动态变化,邻居不断变化,难以保证复杂的采样计算的低时延,超点的存在也造成了时延的不稳定。
  2. 由于图数据分布存在不均衡的特点,各个图分片上的存储和计算负载分布不均,造成采样延时的不稳定,也为分布式下线性扩展带来挑战。
  3. 推理采样一般为多跳采样,并且需要收集顶点或边上的动态属性,在分布式图上,多跳采样和属性访问带来的网络和本地I/O开销,对时延造成很大的影响。

关键设计

与一般图数据库的负载不同,动态图推理采样服务在服务于一个给定的模型的在线推理时,其对应的图采样具有固定的pattern。如一个常见User-Item,Item-Item二部图上的GraphSAGE模型,这个图采样的pattern一般是对于请求的用户ID(feed_id),根据时间戳作为概率采样它最新2个最新购买的商品,对这2个商品采样他们相关系数最高的2个商品。用GraphLearn提供的GSL(Graph Sampling Language)表达成如下Query:

image.png

图1: 二跳采样Query

这种固定pattern的Query,给大规模的动态图采样提供了稳定的低延时服务的机会。

DGS系统设计的关键点:

  1. 存算分离和感知Query的Cache

DGS将图存储和采样计算进行分离。采样计算一般是指随机采样,最新邻居采样(topk timestamp),或通过边权重(或边timestamp)做概率分布采样。前两种采样的时间复杂度为O(1),概率分布采样通常使用Alias Method实现,在动态图中变化的概率分布上需要反复计算Alias Table,其时间和空间复杂度均为O(N), 其中,N为顶点的邻居数,并不断发生变化。与图存储的简单读写不同,图采样过程包含存储的读写与复杂的计算,因此我们首先将存储和计算进行分离,并且在计算侧,系统预先将服务的特定Query所需要访问的数据cache起来,以提升图采样计算的空间局部性。

  1. Event-driven预采样

为了加速采样请求的响应,DGS将每个顶点的采样计算从请求输入的时刻提前到图更新事件发生的时刻,利用空间换取时间,使得采样请求发生时仅需要完成点查。同时,为了降低图更新事件从发生到样本生成之间的staleness,DGS采用流采样的方式,通过带权重的蓄水池采样算法,在每个更新到达时,根据预安装的Query,进行流式采样。这种图更新事件驱动的采样前置的方式,使得对每个顶点的图数据存储空间和计算时间都变成了常数*O(K),其中K为蓄水池大小。通过将图采样计算的结果预先存储在cache中解决了挑战1中的问题。


  1. Multi-hop拆解和Lazy拼接

至此,DGS解决了输入顶点的实时一跳采样。然而DGS主要服务于多跳采样,以二跳采样为例,输入顶点的一跳结果更新后,对应的二跳结果也需要更新(同时更新收集的属性)。在跳数更多的情况下,这种连锁反应造成的指数级增长的读写开销,对采样请求的时延产生巨大的影响。DGS解决该问题的方式是根据预安装的Query,将图采样按照每一跳进行拆解。对于每一跳采样,对图中对应顶点类型的所有顶点进行对应的流式预采样和存储。例如,图1中的Query可以拆解位图2所示,结合Event-driven预采样,每个顶点对应的样本在蓄水池中存储和更新如图3所示。

并且,DGS将多跳样本的拼接推迟到对应的推理采样请求发生的时刻(Lazy拼接),以避免提前拼接后持续更新。

image.png

图2: 二跳采样Query拆解


image.png

图3:Event-driven更新


  1. 订阅-发布机制

我们将多跳的拼接延迟到请求发生的时候,然而,多跳结果往往存储在不同分片上,跨机通信带来了大量的网络通信开销。因此,DGS设计了一套订阅-发布机制,即将请求的id根据特定的分片算法路由到对应的服务机器上,该机器上订阅这些id和它的多跳邻居的更新。随着邻居关系的改变,订阅表也不断更新。


  1. 读写隔离

根据以上的系统设计,当采样请求发生时,DGS将它路由到指定worker,进行本地的查询即可获得多跳采样结果。为了优先保障读的latency,同时保证写的staleness,DGS在调度读写task时进行优先级调度。同时,在系统架构上,将频繁计算和更新存储(写)的任务和响应采样请求(读)的任务放在不同的机器上,进行读写的隔离。


系统架构

DGS系统的核心组件架构如下图所示,主要为Sampling Worker和Server Worker组件。

image.png

图4: DGS系统核心架构

图更新根据Key(例如顶点ID)分片发给Sampling Worker的对应分区。每个Sampling Worker负责特定的分区:进行一跳预采样并将结果发给Serving Worker。每个Serving Worker缓存从Sampling Worker接收到的K个一跳查询的采样结果,并响应全图中某一特定分片的顶点的推理采样请求。

Sampling Workers和Serving Workers可以独立的进行弹性扩缩容,以应对图更新和推理请求的负载变化。为了让生成完整K跳采样结果的延迟最小化,DGS将顶点image.png的所有K跳采样结果提前发送给响应image.png推理请求的Serving Worker,使得K跳图采样计算转化为仅需要访问Serving Worker上本地缓存的操作。为了实现这一点,每个Sampling Worker维护每个一跳查询的订阅表,记录订阅一跳查询结果的Serving Worker列表。例如,将顶点

image.png从image.png的一跳样本中增删会触发消息来将该事件发送到包含image.png的分区的Sampling Worker,并相应地更新image.png的订阅信息。

通过这种设计,DGS可以在高并发的推理采样的负载下,表现出非常稳定的延迟性能。

性能

在真实的阿里巴巴电子商务数据集上进行的实验表明,DGS可以将推理请求 (两跳随机采样查询)的P99延迟保持在20ms毫秒之内,单个Serving Worker的QPS约20,000,并可以线性扩展。图数据更新的吞吐达到109MB/s,也同样可以线性扩展。

image.png

图5: 实验配置和性能数据

结语

本文对DGS进行了技术解读,介绍了DGS核心模型的设计思路。实际上,DGS作为服务还包含了服务拉起模块、高可用模块、数据加载模块,以及和模型服务对接的客户端,借助DGS,用户可以基于实时变化的图结构和特征来推理得到最新的图表征。我们提供了一个端到端的基于GraphLearn的训练、模型部署和基于DGS在线推理的tutorial,欢迎试用!更多细节请参考源码和技术文档。

相关实践学习
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
7月前
|
人工智能 Ubuntu Linux
喂饭级教程:OpenClaw(Clawdbot)阿里云+本地部署攻略,附超实用进阶玩法
OpenClaw(原Clawdbot)并非简单的聊天机器人,而是一款具备任务执行、定时调度、工具协同能力的智能Agent,其核心价值在于将AI的推理能力与实际工作流程结合,实现自动化办公、开发辅助、内容生产等多场景落地。很多用户完成基础部署后仅将其用于简单对话,实则浪费了其强大的自动化能力。本文将完整拆解2026年阿里云服务器与本地多系统的OpenClaw部署流程,同时分享从基础到高阶的实操玩法,涵盖AI日报生成、编程调度、第二大脑搭建等核心场景,所有操作均附带可直接复制的代码命令,全程无营销词汇,助力打造专属的智能工作助手。
2496 1
|
6月前
|
SQL 人工智能 运维
DataWorks Data Agent:一句话搞定数据开发,让周期从天级到分钟级
DataWorks Data Agent 是阿里云推出的AI原生数据开发智能体,覆盖集成、开发、运维、治理、分析全链路。它深度适配业务逻辑与开发规范,支持自然语言一键生成可信SQL及全流程交付。淘宝闪购实测:指标开发从6–8小时缩短至5–10分钟,真正实现“一句话交付”。
1304 2
|
人工智能 自然语言处理 Cloud Native
快速使用Milvus MCP Server,0代码搭建智能搜索Agent
阿里云向量检索服务Milvus版是一款云原生向量检索引擎。目前Milvus提供了milvus-mcp-server来对接各种AI Agent,支持包括:更新向量数据、创建索引、混合检索(向量+全文)、多向量列检索等多种能力。本文介绍了如何使用Milvus-mcp-server来搭建智能搜索Agent,并分别使用Cline和Cursor进行部署展示。
1942 6
|
存储 人工智能 大数据
云栖2025|阿里云开源大数据发布新一代“湖流一体”数智平台及全栈技术升级
阿里云在云栖大会发布“湖流一体”数智平台,推出DLF-3.0全模态湖仓、实时计算Flink版升级及EMR系列新品,融合实时化、多模态、智能化技术,打造AI时代高效开放的数据底座,赋能企业数字化转型。
3256 0
|
机器学习/深度学习 安全 大数据
揭秘!企业级大模型如何安全高效私有化部署?全面解析最佳实践,助你打造智能业务新引擎!
【10月更文挑战第24天】本文详细探讨了企业级大模型私有化部署的最佳实践,涵盖数据隐私与安全、定制化配置、部署流程、性能优化及安全措施。通过私有化部署,企业能够完全控制数据,确保敏感信息的安全,同时根据自身需求进行优化,提升计算性能和处理效率。示例代码展示了如何利用Python和TensorFlow进行文本分类任务的模型训练。
1388 6
|
Serverless BI
有奖实践,基于EMR StarRocks实现游戏玩家画像和行为分析
阿里云EMR-StarRocks联合镜舟科技,基于EMR-StarRocks实现游戏实时湖仓分析,免费试用物化视图、Paimon写入查询等新能力,前45位赢取StarRocks定制T恤、Lamy钢笔,小米充电宝,阿里云拍拍灯等活动礼品,前500位均可获得创意马克杯。
582 7
|
人工智能 运维 NoSQL
云栖大会|多模+一体化,构建更高效的AI应用
在2024年云栖大会「NoSQL数据库」专场,多位知名企业和阿里云瑶池数据库团队的技术专家,共同分享了阿里云Lindorm、Tair、MongoDB和MyBase的最新进展与实践。Tair推出Serverless KV服务,解决性能瓶颈和运维难题;Lindorm助力AI和具身智能时代的多模数据处理;MongoDB云原生化提升开发效率;MyBase One打破云边界,提供云边端一体化服务。这些技术进展和最佳实践,展示了阿里云在NoSQL数据库领域的创新能力和广泛应用前景。
|
数据采集 运维 DataWorks
DataWorks on EMR StarRocks,打造标准湖仓新范式
本文整理自阿里云计算平台产品专家周硕(簌篱)在阿里云DataWorks on EMR StarRocks解决方案介绍中的分享。介绍了阿里云DataWorks与EMR Serverless StarRocks的结合使用,详细阐述了在数据同步、数据消费、数据治理三大场景中的核心能力。DataWorks作为大数据开发治理平台,提供了从数据建模、数据集成、数据开发到数据治理的全链路解决方案,结合StarRocks的高性能分析能力,帮助企业实现OLAP分析、湖仓一体开发及数据综合治理,满足复杂业务场景下的需求,提升数据处理和分析效率。
|
人工智能 大数据 网络虚拟化
引领开放 阿里云持续推动开源生态发展
阿里云基础设施网络承办了“SONiC技术与应用分论坛“暨”第二届SONiC社区中国区分论坛“,携手国内外行业精英,分享了围绕SONiC的实践和创新
|
存储 传感器 网络协议
异步传输:概念、特点与应用
【8月更文挑战第24天】
1670 0

热门文章

最新文章