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

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

3天内不再提示

Merlin HugeCTR v4.3 发布说明

NVIDIA英伟达 来源:未知 2023-01-05 11:55 次阅读

NVIDIA Merlin HugeCTR(以下简称 HugeCTR)是 GPU 加速的推荐框架,旨在在多个 GPU 和节点之间分配训练并估计点击率(Click-through rate)。作为一个开源框架,HugeCTR 能够优化 NVIDIA GPU 上的大规模推荐。近期,HugeCTR 发布了 v4.3 版本,让我们一同了解一下此次更新的详细内容!

新增内容

HugeCTR 第三代 Embedding 更新:

  • 第三代 Embedding 功能优化:自从在 v3.7 中引入新一代 HugeCTR Embedding 以来,进行了一些更新和优化,包括代码重构以提高可用性。此版本的增强功能如下:

  • EmbeddingPlanner 类替换为 EmbeddingCollectionConfig 类。有关 API 的示例,请参阅 test/embedding_collection_test 目录。

  • 优化了一些 API ,以支持训练过程中模型导入和导出。这些方法是 Model.embedding_dump(path: str, table_names: list[str]) 和 Model.embedding_load(path: str, list[str])。路径参数是文件系统中的一个目录,您可以将模型权重存储到该目录或从中加载权重。table_names 参数是 Embedding 表名的列表。

45eb3b52-8cac-11ed-bfe3-dac502259ad0.png

图 1:HugeCTR 分层参数服务器(HPS)架构

HugeCTR 分层参数服务器(HPS)更新:

  • RedisClusterBackend 现在支持 TLS/SSL 通信相关示例代码,请参阅分层参数服务器演示笔记本。该笔记本更新了分步说明,向您展示如何设置 HPS 以使用带(和不带)加密的 Redis。同时, 易失性数据库参数 文档对 enable_tls、tls_ca_certificate、tls_client_certificate、tls_client_key 和 tls_server_name_identification 等参数进行了更新。

  • 对 Embedding 缓存添加了静态表支持。当 Embedding 表可以完全放在 GPU 内存中时,静态表是合适的。在这种情况下,静态表比 Embedding 缓存查找快三倍以上。当然,静态表将不支持 Embedding 的更新。

  • 用于 TensorFlow 与 TensorFlow-TensorRT 集成的 HPS 插件 (TF-TRT):有关示例代码请参阅部署 SavedModel 笔记本

  • Redis 或 Kafka 使用的更改:更新了用 RedisClusterBackend 和用 Kafka 参数流部署模型的方式。使用了 HPS 分区选择算法的第三方库以提高性能。新算法可以为易失性数据库生成不同的分区分配。

  • 新易失性数据库类型:此版本将 multi_process_hash_map 的 db_type 值添加到分层参数服务器。此数据库类型支持使用共享内存和 /dev/shm 设备文件跨进程的共享 Embedding。运行 HPS 的多个进程可以读取和写入同一个哈希映射。

  • HPS Redis 后端的优化:在此版本中,分层参数服务器可以并行打开多个连接到每个 Redis 节点。此增强功能使 HPS 能够利用 Redis 服务器 I/O 模块中的重叠处理优化。此外,HPS 现在可以利用 Redis 散列标签来共同定位 Embedding 值和元数据。此增强功能可以减少对 Redis 节点的访问次数以及完成事务所需的每个节点往返通信的次数。

  • 向 ONNX 模型转换器添加了多任务模型支持:此版本向 ONNX 转换器添加了对多任务模型的支持。此版本还包括对 preprocess_census.py 脚本的更新。

  • 删除了对一些库的依赖。

Layer 以及优化器的更新以及新的模型支持:

  • 增加了对动态 Embedding 表 (DET) 的 SGD、Momentum SGD、Nesterov Momentum、AdaGrad、RMS-Prop、Adam 和 FTRL 优化器的支持。示例代码请参考目录中的test_embedding_table_optimizer.cpp 文件 test/utest/embedding_collection/ 目录。

  • 添加了对稠密网络 FTRL 优化器的支持。

  • 支持了 BERT 和其变体:包括对 MultiHeadAttention 层并为序列掩码层。有关详细信息,请参阅 samples/bst 目录。

  • Deep & Cross Network Layer 版本 2 支持:有关概念信息,请参阅 https://arxiv.org/abs/2008.13535。多交叉层文档也已更新。

  • MLP Layer 更新:添加了一个带有 hugectr.Layer_t.MLP 类的 MLP 层。该层非常灵活,可以更轻松地使用一组融合的全连接层并启用相关优化。对于 MLPLayer 中的每个融合全连接层,输出维度、偏差和激活函数都是可调的。MLPLayer 支持 FP32、FP16 和 TF32 数据类型。有关示例请参阅 dlrm 目录中的 dgx_a100_mlp.py 以了解如何使用该层。

