在Graphcore IPU上加速和扩展时态图网络

news2024/11/26 22:31:43

Graphcore Bow IPU机器。

一、说明

        IPU 是一种全新的大规模并行处理器,与Poplar® SDK共同设计,旨在加速机器智能。自第一代 Colossus IPU 以来,我们在芯片和系统架构中的计算、通信和内存方面取得了突破性进展,与 MK1 IPU 相比,实际性能提高了 8 倍。 GC200 是世界上最复杂的处理器,得益于 Poplar 软件,它变得易于使用,因此创新者可以实现人工智能突破。

二、图神经网络的硬件化

         图神经网络 (GNN) 标准硬件的适用性是 Graph ML 社区中经常被忽视的问题。在这篇文章中,我们探讨了在Graphcore开发的新硬件架构上实现Temporal GNNs,该架构是为图形结构的工作负载量身定制的。
        GRAPH 结构化数据出现在处理交互实体的复杂系统的许多问题中。近年来,将机器学习方法应用于图结构数据的方法,特别是图神经网络 (GNN),已经见证了巨大的普及。
        大多数 GNN 架构都假定图形是固定的。然而,这种假设往往过于简单:因为在许多应用程序中,底层系统是动态的,所以图形会随着时间的推移而变化。例如,在社交网络或推荐系统中,描述用户与内容交互的图表可以实时变化。最近开发了几种能够处理动态图的GNN架构,包括我们自己的时态图网络(TGN)[1]。

        人与人之间交互的图形通过在时间戳 t₁ 和 t₂ 处获得新边缘而动态变化

        在在这篇文章中,我们探讨了TGN在不同大小的动态图中的应用,并研究了这类模型的计算复杂性。我们使用Graphcore的弓形智能处理单元(IPU)来训练TGN,并演示为什么IPU的架构非常适合解决这些复杂性,在将单个IPU处理器与NVIDIA A100 GPU进行比较时,可以将速度提高一个数量级。

TGN架构,我们在上一篇文章中详细描述过,它由两个主要组件组成:首先,节点嵌入是通过经典的图神经网络架构生成的,这里实现为单层图注意力网络[2]。此外,TGN 还保留了一个内存,总结了每个节点过去的所有交互。该存储通过稀疏读/写操作访问,并使用门控循环网络(GRU)[3]通过新的交互进行更新。

TGN 架构。底行表示具有单个消息传递步骤的 GNN。顶行说明了图形中每个节点的额外内存。

        我们专注于通过获得新优势而随时间变化的图表。在这种情况下,给定节点的内存包含以此节点为目标的所有 Edge 及其各自目标节点的信息。通过间接贡献,给定节点的内存还可以保存有关更远节点的信息,从而使图注意力网络中的其他层变得可有可无。

三、应用于小图

        我们首先在JODIE Wikipedia数据集[4]上试验TGN,这是一个维基百科文章和用户的二分图,其中用户和文章之间的每条边都代表用户对文章的编辑。该图由 9,227 个节点(8,227 个用户和 1,000 篇文章)和 157,474 条时间戳边组成,这些边用 172 维 LIWC 特征向量 [5] 注释,用于描述编辑。

        在训练过程中,将边逐批插入到最初断开连接的节点集中,同时使用真实边和随机采样的负边的对比损失来训练模型。验证结果报告为在随机采样的负边上识别真实边的概率。

        直观地说,大批量对训练和推理都有不利影响:节点内存和图形连接都只有在处理完整个批处理后才会更新。因此,一个批次中的后续事件可能依赖于过时的信息,因为它们不知道批处理中的早期事件。事实上,我们观察到大批量对任务性能的不利影响,如下图所示:

        当使用不同的批量大小进行训练并使用固定的批量大小 10 进行验证(左)以及使用固定的批量大小 10 进行训练并使用不同的批量大小进行验证(右)时,TGN 对 JODIE/Wikipedia 数据的准确性。

        H尽管如此,小批量的使用强调了快速内存访问对于在训练和推理期间实现高吞吐量的重要性。因此,与具有较小批量大小的GPU相比,具有大处理器内存的IPU表现出越来越大的吞吐量优势,如下图所示。特别是,当使用10个TGN的批量时,在IPU上训练的速度大约快11倍,即使使用200个大批量的训练,在IPU上训练的速度仍然快3倍左右。

        与NVIDIA A100 GPU相比,使用Bow2000 IPU系统中的单个IPU时,不同批量大小的吞吐量有所提高。

        自为了更好地理解TGN在Graphcore的IPU上训练的吞吐量的提高,我们调查了不同硬件平台在TGN的关键操作上所花费的时间。我们发现,花在GPU上的时间主要由Attention模块和GRU,这两个操作在IPU上执行效率更高。此外,在所有操作中,IPU可以更有效地处理小批量。

