0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Merlin HugeCTR HPS用于加速 NVIDIA GPU 上大规模嵌入的推理

NVIDIA英伟达 来源:NVIDIA英伟达 作者:NVIDIA英伟达 2022-09-08 10:13 次阅读

如今,推荐系统被广泛用于个性化用户体验,并在电子商务、社交媒体和新闻源等各种环境中提高客户参与度。因此,以低延迟和高精度服务用户请求对于维持用户参与至关重要。

这包括在使用最新更新无缝刷新模型的同时执行高速查找和计算,这对于模型大小超过 GPU 内存的大规模推荐者来说尤其具有挑战性。

NVIDIA Merlin HugeCTR ,一个开源框架,旨在优化 NVIDIA GPU 上的大规模推荐,最近发布分层参数服务器( HPS )体系结构以专门解决工业级推理系统的需求。实验表明,该方法能够在流行的基准数据集上以低延迟进行可拓展部署。

大规模推荐推理的挑战

大型嵌入表 :典型深度推荐模型的输入可以是数字(例如用户年龄或商品价格)或分类特征(例如用户 ID 或商品 ID )。与数字特征不同,分类特征需要转换为数字向量,以输入多层感知器( MLP )层进行密集计算。嵌入表学习从类别到数字特征空间的映射(“嵌入”),这有助于实现这一点。

因此,嵌入表是模型参数的一部分,并且可能是内存密集型的,对于现代推荐系统,可以达到 TB 级。这远远超出了现代 GPU 的板载存储容量。因此,大多数现有的解决方案都退回到在 CPU 内存中托管嵌入表,这没有利用高带宽 GPU 内存,从而导致更高的端到端延迟。

e63be588-2eb6-11ed-ba43-dac502259ad0.jpg

图 1. 典型深度学习推荐模型示例。显示的架构是个性化和推荐系统的深度学习推荐模型 。

可扩展性 :在用户行为的驱动下,许多客户应用程序被构建为服务于峰值使用,并且需要根据预期和实际负载扩展或扩展 AI 推理引擎的灵活性。

对不同框架和模型的高兼容性 :人工智能推理引擎必须能够服务于两种深度学习模型 ( 例如 DeepFM, DCN, DLRM, MMOE, DIN, 和 DIEN),由 TensorFlow 或 PyTorch 等框架以及简单的机器学习( ML )模型训练。此外,客户希望混合部署多个不同的模型架构和单个模型的多个实例。模型还必须部署在从云到边缘的各种硬件平台上。

部署新模型和在线培训更新 :客户希望能够根据市场趋势和新用户数据频繁更新其模型。模型更新应无缝应用于推理部署。

容错和高可用性 :客户需要保持相同级别的 SLA ,对于任务关键型应用程序,最好是五个 9 或以上。

下一节提供了更多有关 NVIDIA Merlin HugeCTR 如何使用 HPS 解决这些挑战的详细信息,以实现对建议的大规模推断。

分层参数服务器概述

分层参数服务器支持使用多级自适应存储解决方案部署大型推荐推理工作负载。为了存储大规模嵌入,它使用 GPU 存储器作为第一级高速缓存,CPU 存储器作为二级缓存(如用于本地部署的 HashMap 和用于分布式的 Redis ),以及用于扩展存储容量(如 RocksDB )的 SSD 。

CPU 内存和 SSD 均可根据用户需求灵活配置。请注意,与嵌入相比,致密层( MLP )的尺寸要小得多。因此,密集层以数据并行的方式在各种 GPU 工作者之间复制。

e6588896-2eb6-11ed-ba43-dac502259ad0.jpg

图 2. NVIDIA Merlin HugeCTR 分层参数服务器架构

GPU 嵌入缓存

GPU 的内存带宽比大多数 CPU 的内存宽度高一个数量级。例如, NVIDIA A100-80 GB 提供超过 2 TB / s 的 HBM2 带宽。GPU 嵌入缓存通过将内存密集型嵌入查找移动到 GPU 中,更接近计算发生的位置,从而利用了如此高的内存带宽。

