十亿节点大规模图计算降至「分钟」级,腾讯开源图计算框架柏拉图
ccwgpt 2024-10-20 04:48 33 浏览 0 评论
机器之心报道
参与:蛋酱
11 月 14 日,腾讯正式宣布开源高性能图计算框架 Plato,据介绍,Plato 可满足十亿级节点的超大规模图计算需求,将算法计算时间从「天」级缩短到「分钟」级,性能全面领先于其它主流分布式图计算框架,并且打破了原本动辄需要数百台服务器的资源瓶颈。
Plato 开源地址:https://github.com/tencent/plato
伴随着人工智能领域技术的发展,「图计算」的应用场景也越来越广泛。熟悉的人都知道,图计算的「图」并不是指普通的图像和照片,而是用于表示对象之间关联关系的一种抽象数据结构。图计算可以将不同来源、不同类型的数据融合到同一个图里进行分析,得到原本独立分析难以发现的结果,因此成为社交网络、推荐系统、网络安全、文本检索和生物医疗等领域至关重要的数据分析和挖掘工具。
最强性能的图计算框架 Plato
Plato 是腾讯内部图计算 TGraph 团队整合内部资源自主研发的一款高性能图计算框架,取名 Plato 是为了致敬伟大的数学家柏拉图。目前腾讯云大数据团队正在封装 Plato,即将对所有开发者开放使用。
相对于目前全球范围内其它的图计算框架,Plato 可满足十亿级节点的超大规模图计算需求,将算法计算时间从天级缩短到分钟级,性能全面领先于其它主流分布式图计算框架,并且打破了原本动辄需要数百台服务器的资源瓶颈。现在,最少只需要十台服务器即可完成计算。
综合来说,Plato 在计算性能方面极其强悍,主要有以下贡献:
- Plato 能高效地支撑腾讯超大规模社交网络图数据的各类计算,且性能达到了学术界和工业界的顶尖水平,比 Spark GraphX 高出 1-2 个数量级,使得许多按天计算的算法可在小时甚至分钟级别完成,也意味着腾讯图计算全面进入了分钟级时代;
- Plato 的内存消耗比 Spark GraphX 减少了 1-2 个数量级,意味着只需中小规模的集群(10 台服务器左右)即可完成腾讯数据量级的超大规模图计算,打破了动辄需要上百台服务器的资源瓶颈,同时也极大地节约了计算成本;
- Plato 隶属腾讯图计算 TGraph,起源于超大规模社交网络图数据,但可以完美适配其他类型的图数据,同时,Plato 作为高性能、可扩展、易插拔的工业级图计算框架,推动了业界超大规模图计算框架的技术进步。
两大核心能力
目前,Plato 主要提供两大核心能力:腾讯数据量级下的离线图计算和腾讯数据量级下的图表示学习。同时,Plato 可运行在通用的 X86 集群,如 Kubernetes 集群、Yarn 集群等。在文件系统层面,Plato 提供了多种接口支持主流的文件系统,如 HDFS、Ceph 等。
腾讯 Plato 整体架构图
在架构设计上,Plato 框架的核心是自适应图计算引擎,它能够根据不同类型的图算法,提供多种计算模式供开发者灵活选择,包括自适应计算模式、共享内存计算模式和流水线计算模式等。另外,还设计了良好的接口支持接入新的计算通信模式。
在计算引擎之上,Plato 为算法设计者或具体的业务提供多层次接口:从底层的 API,到图算法库,再到为具体业务量身打造的「解决方案」——图工具集。通过这些应用层的接口和工具,Plato 还可以把离线计算结果与其他机器学习算法相结合,共同支撑顶层的不同业务。
值得一提的是,目前 Plato 的算法库中的图特征、节点中心性指标、连通图和社团识别等多种算法都已经开源,未来还将进一步开源更多的算法。
目前已经开源的算法包括:
- 图特征
- 树深度/宽度
- 图特征打包计算:节点数/边数/密度/节点度分布
- N-阶度
- HyperANF
- 节点中心性指标
- KCore
- Pagerank
- Closeness
- Betweenness
- 连通图 & 社团识别
- Connected-Component
- LPA
- HANP
- 图表示学习
- Node2Vec-Randomwalk
- Metapath-Randomwalk
- 聚类/分圈算法
- LDA
- FastUnfolding
- 其他图相关算法
- BFS
- 共同类计算
即将开源的算法:
- Network Embedding
- LINE
- Word2Vec
- GraphVite
- GNN
- GCN
- GraphSage
性能对比
下图选取了 Plato 与 Spark GraphX 在 PageRank 和 LPA 这两个 benchmark 算法中的性能对比(受限于篇幅原因,其他 benchmark 算法性能对比不再赘述,性能对比和上述两个算法类似)。从下图可以看到,Plato 的性能比 Spark GraphX 高出 1-2 个数量级。
除了计算性能不足,内存占用过大也是限制大规模图计算的主要因素。Plato 的另一个巨大优势则是它的内存开销远小于主流图计算框架。从下图可以看出,Plato 的内存消耗比 Spark GraphX 减少了 1-2 个数量级,为超大规模图计算创造了更大的想象空间。
Plato 不仅在 benchmark 算法中独树一帜,在真实的业务算法中也同样成效卓著。在腾讯数据量级下,Plato 的计算性能也非常优秀。下图给出了 Plato 在腾讯数据量级下的共同类计算、Node2Vec、LINE、GraphSage 等典型业务算法的性能(受限于篇幅原因,其他算法性能不再赘述,性能和上述算法类似)。
腾讯开源蓝图
Plato 高性能、可扩展、易插拔的特性在社交网络、推荐系统、生物医疗等领域应用前景广阔,例如定期对网页进行影响力排序以提升用户的搜索体验、分析庞大的社交网络结构以便精准地为用户推荐服务、通过子图匹配等方式了解蛋白质间的相互作用从而研制更有效的临床医药等。
在上周的 Techo 开发者大会上,腾讯也正式宣布 TubeMQ、Tencent Kona JDK、TBase、TKEStack 四大重点项目的开源。统计下来,腾讯已经在 GitHub 上开源了 86 个项目,位列 Github 全球公司贡献榜的 Top 10。据了解,在腾讯内部推开源协同的战略推动下,目前尚未开源的 SuperSQL 等也将会陆续开源。
相关推荐
- 一个基于.Net Core遵循Clean Architecture原则开源架构
-
今天给大家推荐一个遵循CleanArchitecture原则开源架构。项目简介这是基于Asp.netCore6开发的,遵循CleanArchitecture原则,可以高效、快速地构建基于Ra...
- AI写代码翻车无数次,我发现只要提前做好这3步,bug立减80%
-
写十万行全是bug之后终于找到方法了开发"提示词管理助手"新版本那会儿,我差点被bug整崩溃。刚开始两周,全靠AI改代码架构,结果十万行程序漏洞百出。本来以为AI说没问题就稳了,结果...
- OneCode低代码平台的事件驱动设计:架构解析与实践
-
引言:低代码平台的事件驱动范式在现代软件开发中,事件驱动架构(EDA)已成为构建灵活、松耦合系统的核心范式。OneCode低代码平台通过创新性的注解驱动设计,将事件驱动理念深度融入平台架构,实现了业务...
- 国内大厂AI插件评测:根据UI图生成Vue前端代码
-
在IDEA中安装大厂的AI插件,打开ruoyi增强项目:yudao-ui-admin-vue31.CodeBuddy插件登录腾讯的CodeBuddy后,大模型选择deepseek-v3,输入提示语:...
- AI+低代码技术揭秘(二):核心架构
-
本文档介绍了为VTJ低代码平台提供支持的基本架构组件,包括Engine编排层、Provider服务系统、数据模型和代码生成管道。有关UI组件库和widget系统的信息,请参阅UI...
- GitDiagram用AI把代码库变成可视化架构图
-
这是一个名为gitdiagram的开源工具,可将GitHub仓库实时转换为交互式架构图,帮助开发者快速理解代码结构。核心功能一键可视化:替换GitHubURL中的"hub...
- 30天自制操作系统:第六天:代码架构整理与中断处理
-
1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):在设计上,cpu单独只能处理一个中断。而pic是将8个中断信号集合成一个中断...
- AI写代码越帮越忙?2025年研究揭露惊人真相
-
近年来,AI工具如雨后春笋般涌现,许多人开始幻想程序员的未来就是“对着AI说几句话”,就能轻松写出完美的代码。然而,2025年的一项最新研究却颠覆了这一期待,揭示了一个令人意外的结果。研究邀请了16位...
- 一键理解开源项目:两个自动生成GitHub代码架构图与说明书工具
-
一、GitDiagram可以一键生成github代码仓库的架构图如果想要可视化github开源项目:https://github.com/luler/reflex_ai_fast,也可以直接把域名替换...
- 5分钟掌握 c# 网络通讯架构及代码示例
-
以下是C#网络通讯架构的核心要点及代码示例,按协议类型分类整理:一、TCP协议(可靠连接)1.同步通信//服务器端usingSystem.Net.Sockets;usingTcpListene...
- 从复杂到优雅:用建造者和责任链重塑代码架构
-
引用设计模式是软件开发中的重要工具,它为解决常见问题提供了标准化的解决方案,提高了代码的可维护性和可扩展性,提升了开发效率,促进了团队协作,提高了软件质量,并帮助开发者更好地适应需求变化。通过学习和应...
- 低代码开发当道,我还需要学习LangChain这些框架吗?| IT杂谈
-
专注LLM深度应用,关注我不迷路前两天有位兄弟问了个问题:当然我很能理解这位朋友的担忧:期望效率最大化,时间用在刀刃上,“不要重新发明轮子”嘛。铺天盖地的AI信息轰炸与概念炒作,很容易让人浮躁与迷茫。...
- 框架设计并不是简单粗暴地写代码,而是要先弄清逻辑
-
3.框架设计3.框架设计本节我们要开发一个UI框架,底层以白鹭引擎为例。框架设计的第一步并不是直接撸代码,而是先想清楚设计思想,抽象。一个一个的UI窗口是独立的吗?不是的,...
- 大佬用 Avalonia 框架开发的 C# 代码 IDE
-
AvalonStudioAvalonStudio是一个开源的跨平台的开发编辑器(IDE),AvalonStudio的目标是成为一个功能齐全,并且可以让开发者快速使用的IDE,提高开发的生产力。A...
- 轻量级框架Lagent 仅需20行代码即可构建自己的智能代理
-
站长之家(ChinaZ.com)8月30日消息:Lagent是一个专注于基于LLM模型的代理开发的轻量级框架。它的设计旨在简化和提高这种模型下代理的开发效率。LLM模型是一种强大的工具,可以...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- 知识框架图 (52)
- ppt框架 (55)
- 框架图模板 (59)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)