特别是,我们观察到IPU的优势随着更小和更碎片化的内存操作而增长。更一般地说,我们得出的结论是,当计算和内存访问非常异构时,IPU架构比GPU具有显着优势。

        TGN在IPU和GPU上不同批量大小的关键操作的时间比较。

四、缩放到大型图形

        虽然默认配置下的TGN模型相对轻量级,大约有260,000个参数,但当将模型应用于大型图形时,大部分IPU处理器内存都由节点内存使用。但是,由于它的访问稀疏,因此可以将该张量移动到片外存储器中,在这种情况下,处理器内存利用率与图形的大小无关。

        自在大型图上测试TGN架构,我们将其应用于包含1550万Twitter用户之间的2.61亿关注者的匿名图[6]。边缘分配了 728 个不同的时间戳,这些时间戳尊重日期顺序,但在发生以下事件时不提供有关实际日期的任何信息。由于此数据集中不存在节点或边缘特征,因此该模型完全依赖于图拓扑和时间演变来预测新链接。

        由于与单个负样本相比,大量数据使得识别正边的任务过于简单,因此我们使用 1000 个随机采样的负边中真实边的平均倒数秩 (MRR) 作为验证指标。此外,我们发现,当增加数据集大小时,模型性能受益于更大的隐藏大小。对于给定的数据,我们将潜在大小 256 确定为准确性和吞吐量之间的最佳点。

模型不同隐藏大小的 1000 个负样本之间的平均倒数排名。

        U节点内存的单片外存储器可将吞吐量降低约两倍。然而,使用不同大小的诱导子图以及具有 10×Twitter 图节点数和随机连通性的合成数据集,我们证明了吞吐量几乎与图的大小无关(见下表)。在IPU上使用这种技术,TGN可以应用于几乎任意的图形大小,仅受可用主机内存量的限制,同时在训练和推理期间保持非常高的吞吐量。

        每批大小 256 在不同图形大小上训练具有隐藏大小 256 的 TGN 的时间。Twitter-tiny 的大小与 JODIE/Wikipedia 数据集相似。

        如我们之前已经反复指出,选择硬件来实现 Graph ML 模型是一个关键但经常被忽视的问题。特别是在研究界,云计算服务的可用性抽象出底层硬件,导致这方面有一定的“懒惰”。但是,当涉及到在具有实时延迟要求的大规模数据集上实现系统时,硬件考虑不再容易。我们希望我们的研究能够引起人们对这一重要课题的更多关注,并为未来更高效的Graph ML应用算法和硬件架构铺平道路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1582400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python批量修改替换cad图纸文本,土木狗可以有

civilpy:python进行AutoCAD绘图的两个库,土木狗可以有3 赞同 0 评论文章​编辑 civilpy:python进行AutoCAD绘图批量打印,土木狗可以有2 赞同 2 评论文章​编辑 # 导入所需库 from pyautocad import Autocad, APoint import ma…

探索 PostgreSQL 的高级数据类型 - 第2部分

Navicat for PostgreSQL 是一套专为PostgreSQL设计的强大数据库管理及开发工具。它可以在PostgreSQL数据库7.5以上的版本中运行,并且支持大部份最新的PostgreSQL功能,包括触发器、函数检索及权限管理等。Navicat的的功能不仅可以满足专业开发人员的所有需…

ElasticSearch入门到掌握(3)完结

文章目录 三、深入 elasticsearch1.数据聚合(1)聚合的分类(2)DSL 实现 Bucket 聚合(3)DSL 实现 Metrics 聚合(4)RestAPI 实现聚合 2.自动补全(1)自定义分词器…

学习笔记:解决拖延

1 解决拖延、减轻压力的关键心态和方法 1.1 要点梳理 拖延是因为自己一直在逃避,重点是要有效突破逃避圈,进入学习圈,扩展成长圈。 毒蛇曲线(见思维导图)中越是临近截止期限,拖延的焦虑越上升&#xff0…

MLeaksFinder报错

1.报错:FBClassStrongLayout.mm 文件:layoutCache[currentClass] ivars; 解决:替换为layoutCache[(id)currentClass] ivars; 2.编译正常但运行时出现crash indirect_symbol_bindings[i] cur->rebinding FBRetainCycleDetector iOS15 …

算法 第36天 贪心5

