MerlinHugeCTR分级参数服务器简介内存端口keynvidia

参数服务器是推荐系统的重要组成部分,但是目前的训练端参数服务器由于高延迟和同步问题无法有效解决推理部署中模型过大的瓶颈。MerlinHugeCTR(以下简称HugeCTR)团队针对传统参数服务器的问题重新设计了一种分级推理端参数服务器,将GPU内存作为一级缓存,Redis集群作为二级缓存,RocksDB作为持久化层,极大提高了推理效率。HugeCTR团队将分多期为大家介绍此分级参数服务器的具体设计和细节,本期为系列的第一期。

引言

a.传统训练端参数服务器及其缺陷

传统参数服务器维护和同步模型参数仅用于训练,worker节点执行前向和后向计算。具体来说,在训练中:worker节点从server节点中拉取其相应的参数,进行前向计算,通过反向传播计算梯度,最后将这些梯度推送到服务器。在推理中,它只执行前两个步骤。如果部署在高性能设备集群中,worker节点的计算速度非常快,因此传统PS通常会遇到这两个瓶颈:

(1)server和worker之间的pull和push操作延迟;

(2)从worker节点收到梯度后,server节点中的参数同步问题。

由于GPU停顿、同步/一致性不足,GPU的计算结构很难通过使用基于CPU的实现的参数服务器来支持数据并行。在GPU内存中拟合完整模型以及小批量输入数据和中间网络状态的需要限制了可以训练和推理的模型的大小。同样的瓶颈也出现在推理部署中,因为推理节点也需要从集中的参数服务器组中拉取所有需要的模型参数。当请求包含节点未加载的参数时,节点需要再次同步从参数服务器拉取参数。当模型参数版本发生变化时,需要暂停推理服务,逐个节点更新参数。

使用基于CPU的参数服务器进行模型推理的部署时,上述问题非常明显,特别是推荐模型的部署。

b.HugeCTR推理端分级参数服务器

与其他系统不同,HPS进行了许多专门针对高效利用GPU的优化,包括分布式参数服务器分片,以实现GPU/CPU中许多庞大EmbeddingTable的并行推理,以及GPU友好的缓存、临时数据移动内存、内存管理机制。

图1HPS架构

c.推理端参数服务器的支持

●支持不同模型的混合部署:如DeepFM、DCN、DLRM、MMOE和序列模型(DIN、DIEN)

●支持推理的大输入数据量:Batch_size大于1K,look_upperrequest超过1000。

●支持更快的在线热部署:将完整模型更新/加载到推理节点进行服务只需不到10分钟(EmbeddingTable大小大于600G)

●支持资源隔离:在推理中隔离GPU的内存,确保推理服务在生产环境基于不同的隔离策略。例如一种支持单GPU/CPU的模型,通过第三方工具(如k8s)重启和隔离。

●支持不同模型独立的巨大EmbeddingTable:不同模型每个EmbeddingTable大小大于600G。

●支持单个节点的多级缓存:

●支持模型更新机制:

●支持容错和持久性:一个节点故障后参数和服务可以被恢复。

●支持在线学习:每分钟更新密集模型权重

HugeCTR分级参数服务器组件块

a.CPU分布式缓存

i.分布式Redis集群

Redis集群的同步查找:每个模型实例从本地化的GPU缓存中查找所需的Embeddingkey,这也会将丢失的Embeddingkey(在GPU缓存中找不到的key)存储到丢失的键缓冲区中。丢失的键缓冲区与Redis实例同步交换,Redis实例依次对任何丢失的Embeddingkey执行查找操作。因此,分布式Redis集群充当了二级缓存,可以完全替代本地化参数服务器来加载所有模型的完整Embeddingtable。

b.GPU缓存(EmbeddingCache)

i.异步/同步插入

我们支持将丢失的Embeddingkey异步插入到EmbeddingCache中。该功能可以通过配置文件中自定义的命中率阈值自动激活。当EmbeddingCache的真实命中率高于自定义阈值时,EmbeddingCache会异步插入缺失的key。反之则会以同步方式插入,以确保推理请求的高精度。通过异步插入方式,与之前的同步方式相比,在EmbeddingCache达到用户定义的阈值后,可以进一步提高EmbeddingCache的真实命中率。

ii.在线更新