Sparse Operation Kit(SOK) 的更新:

  • DeepRec 中 Sparse Operation Kit 的增强功能:此版本包括对 Sparse Operation Kit 的更新,以提高 DeepRec 中 Embedding 变量查找操作的性能。lookup_sparse() 函数的 API 已更改以删除热度参数。lookup_sparse() 函数得到优化,可以动态计算非零元素的数量。有关详细信息,请参阅 sparse_operation_kit 目录 。

  • Sparse Operation Kit 可从 PyPi 安装:1.1.4 版的 SOK 可从 PyPi 安装了。

HugeCTR I/O 模块更新:

  • 支持了在离线推理中从远端文件系统(HDFS, S3 等)中读取推理数据:HugeCTR 除了训练时读取外,现在还支持离线推理时通过 DataSourceParams API 从远程文件系统如 HDFS 和 S3 读取数据。HugeCTR Training and Inference with Remote File System Example 已更新以展示这个新功能。

461f7480-8cac-11ed-bfe3-dac502259ad0.png

图 2:HugeCTR I/O 模块功能架构

文档和示例更新:

  • 为了帮助用户配置 Jupyter Notebook 的运行环境,新增了运行示例笔记本 。

  • 提高了数据预处理脚本的易用性。

  • MLP 层的文档更新了。

  • 新增了 2022 年的 HugeCTR 相关演讲和博客:HugeCTR 演讲和博客 。

修复的问题

  • 修复了 MultiProcessHashMapBackend 在使用基于 JSON 文件的配置时阻止配置共享内存大小的错误。

  • 在调用某些 HugeCTR API 之前具有 NUMA 绑定的原始 CUDA 设备现在可以正确恢复。

  • 修复了使用宏 DEBUG 安装 HugeCTR 时偶尔出现的 Embedding CUDA 内核启动失败的问题。

  • 修复了与 TensorFlow v2.1.0 及更高版本相关的 SOK 构建错误。

  • 修复了与 CUDA 12 相关的编译错误。

已知问题

以下是目前 HugeCTR 存在的已知问题,我们将在之后的版本中尽快修复:

  • 如果客户端代码调用 RMM rmm::set_current_device_resource() 方法或 rmm::set_current_device_resource() 方法,HugeCTR 可能会出现运行时错误。该错误是由于 HugeCTR 中的 Parquet 数据读取器也调用了 rmm::set_current_device_resource(),因此该设备对同一进程中的其他库可见。参考 GitHub 问题 #356 以获取更多信息。作为解决方法,如果您知道 rmm::set_current_device_resource() 被 HugeCTR 以外的客户端代码调用,您可以将环境变量 HCTR_RMM_SETTABLE 设置为 0 以防止 HugeCTR 设置自定义 RMM 设备资源。但要小心,因为该设置会降低 Parquet 读取的性能。

  • HugeCTR 使用 NCCL 在队列之间共享数据,并且 NCCL 可能需要共享系统内存用于 IPC 和固定(页面锁定)系统内存资源。如果您在容器内使用 NCCL,请在启动容器时通过指定参数 -shm-size=1g -ulimit memlock=-1 来增加这些资源。

  • 即使目标 Kafka 代理没有响应,KafkaProducers 启动也会成功。为避免与来自 Kafka 的流模型更新相关的数据丢失,您必须确保足够数量的 Kafka 代理正在运行、正常运行,并且可以从运行 HugeCTR 的节点访问。

  • 文件列表中的数据文件数量应大于或等于数据读取器工作人员的数量。否则,不同的 worker 会映射到同一个文件,并且数据加载不会按预期进行。

  • 暂时不支持使用正则化器的联合损失训练。

  • 暂时不支持将 Adam 优化器状态导出到 AWS S3。

HugeCTR v4.3 发布说明,已更新至 GitHub 和文档:

GitHub:

https://github.com/NVIDIA-Merlin/HugeCTR

文档:

https://nvidia-merlin.github.io/HugeCTR/master/hugectr_user_guide.html

从 2023 年一月起,HugeCTR 的版本号将从数字版本(v.4.4)变更为年历版本(v23.01)。


原文标题:Merlin HugeCTR v4.3 发布说明

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


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

    关注

    22

    文章

    3327

    浏览量

    87769

原文标题:Merlin HugeCTR v4.3 发布说明

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