435 无重叠区间 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 def eraseOverlapIntervals(intervals:list)->int:if not intervals:return 0intervals.sort(keylambda x:…

ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?

前言 ASP.NET Core 内置的标识(identity)框架,采用的是 RBAC(role-based access control,基于角色的访问控制)策略,是一个用于管理用户身份验证、授权和安全性的框架。 它提供了一套工具和库&…

爬虫+RPC+js逆向---直接获取加密值

免责声明:本文仅做技术交流与学习,请勿用于其它违法行为;如果造成不便,请及时联系... 目录 爬虫RPCjs逆向---直接获取加密值 target网址: 抓包 下断点 找到加密函数 分析参数 RPC流程 一坨: 二坨: 运行py,拿到加密值 爬虫RPCjs逆向---直接获取加密值 target网址: 优志…

prometheus expected a valid start token, got “\““ (“INVALID“) while parsing:

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

C++中的数组下标可以出现越界并且不报错

C中数组越界 最近用C写算法题目的时候,突然在某个题目中发现其数组下标会出现越界的情况,但是程序似乎不会报错,百思不得其解,然后自己写了个代码测试了一下,如下图所示: 当我们访问越界地址的时候&#…

rhce复习3

DNS DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。 DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端口&#x…

[react] useState的一些小细节

1.无限循环 因为setState修改是异步的,加上会触发函数重新渲染, 如果代码长这样 一秒再修改,然后重新触发setTImeout, 然后再触发,重复触发循环 如果这样呢 还是会,因为你执行又会重新渲染 2.异步修改数据 为什么修改多次还是跟不上呢? 函数传参解决 因为是异步修改 ,所以…

接口日志处理类

类:ZCL_IFLOG_UTILITIES 属性:AUTH_RESULTS_LIST 类型: TY_AUTH_RESULT Private 受保护部分: PRIVATE SECTION.TYPES: BEGIN OF ty_auth_result,funcname TYPE ztall_logcfg-funcname,pass TYPE abap_bool,END OF ty_aut…

CentOS 7 升级 5.4 内核

MatrixOne 推荐部署使用的操作系统为 Debian 11、Ubuntu 20.04、CentOS 9 等 Kernel 内核版本高于 5.0 的操作系统。随着 CentOS 7 的支持周期接近尾声,社区不少小伙伴都在讨论用以替换的 Linux 操作系统,经过问卷调查,我们发现小伙伴们的操作…

测试开发-快速定位问题

写在前面 这两天工作实在是有点小忙,感觉好久没更新了,但是平时也是有感而发的比较多,今天遇到一个问题,感觉挺有意思,处理过程也非常有意义,希望能给大家一个借鉴吧。 测试平台又又又出问题了 今天一位…

【文件IO】JavaIO详解

一.文件的相关概念 什么是文件? 文件是计算机中存储信息的基本单位。文件通常指的是存储在计算机或其他数字存储设备上的一段信息的集合,这些信息可以是文本、图片、音频、视频等不同格式的数据。 文件路径: 文件的路径可以分为两类 相对路径:先指定一个"当前…

c++的STL(8) -- queue

queue容器概述 queue容器实现了实现了和队列相同结构的容器。 如图,队列这种结构有两端: 队首和队尾。 对于队列,我们添加数据只能从队尾添加,删除数据和获取数据只能从队首删除。是一种先进先出的结构。 -- 当然读取数据也只能从队首或者…

方案分享 | 嵌入式指纹方案

随着智能设备的持续发展,指纹识别技术成为了现在智能终端市场和移动支付市场中占有率最高的生物识别技术。凭借高识别率、短耗时等优势,被广泛地运用在智能门锁、智能手机、智能家居等设备上。 我们推荐的品牌早已在2015年进入指纹识别应用领域&#xff…

MUNK电源维修GmbH高频电源E230 G60/45 WRG-TFMYCT24

德国MUNK电源维修主要系列:ΡKA2,DCAC100,AS100,HS100,ESA2000, HSG2000,E230 G60/45;E230 G100,D400 G100全系列型号。 常见维修型号包括:D400 G100/75WRG-…

【四十一】【算法分析与设计】floodfill(2),130. 被围绕的区域,417. 太平洋大西洋水流问题

目录 130. 被围绕的区域 417. 太平洋大西洋水流问题 结尾 130. 被围绕的区域 给你一个 m x n 的矩阵 board ,由若干字符 X 和 O ,找到所有被 X 围绕的区域,并将这些区域里所有的 O 用 X 填充。 示例 1: 输入:board …