为了设计一个有效利用现代 GPU 提供的优势的系统,重要的是要注意一个关键观察:在现实世界的推荐数据集中,一些特征类别通常比其他特征类别出现得更频繁。例如标准 1 TB 点击日志数据集 ,也是一个流行的基准数据集用于 MLPerf 总共 188 米中的 305K 个类别(仅占 0.16% )被 95.9% 的样本引用。

这意味着某些嵌入的访问频率远远高于其他嵌入。嵌入键访问大致遵循幂律分布。因此,在 GPU 内存中缓存这些最频繁访问的参数将使推荐系统能够利用高 GPU 内存带宽。单个嵌入查找是独立的,这使得 GPU 成为向量查找处理的理想平台,因为它们能够同时运行数千个线程。

e671e1b0-2eb6-11ed-ba43-dac502259ad0.jpg

图 3. 幂律分布的可视化

这些特性激发了 HPS GPU 嵌入缓存的设计,该缓存将热嵌入保留在[Z1K11]内存中,通过减少额外的或重复的参数在较慢的 CPU- GPU 总线上的移动来提高查找性能。它由保留所有嵌入表的完整副本的辅助存储器支持。下文将对此进行更全面的探讨。对于与 GPU 上托管的每个模型相关联的每个嵌入表,存在唯一的 GPU 嵌入缓存。

嵌入键插入机制

当在推理过程中 GPU 缓存中缺少查找到的嵌入键时,将触发键插入以从层次结构的较低级别获取相关数据。HPS 实现了同步和异步键插入机制,以及用户定义的 [VZX1 8],以在两个选项之间进行选择,以平衡准确性和延迟。

Synchronous insertion: 如果实际命中率低于命中率阈值,则在等待将丢失的键插入 GPU 缓存时,会阻止推理请求。这通常发生在模型刚加载时、预热期间或进行重要模型更新后。

Asynchronous insertion: 如果实际命中率高于命中率阈值,则立即返回预配置的默认向量,以允许查询管道继续执行,而不会延迟。“惰性”插入本身发生在后台。当已达到所需精度且主要关注点是保持低延迟时,使用该方法。在实际的行业场景中,即使缓存了完整模型,推理也可能仍然缺少功能,因为在推理中可能会出现从未出现在训练数据集中的新项目和用户。

GPU 嵌入缓存性能

图 4 显示了使用标准 1 TB 点击日志数据集和 90GB 个性化和推荐系统的深度学习推荐模型 NVIDIA T4 ( 16 GB 内存)、 A30 ( 24 GB 内存)和 A100 GPU ( 80 GB 内存)上的( DLRM )型号,缓存了型号大小的 10% 。命中率阈值设置为 1.0 ,以便所有键插入都是同步的。在稳定阶段进行测量。

e68e5fde-2eb6-11ed-ba43-dac502259ad0.jpg

图 4. 不同批量大小的平均延迟和 GPU 嵌入缓存命中率

可以预期,较高的稳定缓存命中率(图 4 中的条形图)对应于较低的平均延迟(图 4 的折线图)。此外,由于键丢失的可能性越来越大,更大的批大小也会导致命中率降低和延迟增加。有关基准的更多详细信息,请参阅用于大规模深度推荐模型的 GPU 专用推理参数服务器。

HPS 包括两个额外的层,通过利用 CPU 存储器和 SSD。这些层高度可配置,以支持各种后端实现。以下各节将更详细地介绍这些。

CPU 缓存

第二级存储是 CPU 缓存,通过 CPU- GPU 总线访问,并以较低的成本作为 [Z1K11] 嵌入缓存的扩展存储。如果 GPU 嵌入缓存中缺少嵌入键, HPS 接下来将查询 CPU 缓存。

如果找到键(缓存命中),则返回结果并记录访问时间。这些最后访问的时间戳用于以后的键逐出。

如果键丢失, HPS 将转到下一层获取嵌入,同时还调度将丢失的嵌入向量插入 CPU 缓存。

