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

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

3天内不再提示

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

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 作者:NVIDIA英伟达企业解 2022-06-17 09:28 次阅读

Merlin HugeCTR(以下简称 HugeCTR)是 GPU 加速的推荐程序框架,旨在在多个 GPU 和节点之间分配训练并估计点击率(Click-through rate)。

V3.6 版本新增内容

1. Concat 层现已支持 3D 输入张量:

在之前的版本中,Concat 层只能处理 2D 输入张量。现在输入可以是 3D 并且可以沿轴 1 和轴 2 连接。

2. Parquet 数据读取器现已支持读取稠密特征中的列表:

在以前的版本中, HugeCTR 假设每个稠密特征只有一个值,并且数据类型必须是 float32,也就是是一种标量类型。而现在用户可以将 float32 或者 [float32] 用于稠密特征,这意味着每个稠密特征可以有多个值。

3. 在 Merlin 容器中重新启用 HDFS:

Merlin 容器中的 HDFS 支持现在是一个可选依赖项。有关详细信息,请参阅核心功能文档中的 HDFS 支持部分。

(https://nvidia-merlin.github.io/HugeCTR/v3.6/hugectr_core_features.html#hdfs-support)

4. 评估指标中增加 AUC 评估:

以前版本的 HugeCTR 仅针对二进制分类的情况计算 AUC。在这个版本中,我们支持多标签分类的 AUC。我们使用 sklearn 的 AUC 实现作为参考 (https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html)。我们实现了未加权的宏观平均策略,这是 sklearn 中的默认策略。用户可以更改输入层的“label_dim”参数以启用多标签分类,我们的实现将在该场景中计算多标签 AUC。

5. 日志输出格式升级:

我们已将默认日志输出格式升级为毫秒级。

6. 文档更新:

a. 发布说明现已添加到网络文档中,可通过以下链接访问

(https://nvidia-merlin.github.io/HugeCTR/master/release_notes.html)。

b. HPS(分级参数服务器)配置手册

我们为 HPS 添加了一个配置手册(https://nvidia-merlin.github.io/HugeCTR/master/hugectr_parameter_server.html#configuration-book) 。这本配置手册总结了 Python API 和 JSON 格式的所有参数及其用法。

c. 与使用多模态数据相关的示例笔记本在标题多模态示例笔记本下的导航中重新排布(https://nvidia-merlin.github.io/HugeCTR/master/notebooks/multi-modal -data/index.html),旨在提供更好的阅读体验。

d. 我们更清楚地描述了SOK 提供的功能以及介绍了如何使用它们。

V3.7 版本新增内容:

1. 第三代 Embedding 开发者预览:

在这个版本中,我们引入了第三代 Embedding 的开发者预览版本,与先前的 Embedding 相比,第三代 Embedding 主要有三个变化。首先,它允许用户融合具有不同 Embedding 向量大小的 Embedding Table,从而提高了灵活性和性能。其次,它现在支持 concat combiner ,以及在同一个 Embedding Table 上的不同 slot 来进行查找。最后,Embedding Collection 的引入有力地支持了自定义 Embedding Table 的放置,包括数据并行和模型并行。通过提供一个 JSON 文件,您可以根据您的指定配置更改 Embedding Table 的放置策略。更详细的使用方法,清查阅实例

https://github.com/NVIDIA-Merlin/HugeCTR/tree/v3.7/test/embedding_collection_test 下的 dlrm_train.py 脚本。

2. 分级参数服务器性能改进:

a. Kafka:模型参数现在以节省带宽的多路复用数据格式存储在 Kafka 中,这种数据格式极大地提高了吞吐量。在我们的测试中,每个 Kafka Broker 的传输速度高达 1.1 Gbps。

b. HashMap 后端:并行和单线程的 hashmap 实现已被新的统一实现取代。这个新的实现使用了一种新的基于内存池的分配方法,它极大地提高了插入性能,而不会降低召回性能。与之前的实现相比,大批量插入操作的速度提高了 4 倍。

c. 压缩的日志:用户可以在 Triton 服务启动时配置多级日志输出,从而提高在线推理的吞吐量。

d. 简化配置:HugeCTR 后端将推理参数服务器相关配置(ps.json)和 Triton 配置(config.pbtxt)完全解耦,避免了 Triton 中的重复配置。

e. Embedding 更新的冻结功能:HugeCTR 后端已经支持通过 Triton 的模型控制接口只更新模型的密集部分,从而避免 Embedding 的在重复在线更新。

3. 离线推理可用性的增强:

线程池的大小现在可以配置了,这对于研究异步更新场景中的 Embedding Cache 性能十分有用。更多信息,请参阅分层参数服务器配置

https://nvidia-merlin.github.io/HugeCTR/master/hugectr_parameter_server.html#configuration。

4. 数据生成器性能提升:

现在可以指定 `num_threads` 参数以并行化 `Norm` 数据集生成。

5. 评估指标改进:

a. 多节点环境中的 AverageLoss 性能提升

b. AUC 性能优化和更安全的内存管理

c. NDCG 和 SMAPE

6. 使用 Parquet 数据集的 Embedding Training Cache(ETC) 演示:

现在我们提供了一个 keyset 提取脚本以生成 Parquet 数据集的 keyset文件。并且为用户提供了一个使用 ETC 模式训练 Parquet 数据集的端到端演示: https://github.com/NVIDIA-Merlin/HugeCTR/blob/master/notebooks/embedding_training_cache_example.ipynb 。

7. 文档更新:

HugeCTR 分层参数服务器数据库后端 https://nvidia-merlin.github.io/HugeCTR/master/hugectr_parameter_server.html 的文档详细信息已更新,以保持一致性和清晰性。

8. 修复的问题:

a. 在使用 Parquet 数据类型时,如果指定了 `slot_size_array`,则不再需要指定 `workspace_size_per_gpu_in_mb` 了。

b.如果您从头开始构建和安装 HugeCTR,您可以指定 `CMAKE_INSTALL_PREFIX` 变量来指定 HugeCTR 的安装目录。

c. 解决了使用大量 GPU 进行 SOK 训练时 sok.init()的挂起问题:

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

https://github.com/NVIDIA-Merlin/HugeCTR/issues/302。

已知问题

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

HugeCTR 使用 NCCL 在 rank 之间共享数据,并且 NCCL 可能需要共享系统内存用于 IPC 和固定(页面锁定)系统内存资源。在容器内使用 NCCL 时,建议您通过发出以下命令来增加这些资源 `-shm-size=1g -ulimit memlock=-1`

另见 NCCL 的 已知问题 https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting.html#sharing-data。还有 GitHub 问题 https://github.com/NVIDIA-Merlin/HugeCTR/issues/243 。

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

文件列表中的数据文件数量应不小于数据读取器的数量。否则,不同的 data reader worker 将被映射到同一个文件,导致数据加载不会按预期进行。

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

用于 HugeCTR 训练样本的 Criteo 1TB Click Logs 数据集目前不可用。在它再次可下载之前,您可以基于我们的合成数据集生成器运行这些示例。有关详细信息,请参阅 https://nvidia-merlin.github.io/HugeCTR/master/hugectr_user_guide.html#generating-synthetic-data-and-benchmarks 。

目前的数据生成器在生成 Parquet 数据集时会产生不一致的文件名,这会将导致使用合成的 Parquet 数据时报错。

原文标题:HugeCTR v3.6 & v3.7 发布说明

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

审核编辑:汤梓红

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

    关注

    14

    文章

    4841

    浏览量

    102694
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4663

    浏览量

    128541
  • 程序
    +关注

    关注

    116

    文章

    3753

    浏览量

    80722

原文标题:HugeCTR v3.6 & v3.7 发布说明

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NVIDIA Parabricks v4.3.1版本的新功能

    会(ESHG)上发布,其加入了新的体细胞数据变异检测功能,并将业内领先的工具升级到最新版本。这个版本是继在 NVIDIA GTC 2024 大会上发布 Parabricks v4.3 之后推出的新
    的头像 发表于 09-10 10:22 310次阅读
    NVIDIA Parabricks <b class='flag-5'>v</b>4.3.1<b class='flag-5'>版本</b>的新功能

    RaftKeeper v2.1.0版本发布,性能大幅提升!

    ClickHouse 场景中,用于解决 ZooKeeper 的性能瓶颈问题,同时 RaftKeeper 也可以用于其它大数据组件比如 HBase。 v2.1.0 作为 v2.0.0 后的重要版本,引入了一系列
    的头像 发表于 07-15 15:10 278次阅读
    RaftKeeper <b class='flag-5'>v</b>2.1.0<b class='flag-5'>版本</b>发布,性能大幅提升!

    微软发布智能办公工具OfficePLUS V 3.0版本

    近日,微软发布了智能办公工具 OfficePLUS V 3.0 版本。全新升级的 OfficePLUS V 3.0 新增了 Excel 插件,继已发布的 PPT/Word 插件之后,
    的头像 发表于 06-27 09:26 645次阅读

    ENV-Windows v2.0.0版本发布

    ENV-Windows v2.0.0版本发布
    的头像 发表于 06-26 08:35 527次阅读
    ENV-Windows <b class='flag-5'>v</b>2.0.0<b class='flag-5'>版本</b>发布

    chrome插件新版本v3版本)中的热更新,即加载更新远程js的方法探索

    1 主流方案及尝试 现在浏览器插件中,大多采用直接调用远程代码的方式进行热更新,由于安全策略逐步增强,越来越不支持热更新了;chrome在新v3版本插件中直接给禁止了;对于v2版本则即
    的头像 发表于 06-14 10:19 701次阅读
    chrome插件新<b class='flag-5'>版本</b>(<b class='flag-5'>v</b>3<b class='flag-5'>版本</b>)中的热更新,即加载更新远程js的方法探索

    单节锂电池3V、3.3V3.7V升压至5V9V12V,3W-30W电路demo测试合集

    单节锂电升压3V、3.3V3.7V升压至5V、9V、12V电流,3W-30W电路DEMO板测试
    的头像 发表于 05-09 16:45 1502次阅读
    单节锂电池3<b class='flag-5'>V</b>、3.3<b class='flag-5'>V</b>、<b class='flag-5'>3.7V</b>升压至5<b class='flag-5'>V9V12V</b>,3W-30W电路demo测试合集

    LwIP v2.0版本更换为v2.1.2版本后接收不到数据了怎么解决?

    请教下,吧 LwIP v2.0 版本更换为 v2.1.2 版本后接收不到数据了,是怎么回事啊 ?? 之前使用 v2.0
    发表于 04-23 08:20

    达实智能正式发布AIoT智能物联网管控平台V6版本

    近日,在达实智能成立29周年庆典上,公司正式发布AIoT智能物联网管控平台V6版本
    的头像 发表于 03-20 16:42 1337次阅读
    达实智能正式发布AIoT智能物联网管控平台<b class='flag-5'>V</b>6<b class='flag-5'>版本</b>

    机智云“智家”APP V4.4.22版本发布

    新功能上线版本更新亲爱的机友们,迎来了机智云智家APP全新版本V4.4.22的发布!此次更新,我们为您带来了一系列实用的功能优化和全新的体验,让智能生活更加便捷、智慧!更新内容一览01
    的头像 发表于 03-16 08:09 353次阅读
    机智云“智家”APP <b class='flag-5'>V</b>4.4.22<b class='flag-5'>版本</b>发布

    PW2051芯片,实现锂电池3.7V到2.5V, 1.5V, 1.2V的高效降压转换

    电子工程师必备:PW2051芯片,实现锂电池3.7V到2.5V, 1.5V, 1.2V的高效降压转换,低功耗,外围简单
    的头像 发表于 03-05 13:50 851次阅读
    PW2051芯片,实现锂电池<b class='flag-5'>3.7V</b>到2.5<b class='flag-5'>V</b>, 1.5<b class='flag-5'>V</b>, 1.2<b class='flag-5'>V</b>的高效降压转换

    Embedded office发布安全插件V1.1版本

    Embedded office很高兴地宣布安全插件V1.1版本的发布了!现在通过外部设备或不同核心架构的专门通道支持端到端受保护的安全通信。
    的头像 发表于 02-20 11:12 545次阅读

    3.7V锂电池浪涌静电防护方案详解

    3.7V锂电池是一种标称电压为3.7V,满电电压为4.2V的锂电池,其容量从几百到几千毫安时不等,一般应用于各种仪器仪表、检测仪器、医疗仪器、POS机、笔记电脑等产品上。浪涌静电,可
    的头像 发表于 01-18 09:24 1157次阅读
    <b class='flag-5'>3.7V</b>锂电池浪涌静电防护方案详解

    AtomGit教程 | v0.8.0版本震撼升级,11大功能抢先看!

    协作的安全保障,并显著提升使用便捷性。 代码仓加密 为了进一步保护您的代码仓库,v0.8.0版本新增了代码仓的加密功能。AtomGit代码仓加密是通过在云端对托管在AtomGit的代码库进行落盘加密,可以有效避免数据拥有者之外的
    的头像 发表于 01-04 19:55 1456次阅读
    AtomGit教程 | <b class='flag-5'>v</b>0.8.0<b class='flag-5'>版本</b>震撼升级,11大功能抢先看!

    Vivado 2023.2版本新增功能

    Vivado在前一段时间更新了2023.2版本,经过一段时间的使用这个版本还是很丝滑的,用起来挺舒服。
    的头像 发表于 01-02 09:39 2736次阅读
    Vivado 2023.2<b class='flag-5'>版本</b>的<b class='flag-5'>新增</b>功能

    H6922惠海国产DC3.7V升压5V、12V、24V/5A升压恒压电源芯片

    H6922惠海国产DC3.7V升压5V、12V、24V/5A升压恒压电源芯片
    的头像 发表于 12-15 09:37 1083次阅读
    H6922惠海国产DC<b class='flag-5'>3.7V</b>升压5<b class='flag-5'>V</b>、12<b class='flag-5'>V</b>、24<b class='flag-5'>V</b>/5A升压恒压电源芯片