我们支持将增量EmbeddingKey异步刷新到EmbeddingCache中。当稀疏模型文件需要更新到GPUEmbeddingCache时,会触发刷新操作。基于在线训练完成模型的模型版本迭代或增量参数更新后,需要将最新的Embeddingtable更新到推理服务器上的EmbeddingCache中。为了保证运行模型可以在线更新,我们将通过分布式事件流平台(Kafka)更新分布式数据库和持久化数据库。同时,GPUEmbeddingCache会刷新现有Embeddingkey的值,并替换为最新的增量Embeddingvector。

c.本地键值存储

i.本地RocksDB查询引擎

对于仍然无法完全加载到Redis集群中的超大规模Embddingtable我们将在每个节点上启用本地键值存储(RocksDB)。

RocksDB的同步查询:Redis集群客户端在分布式GPU缓存中查找Embeddingkey时,会记录丢失的Embeddingkey(在Redis集群中未找到的key),记录到丢失的keybuffer中。丢失的keybuffer与本地RocksDB客户端同步交换,然后将尝试在本地SSD中查找这些key。最终,SSD查询引擎将对所有模型缺失的Embeddingkey执行第三次查找操作。

对于已经存储在云端的模型存储库,RocksDB将作为本地SSD缓存,用于存储Redis集群无法加载的剩余部分。因此,在实践中,本地化的RocksDB实例充当了三级缓存。

HugeCTR分级参数服务器的配置和使用

a.训练端

i.配置模型名和Kafkabroker

在训练段,用户在CreateSolver时需要为当前训练的模型提供一个模型名,这个模型名将会被参数服务器用于区分不同模型。

同时,用户还需要配置Kafkabroker的端口和ip,用于将模型发送到到Kafka。

ii.增量模型导出接口

用户可以使用以上接口,将增量模型导出到Kafkabroker,参数服务器端将会自动消化Kafka的消息。

b.推理端

i.EmbeddingCache配置:

gpucache:用户可自由配置是否使用GPU缓存。

gpucacheper:用于决定Embeddingtable导入到GPU缓存的比例,默认为0.5。

hit_rate_threshold:用户自定义的阈值,将会决定GPU缓存的更新方式。

num_partitions:Embeddingtable将会被分为多个分片进行存储,这里用于指定分片数量。

overflow_policy:当缓存占满时,可选择随机移除或移除最老的Embedding。

overflow_margin:用于指定每个分片储存的最大Embedding数量。

overflow_resolution_target:用于指定每个分片移除Embedding的比例,取值为0到1之间。

initial_cache_rate:初始的缓存率。

需要配置服务器ip和端口,用户名以及密码,其他与hashmap/parallelhashmap相同。需要注意的是num_partitions必须大于等于redis节点的数量。

iv.RocksDB:

path:RocksDB存储数据的路径,由用户自行配置。

read_only:启用read_only后,RocksDB将无法更新,适用于静态Embedding的推理。

v.Kafka:

brokers:用于设置Kafka服务器的ip和端口。

max_receive_buffer_size:用于数据接收缓冲区大小,超过该大小将自动把参数更新送往数据存储层。

max_batch_size:用于设置每次批量数据发送的大小。

结语

在这里,要特别鸣谢腾讯PCG机器学习平台部推荐算法资深高级工程师骆兆楷(KarlLuo)对HugeCTR设计开发的大力支持与密切合作。

除此之外,NVIDIAMerlinHugeCTR团队正在积极招募C++以及CUDA工程师,欢迎各位有意向的同学积极申请!