“ CPU 缓存”层支持各种数据库后端。HugeCTR HPS 提供易失性数据库示例具有基于哈希映射的本地 CPU 内存数据库实现,以及 Redis 集群 – 基于后端,利用分布式集群实例进行可扩展部署。

固态硬盘

缓存层次结构的最低层以更低的成本在 SSD 、硬盘或网络存储卷上存储每个嵌入表的完整副本。对于表现出极端长尾分布的数据集(大量类别,其中许多类别不经常被引用),保持高精度对于手头的任务至关重要,这一点尤其有效。这个 HugeCTR HPS 参考配置将嵌入表映射到 RocksDB 本地 SSD 上的数据库。

整个模型通过设计保存在每个推理节点中。这种资源隔离策略增强了系统可用性。即使在灾难性事件后只有一个节点是活动的,也可以恢复模型参数和推理服务。

增量训练更新

推荐模型有两种培训模式:离线和在线。在线培训将新的模型更新部署到实时生产中,对于推荐的有效性至关重要。HPS 雇佣无缝更新机制通过 Apache Kafka – 基于消息缓冲区连接训练和推理节点,如图 5 所示。

e69d5b60-2eb6-11ed-ba43-dac502259ad0.jpg

图 5. HugeCTR 推理在线更新机制

更新机制有助于 MLOps 工作流,支持在线/频繁以及离线/再培训更新,无需停机。它还通过设计赋予了容错能力,因为即使推理服务器关闭,训练更新也会继续在 Kafka 消息缓冲区中排队。通过方便易用的 Python API ,开发人员可以使用所有这些功能。

HPS 性能基准

为了证明 HugeCTR HPS 的优势,我们评估了其在 DLRM 模型上的端到端推理性能,并标准 1 TB 点击日志数据集 ,并将其与仅在 GPU 上运行密集层计算和仅 CPU 解决方案的场景进行了比较。

e6ba6020-2eb6-11ed-ba43-dac502259ad0.jpg

图 6. 推理性能比较

HPS 解决方案加快了嵌入和密集层的速度,远远优于仅使用 CPU 的解决方案,在更大批量的情况下,其速度高达 60 倍。

HPS 与 CPU PS 加 GPU 工作解决方案的区别

您可能熟悉 CPU 参数服务器( PS )和 GPU 工作解决方案。表 1 显示了 HPS 与大多数 PS plus worker 解决方案的不同之处。

e6cedd98-2eb6-11ed-ba43-dac502259ad0.jpg

表 1. HPS 与 CPU 参数服务器加 GPU 工作者解决方案的比较

总结

本文介绍了 Merlin HugeCTR HPS ,其中 GPU 嵌入缓存作为一种工具,用于加速 NVIDIA GPU 上大规模嵌入的推理。HPS 方便易用配置 ,包括例子让你开始。还将有一个 TensorFlow 插件这使得能够在现有 TF 推理管道中使用 HPS 。有关详细信息,请参阅用于大规模深度推荐模型的 GPU 专用推理参数服务器和 Merlin HugeCTR HPS 文档。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4592

    浏览量

    101706
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4417

    浏览量

    126672
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82500
  • 英伟达
    +关注

    关注

    22

    文章

    3327

    浏览量

    87763

原文标题:使用 Merlin 分层参数服务器扩展推荐系统推理

