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

    文章

    5682

    浏览量

    110095
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5258

    浏览量

    136039
  • 程序
    +关注

    关注

    117

    文章

    3847

    浏览量

    85448

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    达实AIoT智能物联网管控平台V7.1版本更新升级

    2026年3月17日,达实智能31周年庆典暨“AI+物联网平台”应用成果汇报会成功举办。达实智能研发中心产品经理袁宜峰博士发布了AIoT智能物联网平台V7.1版本
    的头像 发表于 03-19 11:10 516次阅读

    【「Altium Designer 25 电路设计精进实践」阅读体验】+本书概览与内容特点介绍

    本文以AD 25版本为依托,介绍了AD25进行电子电路设计的方法,理论结合实践。 内容概览先来概览下本书的内容,看一书的
    发表于 02-14 15:56

    12V3.7V锂电池充电芯片选型,高性价比PW4213应用指南

    常见的3.7V锂电池充电芯片,是4054,4057,4056等,单是电流不超过1A,同时都是5V输入,不能12V输入的,一般12V输入需要DC-DC降压了,PW4213是可以5
    的头像 发表于 01-15 16:05 565次阅读
    12<b class='flag-5'>V</b>给<b class='flag-5'>3.7V</b>锂电池充电芯片选型,高性价比PW4213应用指南

    摩尔线程发布Torch-MUSA v2.7.0版本

    近日,摩尔线程正式发布PyTorch深度学习框架的MUSA扩展库——Torch-MUSA v2.7.0,新版本在功能集成、性能优化与硬件支持方面实现进一步突破。Torch-MUSA在短短一个月
    的头像 发表于 12-04 09:05 1254次阅读

    RT-Thread Studio V2.3.0 版本正式发布!

    RT-ThreadStudioV2.3.0亲爱的开发者们,我们很高兴地宣布RT-ThreadStudio版本更新啦!V2.3.0版正式发布!RT-ThreadStudioV2.3.0更新内容1
    的头像 发表于 11-29 09:29 1299次阅读
    RT-Thread Studio <b class='flag-5'>V</b>2.3.0 <b class='flag-5'>版本</b>正式发布!

    SL4010 升压 IC:3.7V/4.2V/8.4V 升 12V,应急设备电源稳定供电核心方案

    电源:小型应急储能电源,兼容 3.7V/4.2V/8.4V 锂电输入,稳定升 12V 输出,为手机、笔记、小型家电应急供电,外围电路简单、
    发表于 11-28 17:20

    锂电池3V\3.3V\3.7V升5V升压芯片,选型指南

    3.7V升5V的本质是 “电压搬运工+稳压器”,把电池变化的电压转化成设备需要的恒定5V,解决锂电池直接供电不稳的问题。有哪些适配的芯片呢?
    的头像 发表于 09-09 16:50 1605次阅读
    锂电池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'>V</b>升压芯片,选型指南

    开鸿Bot系列V5.0.1.10版本升级!

    开鸿Bot系列更新至V5.0.1.10版本,此次升级聚焦功能优化及系统稳定性提升,在分布式能力、文件分享、打印功能及界面显示等方面进行了多项改进,同时修复了多个已知问题,进一步提升了系统的可靠性
    的头像 发表于 08-08 18:58 854次阅读
    开鸿Bot系列<b class='flag-5'>V</b>5.0.1.10<b class='flag-5'>版本</b>升级!

    请问k230创乐博V3.0版本如何使用ADB传输文件呢?

    请问k230 创乐博V3.0版本如何使用ADB传输文件?
    发表于 06-24 07:57

    锂电池升压方案:3V-3.7V 输入升 5V 输出,DC-DC芯片选型关键参数探讨(大小电流)

    锂离子电池已深度融入电子玩具、美容仪、医疗设备、智能手表、手机、笔记电脑、电动汽车等日常生活的各个领域,而其中3.7V锂电池升压至5V供电技术,能广泛适配USB接口设备、微型控制器、传感器模块
    的头像 发表于 06-12 11:55 3018次阅读
    锂电池升压方案:3<b class='flag-5'>V-3.7V</b> 输入升 5<b class='flag-5'>V</b> 输出,DC-DC芯片选型关键参数探讨(大小电流)

    CANoe产品体系19版本新特性及新增Option(上)

    版本持续助力当前车辆E/E架构中ECU开发验证,同时赋能后续智能网联电动车型预研验证。新版本CANoe产品体系新增数据驱动的DDS、车辆互联服务和高效电机模型库,进一步支持CANXL
    的头像 发表于 06-11 10:03 3182次阅读
    CANoe产品体系19<b class='flag-5'>版本</b>新特性及<b class='flag-5'>新增</b>Option(上)

    支持HPM6P00/HPM5E00系列!HPMicro Manufacturing Tool v0.6.0发布

    各位先楫的小伙伴久等了,HPMicroManufacturingTool0.6.0版本正式发布啦!该版本包含多个模块的更新优化,让我们抓紧时间先睹为快!v0.6.0版本主要更新
    的头像 发表于 06-04 08:28 2656次阅读
    支持HPM6P00/HPM5E00系列!HPMicro Manufacturing Tool <b class='flag-5'>v</b>0.6.0发布

    信捷电气XDPPro V3.8.0版本的五大创新功能

    作为信捷XD、XL、XG系列PLC的编程软件,XDPPro始终以工程师的需求为核心,聚焦编程效率、硬件配置与协作体验,此次V3.8.0版本将推出五大创新功能,助您轻松应对复杂工程挑战。
    的头像 发表于 05-23 16:03 2009次阅读
    信捷电气XDPPro <b class='flag-5'>V</b>3.8.0<b class='flag-5'>版本</b>的五大创新功能

    SL4010升压芯片:3.7V升5V 3.7V升12V解决方案

    SL4010升压芯片:3.7V升5V/12V解决方案的优选方案 随着便携式设备、LED照明等领域的快速发展,高效稳定的升压电源管理芯片需求日益增长。SL4010作为一款高性能DC-DC升压芯片
    发表于 05-07 16:31

    IR3883MTRPBF在3.3V/3.6V时爆炸是怎么回事?

    IR3883MTRPBF 在 3.3V/3.6V 时爆炸 降压调节器
    发表于 04-21 07:41