THE END
1.增量训练的训练过程深度学习mob64ca12ee66e3的技术博客增量训练在深度学习中的应用 引言 深度学习的快速发展意味着我们处理的数据量也在急剧增加。传统的训练方式往往需要从头开始训练模型,这在计算和时间上都是非常不高效的。增量训练(Incremental Training),也被称为在线训练(Online Training),是一种允许模型在已有知识基础上,随着新数据的加入逐步更新的训练方法。本文将深https://blog.51cto.com/u_16213423/12225384
2.增量学习与在线学习在线增量学习每获得一个新样本就进行一次模型更新。显然,在线学习时增量学习的特例,而增量学习可视为“批模式”的在线学习。 3. 迁移学习 3.1 原理 Transfer Learning 将从源数据集学到的知识迁移到目标数据集上。虽然ImageNet数据集的图像大多跟XX无关,但在该数据集上训练的模型可以抽取较通用的图像特征,从而能够帮助识别边缘https://blog.csdn.net/MusicDancing/article/details/114385776
3.增量神经网络训练腾讯云开发者社区是一种机器学习技术,用于在已有的神经网络模型基础上,通过逐步更新模型参数来适应新的数据。与传统的批量训练相比,增量神经网络训练具有以下优势: 1. 节省计算资源:增量训练只需要对新数据进行计算,而不https://cloud.tencent.com/developer/information/%E5%A2%9E%E9%87%8F%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E8%AE%AD%E7%BB%83
4.所不在的智能,诠释可以信赖的开源智慧城市人工智能当前MindSporeLite支持对MindSpore训练导出的模型进行增量训练,实现云-端训练的无缝切换。但由于端侧硬件资源的限制,如何在不影响用户体验下进行训练,对端侧训练的内存和性能提出了挑战。 MindSporeLite采用了训练内存复用、virtualbatch、混合精度训练、在线融合、量化等手段对减少端侧训练时的内存占用。同时在联邦学习https://smartcity.zol.com.cn/772/7728415.html
5.chapter111.md·StarTogether/mlopsbook不同的更新方式当然也会带来不同的效果,例如全量更新,模型会利用某时间段内的所有训练样本进行重新训练,再用训练好的新模型替代老版本的模型,这样的训练方式需要的训练样本量、训练时间长、数据延迟长,但是样本的准确性最高。 对于在线学习,更新速度是最快的,是增量更新的进阶版,在每次获得一个新样本的时候就实时更https://api.gitee.com/StarTogether/mlops-book/blob/master/chapter-11-1.md
6.最受欢迎的算法之一:反向传播训练为训练元素的数量乘以输出神经元的数量。MSE将多个输出神经元处理为单个输出神经元的情况。公式6-2展示了使用二次误差函数的节点增量: (6-2) 二次误差函数非常简单,因为它取了神经网络的预期输出与实际输出之间的差。 ′表示激活函数的导数。 6.2.2 交叉熵误差函数 https://labs.epubit.com/articleDetails?id=70e0465200ba43599b1c83243affae5c
7.使用Merlin分层参数服务器扩展推荐系统推理增量训练更新 推荐模型有两种培训模式:离线和在线。在线培训将新的模型更新部署到实时生产中,对于推荐的有效性至关重要。HPS 雇佣无缝更新机制通过Apache Kafka– 基于消息缓冲区连接训练和推理节点,如图 5 所示。 图5. HugeCTR 推理在线更新机制 更新机制有助于 MLOps 工作流,支持在线/频繁以及离线/再培训更新,无需https://www.eet-china.com/mp/a159829.html
8.数据样本较少无法有效分析怎么办呢帆软数字化转型知识库增量学习和在线学习是处理小样本数据的一种有效方法,通过逐步增加数据量和更新模型来提高分析的准确性。以下是增量学习和在线学习的主要步骤: 初始模型训练:在现有的小样本数据上训练初始模型,建立初步的预测和分析能力。 增量数据获取:逐步获取新的数据样本,扩展数据集。新数据可以通过实验、观测、网络抓取等途径获取。https://www.fanruan.com/blog/article/339467/
9.基于双向模仿蒸馏的电子商务知识图谱预训练模型高效增量学习方法传统的知识图谱预训练模型无法感知社交知识图谱的动态变化,不能满足当前的业务需求。 因此,基于社交知识图谱中不断新增的用户交互数据,以一种高效的方式增量地更新预训练模型是亟待解决的问题。这将有助于确保预训练模型及时感知用户的最新交互动态,并为当前的下游业务场景提供更准确的用户信息,从而长期维持这类时序知识https://techbeat.net/article-info?id=5827
10.2020届计算机科学方向毕业设计(论文)阶段性汇报通过复现确定对抗性模型在训练上会带来很大的不稳定性,提升了训练的难度,但同时传统的非对抗性特征提取模型也在表达能力上存在不足。 张哲恺 图排序的硬件加速器设计 图排序加速器的整体架构设计。 蒋泽天 多图协同匹配与在线增量式匹配中期报告 汇报多图协同匹配与在线增量式匹配中期进度,主要包括MGM-Floyd/MFM-SPFAhttps://zhiyuan.sjtu.edu.cn/html/zhiyuan/announcement_view.php?id=3709
11.英语教学技能设计指导与训练专题一英语教学技能概述在线免费阅读行为方式说主要是针对传统教师培训中单纯训练的低效性而提出的,强调对技能要从行为的角度进行客观研究和实验,其研究的客观性方向确实值得肯定。然而,该技能观忽视人的内部心理因素和生活经验在提高教学效能方面的影响与作用,将教学技能的外显因素当作技能的惟一因素,导致对技能的研究停留在比较肤浅的经验描述上,从而也难https://fanqienovel.com/reader/7327951346093542462
12.大疆教育平台增量训练任务指的是基于已有模型生成的预训练模型,增加数据集进行再次训练的过程。有以上两种方法创建增量训练任务。 增量训练一般情况下使用默认预训练模型继续训练即可,也可以在上图下拉列表中选择已有模型在2000步、4000步、6000步、8000步、最终形成的预训练模型的基础上进行训练,增量训练的数据集标签需与原模型的标签https://edu.dji.com/hub/docs?uuid=13f64464-f42d-47ea-abc5-b14c2c309de5&t=708
13.京东搜索在线学习探索实践随着京东零售搜索业务的快速发展,对数据的时效性要求越来越高,要求搜索模型有捕捉更实时信号的能力,在线学习体现了业务对模型时效性的追求,希望能根据在线系统反馈的数据实时得对模型进行调整,使得模型能快速反应环境的变化,提高在线预估的准确率。 背景 目前传统模型的实时训练(如 FTRL 等)无法支持深度模型,这些模型预估https://www.infoq.cn/article/Z6lL9VNskAH3BCxZS1A7
14.针对超临界翼型气动修型策略的强化学习③基 于流动结构对几何进行修型的策略更有物理基础,相关物理机制的引入使得策略更容易具有普适性,相比于基于数据库构建响应面会拥有更强的推广和迁移能力;④ 训练增量修型使用的策略和通过强化学习形成的策略都与设计师的设计经验直观对应,因此既可以便捷地利用设计师的经验来提高增量修型的效率,也可以通过强化学习等https://www.fx361.com/page/2021/0705/11490428.shtml
15.《浙江档案》刊发福建省档案局档案馆项目组文章《基于数字档案经过调研和反复实践,课题组实现了“四个一”的建设目标,即研究梳理“一”个规范的系统流程、研究制定“一”个开放审核档案关键词表、研究训练“一”个人工智能审核算法模型、研究开发“一”套基于数字档案的人工智能档案开放审核系统。 2.1研究梳理“一”个规范的系统流程 步骤一,将待审核的档案导入系统中的“待开放http://www.fj-archives.org.cn/dazw/bsdt/202212/t20221202_297338.htm
16.神经网络有哪些快速增量学习算法?神经网络的快速增量学习算法是一种可以在不需要重新训练整个网络的情况下对其进行修改和更新的技术。这些算法对于处理实时数据和动态环境非常有用,并且可以大大降低计算成本和时间。以下是几种流行的神经网络快速增量学习算法: 增量学习(Incremental Learning):增量学习是指通过不断添加新的训练样本来扩充神经网络的能力。它https://www.cda.cn/bigdata/201736.html
17.从100w核到450w核:字节跳动超大规模云原生离线训练实践离线训练框架 1.0 对每个模型创建一套 Worker 实例,每个实例 Worker 和预部署在 Mesos 上的服务化 PS 完成通讯、读取样本、计算梯度、模型 Dump 的全过程。 离线训练框架 1.0 于 2019 年进行了系统级重构,新一代离线训练框架 2.0 增加了“多角色弹性调度”“多角色 Failover 能力”“训练进度增量 Checkpoint ”https://maimai.cn/article/detail?fid=1767401397&efid=R2_kM5y-yEUDCK88FZWrGA
18.基于YOLOv5与EWC的增量目标检测(62页)免费在线预览全文 摘要 当前目标检测技术日趋完善,有着较高的检测精度和检测速度。然而人 们对目标检测技术的期望远不止于其精度和速度,人们还希望,在得到一个 训练完好的基模型后,目标检测技术能够不断学习新的未见过的信息,从而 实现增量目标检测。在增量目标检测上,现有的研究技术主要依赖于两阶段 目标检测算法。https://m.book118.com/html/2024/0117/8103017134006026.shtm
19.清华校友用AI破解162个高数定理,智能体LeanAgent攻克困扰陶哲轩难题这一过程涉及了,在课程中每个仓库生成的新数据集上,增量训练检索器。 从预训练检索器开始(比如基于ByT5 ReProver检索器),LeanAgent在每个新数据集上,额外训练一个epoch。 通过将渐进训练限制在一个epoch,有助于平衡稳定性和可塑性。 尤其是,渐进训练对数据库生成的每个数据集重复进行,逐步扩展LeanAgent知识库。 https://www.thepaper.cn/newsDetail_forward_29008608
20.机器学习第五章神经网络增量学习与在线学习 3.SOM网络 SOM网络是一种竞争学习型的无监督神经网络。 它能将高维输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。 SOM网络结构 SOM的训练目标: https://www.jianshu.com/p/704151935e26