收藏 人收藏

    评论

    相关推荐

    美国Merlin公司加速自主飞行模拟器开发

    美国Merlin公司正全力加速自主飞行模拟器的开发进程,以推动航空领域的创新与发展。这一举措不仅体现了Merlin公司在技术研发方面的雄厚实力,也预示着自主飞行技术即将迎来新的突破。
    的头像 发表于 04-22 11:30 245次阅读

    安装最新版的IAR for stm8无法烧写程序怎么解决?

    Utility”(V4.3)来保证安装了最新的驱动然后又重装了“IAR for stm8 debugger-support-files”,问题就解决了。
    发表于 04-22 07:49

    最近国产的rsic-v的mcu有什么新品发布

    如题,最近国产的rsic-v的mcu有什么新品发布。那种超低功耗的!
    发表于 04-13 07:58

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

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

    如何搭建高效推荐系统?用Milvus和NVIDIA Merlin搭建高效推荐系统

    之后,推荐系统能够给出高度个性化的推荐结果,从而提升产品的用户体验。 为了方便大家对此进行深入了解,我们邀请到 NVIDIA Merlin  团队 ,他们将详细介绍推荐系统的上述多个阶段的工作流程,以及推荐系统在电商、流媒体、社交媒体等多个行业
    的头像 发表于 11-01 09:30 657次阅读
    如何搭建高效推荐系统?用Milvus和NVIDIA <b class='flag-5'>Merlin</b>搭建高效推荐系统

    ST电机控制培训--FOC控制

     电机简介 评估工具:IDE,GUI,Demo 板 STM32 PMSM FOC SDK V4.3概述 试验一:评估工具使用 FOC控制基础理论 API使用示例 基于电机库开发项目 试验二:API使用
    发表于 09-11 07:38

    OneCapture发布说明10.0.803.9

    电子发烧友网站提供《OneCapture发布说明10.0.803.9.pdf》资料免费下载
    发表于 08-14 10:39 0次下载
    OneCapture<b class='flag-5'>发布</b><b class='flag-5'>说明</b>10.0.803.9

    VMware发布说明Emulex

    电子发烧友网站提供《VMware发布说明Emulex.pdf》资料免费下载
    发表于 07-28 15:00 0次下载
    VMware<b class='flag-5'>发布</b><b class='flag-5'>说明</b>Emulex

    OneCapture发布说明

    电子发烧友网站提供《OneCapture发布说明.pdf》资料免费下载
    发表于 07-26 17:15 0次下载
    OneCapture<b class='flag-5'>发布</b><b class='flag-5'>说明</b>

    Zynq UltraScale+ Use Case 4.3 原理图s

    Zynq UltraScale+ Use Case 4.3 原理图s
    发表于 07-10 18:35 1次下载
    Zynq UltraScale+ Use Case <b class='flag-5'>4.3</b> 原理图s

    UM-B-041: User 手册 DA1458x-DA1468x Production Line Tool 软件 and HW v4.3

    UM-B-041: User 手册 DA1458x-DA1468x Production Line Tool 软件 and HW v4.3
    发表于 07-04 21:03 0次下载
    UM-B-041: User 手册 DA1458x-DA1468x Production Line Tool 软件 and HW <b class='flag-5'>v4.3</b>

    【软件更新】Gecko SDK v4.3版现已可用,全面优化IoT无线协议开发

    Silicon Labs (亦称“芯科科技”)针对 Gecko 软件开发工具包 (GSDK) 推出了最新版本 v4.3 版,面向蓝牙、 Matter 、 OpenThread 、专有协议
    的头像 发表于 06-19 15:35 558次阅读
    【软件更新】Gecko SDK <b class='flag-5'>v4.3</b>版现已可用,全面优化IoT无线协议开发

    广州大彩Smart系列 4.3寸串口屏新品发布

    此次首发医疗Smart系列平台的串口屏主要为4.3、3.5、2.8寸,该平台采用了96M Cortex-M3内核的处理器,内置了2Mbyte PSRAM和64Mbit FLASH,是专为小尺寸串口
    的头像 发表于 06-19 11:33 1709次阅读
    广州大彩Smart系列 <b class='flag-5'>4.3</b>寸串口屏新品<b class='flag-5'>发布</b>!

    PyTorch教程4.3之基本分类模型

    电子发烧友网站提供《PyTorch教程4.3之基本分类模型.pdf》资料免费下载
    发表于 06-05 15:43 0次下载
    PyTorch教程<b class='flag-5'>4.3</b>之基本分类模型

    KiCad EDA 版本说明

    的邮件列表说明,可能每年会升级一次主版本,2022 年时 v6.x.x,2023 年时 v7.x.x,未来到 2024 年时版本可能会是 v8.x.x,当然这只是计划。 y 为次版本号
    发表于 05-20 16:27