文章出处:【微信号:NVIDIA_China,微信公众号:NVIDIA英伟达】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NVIDIA 在首个AI推理基准测试中大放异彩

    和TensorRT软件的成熟程度。它们让用户能够更加轻松地将所有的NVIDIA GPU用于数据中心、边缘等领域。MLPerf定义了五项推理基准,涵盖了三个现有的人工智能应用:图像分类
    发表于 11-08 19:44

    在Ubuntu使用Nvidia GPU训练模型

    问题最近在Ubuntu使用Nvidia GPU训练模型的时候,没有问题,过一会再训练出现非常卡顿,使用nvidia-smi查看发现,显示GPU
    发表于 01-03 08:24

    Merlin HugeCTR V3.4.1版本新增内容介绍

    Merlin HugeCTR(以下简称 HugeCTR)是 GPU 加速的推荐程序框架,旨在在多个 GP
    的头像 发表于 03-10 10:15 829次阅读

    GPU加速的推荐程序框架Merlin HugeCTR

    Merlin HugeCTR(以下简称 HugeCTR)是 GPU 加速的推荐程序框架,旨在在多个 GP
    的头像 发表于 03-20 15:30 1968次阅读

    NVIDIA正式发布Merlin 1.0版本

    在GTC2022大会上,NVIDIA正式发布Merlin 1.0版本,是用于推荐系统的AI框架,由推荐系统流程的端到端组件组成。
    的头像 发表于 03-23 16:53 1485次阅读
    <b class='flag-5'>NVIDIA</b>正式发布<b class='flag-5'>Merlin</b> 1.0版本

    如何使用NVIDIA Merlin推荐系统框架实现嵌入优化

    HugeCTR TensorFlow 嵌入插件今天可以从 HugeCTR GitHub 存储库以及 NGC NVIDIA Merlin Te
    的头像 发表于 04-02 14:18 1655次阅读
    如何使用<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Merlin</b>推荐系统框架实现<b class='flag-5'>嵌入</b>优化

    Merlin HugeCTR v3.6和v3.7版本新增内容介绍

    Merlin HugeCTR(以下简称 HugeCTR)是 GPU 加速的推荐程序框架,旨在在多个 GP
    的头像 发表于 06-17 09:28 759次阅读

    NVIDIA Merlin GPU推荐系统加速大模型训练和推理

    暌违两年,NVIDIA Merlin 推荐系统公开课将于 7 月 5 日全面上新。本次公开课将由 NVIDIA 高级产品经理高文雯和 NVIDIA 高级开发经理王泽寰分别进行主讲和直播
    的头像 发表于 07-05 09:02 1329次阅读

    Merlin HugeCTRV 3.8/3.9版本新增内容

    Merlin HugeCTR(以下简称 HugeCTR)是 GPU 加速的推荐程序框架,旨在在多个 GP
    的头像 发表于 08-24 10:12 529次阅读

    NVIDIA GPU加速潞晨科技Colossal-AI大模型开发进程

    通过 NVIDIA GPU 加速平台,Colossal-AI 实现了通过高效多维并行、异构内存管理、大规模优化库、自适应任务调度等方式,更高效快速部署 AI 大模型训练与
    的头像 发表于 10-19 09:39 1175次阅读

    Merlin HugeCTR第三代 Embedding 功能优化

    Merlin HugeCTR(以下简称 HugeCTR)是 GPU 加速的推荐框架,旨在在多个 GPU
    的头像 发表于 10-20 09:51 742次阅读

    NVIDIA 人工智能开讲 | Merlin HugeCTR 与 DeepRec 的深度合作以及最新技术进展

    ”两大音频 APP上搜索“ NVIDIA 人工智能开讲 ”专辑,众多技术大咖带你深度剖析核心技术,把脉未来科技发展方向! NVIDIA Merlin HugeCTR  是
    的头像 发表于 11-21 21:05 528次阅读

    Merlin HugeCTR v4.3 发布说明

    NVIDIA Merlin HugeCTR(以下简称 HugeCTR)是 GPU 加速的推荐框架
    的头像 发表于 01-05 11:55 509次阅读

    NVIDIA Merlin 助力陌陌推荐业务实现高性能训练优化

    通过 Merlin 大幅提升大规模深度多目标精排模型训练性能 本案例中,NVIDIA 团队与陌陌推荐系统团队深度合作,共同使用 NVIDIA GPU
    的头像 发表于 11-09 10:45 140次阅读
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Merlin</b> 助力陌陌推荐业务实现高性能训练优化

    利用NVIDIA组件提升GPU推理的吞吐

    本实践中,唯品会 AI 平台与 NVIDIA 团队合作,结合 NVIDIA TensorRT 和 NVIDIA Merlin HierarchicalKV(HKV)将
    的头像 发表于 04-20 09:39 154次阅读