「论文笔记」PiPAD: Pipelined and Parallel Dynamic GNN Training on GPUs
简要
背景:
图神经网络被广泛应用处理图结构的数据并用于提取多种图相关应用的依赖关系
GCN是在图(聚合)和神经(更新)操作中普遍使用的方法。
图的拓扑结构和节点特征可能随着时间的推移而动态发展,由此衍生出动态图。使用GNN的方法可以从动态图中捕获时间和结构信息。根据分区原则和粒度,可以将动态图分为
连续时间动态图(CTDG)
离散时间动态图(DTDG):对图进行定期采样的快照序列。一般处理方法是使用静态GNN在所有时间步长上的单个快照进行空间图学习。同时部署RNN来获取不同快照之间的时间特征(本文主要关注DTDG-base的DGNN)
滑动窗机制可以将多个连续快照同时输入到模型中,这种方式被广泛用于捕获更好的时间依赖并提高准确率。(本文将每一个滑动窗称为帧)
问题:
检索稀疏邻接矩阵通常伴随着不规则的内存访问和稀疏计算,SpMM-like的聚合操作通常被认为是GNN的主要瓶颈。
DGNN引入时间系列组件处理大量的快照,导致了两个主要为的性能问题:
DGNN训练时要沿着时间轴不断更新图快照,数据传输时间占据了总体训练时间的大部分,进一步加剧了内存密集型的聚合操作产生的GP ...
「论文笔记」Ekko: A Large-Scale Deep Learning Recommender System with Low-Latency Model Update
简要
问题:
DLRS(深度学习推荐系统)通常采用参数服务器的方式对模型参数进行保存(与客户端容错以及低延迟的通信),这些参数服务器通常保存在不同地理位置的数据中心中。DLRS离线训练/验证模型,并将这个模型传输到全局的推理集群中,因此,他们会导致显著的模型更新延迟(例如几十分钟),这对服务级别对象(SLO)会产生不利的影响。
现有的系统(Merlin,TFRA,Check-N-Run,BigGraph)基本都使用了局部采集数据和懒同步复制的方式更新复制的模型。然而,懒同步复制引入了非常关键的异步操作,这个异步操作通常会对SLO的性能有不好的影响。
Idea:允许服务器在线更新模型,并立即将模型更新传播到所有推理集群中。通过绕过长延迟的更新步骤(离线训练,模型检查,验证和广播)减少模型更新的延迟。其需要解决下面三个问题:
如何在带宽有限,网络路径异构的广域网上有效地传播海量模型进行更新
如何保护SLO面授网络拥塞的影响,从而延后重要的更新
如何保护SLO免受有损于模型精度的有偏差的模型更新
方案:Ekko——新颖的大规模DLRS,其可以低延迟地全局地更新复制模型,其从下面两个角 ...
「论文笔记」DeepRecSys: A System for Optimizing End-To-End At-Scale Neural Recommendation Inference
简要
现象or问题:在Facebook的数据中心中,超过百分之80的机器学习推理周期都用于推荐和排名推理。
不同的模型表现出对计算量和内存访问量不同的特性,图中左边黄色部分的模型更多倾向于计算密集型。
从图中右边展示了不同推荐模型,密集特征处理过程通常伴随着规则的内存访问,而稀疏特征则是不规则的内存访问。
推荐系统的查询工作集大小遵循一个明显的分布具有较重的尾部效应,这种查询大小分布的差异,导致了不同的规模推理优化策略。
方案:基于hill-climbing的调度器——DeepRecSched——根据查询大小和到达的模式,推荐模型和硬件底层平台将查询分成小批次。DeepRecSched在严格的尾部延迟目标下,通过权衡请求和批处理级并行性,最大化系统负载。
同时设计了DeepRecInfra(端到端的基础设施,用于研究查询大小和到达模式的大规模影响)。
贡献:
设计了一个端到端的基础设施——DeepRecInfra,能够通过多种推荐模型进行系统设计和优化。其结合了在产品数据中心上观测到的查询到达模式以及大小分布。
提出DeepRecSched——首个批处理调度器,考虑 ...
「论文笔记」Fleche: An Efficient GPU Embedding Cache for Personalized Recommendations
简要
问题:
CPU端的DRAM数据访问与GPU处理之间的差距成为深度embedding模型推理性能的阻碍,用GPU-resident cache缓存embedding表可以解决这个差距,但是这个方案并没有被完全探索。
现有的缓存方案为每个embedding表维护一个固定大小的cache表,防止在表重分区期间发生大量的数据移动。这样的设计有两个重要的影响因素:缓存利用率低(静态单表缓存的结构缺陷)和内核维护开销(过多的小缓存查询内核)
方案:FLECHE——用于有效GPU-resident embedding caching的新颖缓存机制
主要思想:联合设计缓存结构和工作流,从而促进缓存利用率并减少缓存查询时间。
结构:GPU-HBM层用于缓存hot embedding,CPU-DRAM层存储所有的embedding(这里只考虑了模型能完全放入内存中的情况,大型模型会另外讨论)
为了解决缓存利用率低的问题,提出了flat cache(FC)。其通过将所有的embedding表输入id重新编码为统一格式的flat key,让所有embedding table共享一个全局缓存后端。此 ...
「论文笔记」JiZhi: A Fast and Cost-Eective Model-As-A-Service System for Web-Scale Online Inference at Baidu
简要
问题:面对数十亿用户的时变网络规模数据,以经济有效的方式将训练有素的深度模型用于在线实时推理服务仍然具有挑战性。
使用DNN进行网页规模的实时在线推理的成本成为大多数公司采用该技术的主要负担
在线服务的时间消耗对用户体验至关重要,会影响长期留存率
支持DNN的资源消耗将要求大量的服务基础设施投资,并且有时会使系统设计,实现和运行超出预算。
使用GPU,TensorRT等方法可以有效境地DNN的计算延迟,但是这些技术主要针对单个DNN的训练和推理进行优化,忽略了时变网络传输下的在线推理的负载数据和计算依赖关系。因此,实时网页规模的DNN推理服务主要有下面的挑战:
巨大且稀疏的DNN模型:需要巨大的空间对他们进行存储,并且检索转换和计算也是比较大的麻烦
时变网络尺度传输:推荐系统的推荐请求并发量通常是非常大的
多样化的推荐场景:推荐输入可以是图片,文字以及搜索引擎中的用户喜好。
方案:JIZHI——用于网络规模在线推理服务的Model-as-a-Service系统。
Staged Event-Driven Pipeline(SEDP):基于深度学习的推荐推理工作流都会转化成 ...
「论文笔记」PetPS: Supporting Huge Embedding Models with Persistent Memory
简要
问题:随着embedding模型容量的不断增大,使用传统的参数服务器的存储成本高,在遇到宕机后重启的回复时间也很长。于是考虑使用持久性内存来拓展内存容量,但是持久性内存也面临两个挑战:高读取延迟和较重的CPU负担。
使用DRAM的参数服务器存储大型模型有两方面的缺点
造成了比较高的存储开销:DRAM是昂贵的媒介,同时DRAM几乎占整个系统功耗的一半
在参数服务器宕机后,将参数重新加载到DRAM中需要相当长的恢复时间,违反了在线推理的服务级协议(SLA)
持久化内存(也称非易失内存,PM)也支持像DRAM字节地址,但多提供了8倍的容量,同时提供了数据持久化的功能,并且可以提供更快的恢复和更少的停机时间。但仍然存在两个挑战
较高的持久化内存读取延迟(PM的延迟比DRAM高3倍)
较高的CPU负担(在和DRAM相同的CPU下,但是要处理8倍的数据空间)
方案:PetPS(Persistent Embedding Table Parameter Server)
PetHash:最大程度优化PM哈希索引,以便于更好地减少PM的访问
使用单级结构来定位只读取一个PM的存储桶。
对 ...
「论文笔记」Hercules: Heterogeneity-Aware Inference Serving for At-Scale Personalized Recommendation
简要
现象:数据中心的深度学习推荐系统具有许多独特的工作负载特征和系统需求——模型多样性、云规模的系统异构行和时变负载模式。这些都需要特定于应用程序的解决方案来提高执行效率。
问题:
模型多样性:推荐模型的迅速发展,以支持新的用例,并实现更高的预测精度。这种不同算法结构导致了不同的性能瓶颈。最先进的推荐模型的计算和内存强度可以变化1~2个数量级。
云规模的系统异构:各种各样的系统架构可以在数据中心中共存,其原因如下:
系统升级会周期性的发生,不同微架构的服务器一代又一代地出现
特定领域的加速器越来越多地部署在数据中心,以最大化执行效率
时变负载模式:查询到达服从泊松分布,查询大小呈明显的重尾分布。动态变化的条件要求调度程序在不同级别运行,以快速适应和响应负载变化。
最优调度鞠策高度依赖于模型和硬件,并且需要一个有效的搜索机制来充分探索所有SLA(服务级协议)目标在模型并行、操作员并行和数据并行维度上的大调度空间。但现有的任务调度器设计缺乏遍历整个并行空间的能力。
方案:
Herules——heterogeneity-aware recommendation u ...
「论文笔记」Single-shot Embedding Dimension Search in Recommender System
简要
在推荐系统中大部分的方法为所有的特征固定了embedding的纬度,这可能会收到以下影响:
embedding可能包含数百亿个参数,导致高内存使用和计算成本
过度参数化低频特征可能导致过拟合,甚至产生意外噪声
此外,高频特征需要更多的参数来传递有效的信息。
提出单次嵌入维度搜索方法(SSEDS),能够通过使用单次embedding剪枝操作有效的分配每个特征域对应的维度同时保持模型的推荐准确率。
如何自动地为不同的特征分配embedding维度是很重要的问题,本文称为embedding维度搜索(EDS)问题。
这个问题需要解决两个挑战
如何识别各个特征域的embedding维度
识别embedding每个维度的重要性,然后去除不重要的相关维度,以实现自动获取混合维度embedding
标记每个特征域的embedding维度,同时保持其他的不变。然后通过评估他对损失函数的影响,计算每个维度的显著分数,以此表达维度的重要性。
如何通过一种有效的方式搜索embedding维度
通过观察显著分数,可以对所有特征域的embnedding维度进行降序排列,并根据给定的参数预算保留 ...
「论文笔记」PICASSO: Unleashing the Potential of GPU-centric Training for Wide-and-deep Recommender Systems
简要
针对的问题:
训练推荐系统中的GPU设备没有得到充分的利用,他们不能像CV和NLP领域那样实现预期的吞吐量提高。这个问题主要由两个特征引起
推荐模型包含了多达1000多个输入特征域,这引入了碎片化和内存密集型的操作
多组成特征交互子模块引入了大量的小型计算核
虽然定制的硬件能够对特定的WDL(Wide-and-Deep Learning)工作模式进行优化,但是需要考虑下面两个问题
有多种WDL设计,需要不同的工作模式(比如,特征域的数量,特征交互层的子模块),新的WDL模块每月都在出现。
对于公共云使用,处于预算和弹性考虑,首选商用硬件
通过详细分析大量的WDL工作流,得到下面的影响
由于有大量的特征域,WDL模型训练过程中有碎片化的操作,这通常会导致在加载操作中有比较大的开销
embedding层由内存密集型和通信密集型的操作构成,而特征交互和MLP需要计算密集型的操作。在处理大量的嵌入参数时,计算资源将得不到充分利用,并导致像脉冲一样的GPU使用。
系统框架:PICASSO
创建细粒度embedding特征组,同一组内的操作被打包,以减少零碎操作的数量 ...
「论文笔记」AutoShard: Automated Embedding Table Sharding for Recommender Systems
简要
problem:大规模的embedding表参数会影响到推荐系统embedding模型的训练过程,这些大规模的embedding表如果使用不平衡的分布式存储方式,会严重影响模型的执行效率。这就涉及到一个挑战:embedding表分片问题(embedding table sharding)
如上图所示,蓝色的框表示一个embedding表,然后框内的数字表示执行操作执行时间的成本。紫色的框表示一个分片(sharding)旁边的数字表示这个分片的执行时间成本。
如果在分片过程中没有考虑到分片的平衡(图左边),就可能会导致GPU之间的不平衡,其中所有的GPU必须强制等待最慢的GPU(图中的bottleneck)。相反,如果分片是平衡的(图右边),就可以通过减小等待时间来显著加速embedding的操作。
因为sharding内部是并行执行的,所以sharding内部的执行时间是显著小于所有embedding表的执行时间之和的,比如 5<1+2+35<1+2+35<1+2+3,10<4+5+610<4+5+610<4+5+6
在这个问题中有两个重 ...