首页 > 最新资讯 > Merlin HugeCTR v3.5 发布说明
Merlin HugeCTR v3.5 发布说明

Merlin HugeCTR v3.5 发布说明

2022-04-17 15:26

#人工智能 #深度学习


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

此次 v3.5 更新涉及的模块主要为:

HugeCTR 分级参数服务器 

(https://github.com/NVIDIA-Merlin/HugeCTR/blob/master/docs/hugectr_parameter_server.md)

HugeCTR Sparse Operation Kit 

(https://github.com/NVIDIA-Merlin/HugeCTR/tree/master/sparse_operation_kit)

HugeCTR Python API

(https://github.com/NVIDIA-Merlin/HugeCTR/blob/master/docs/python_interface.md)

相关介绍:

HugeCTR 分级参数服务器系列之一 

HugeCTR 分级参数服务器系列之二 

HugeCTR SOK 系列之一 

V3.5 版本新增内容

HugeCTR 分级参数服务器(以下简称 HPS)已被单独封装和导出为库:

我们封装了 HPS 的相关接口并将其作为独立库提供。此外,我们提供 HPS Python API 并通过 Jupyter nontebook 演示其用法。更多信息请参考分层参数服务器文档(https://nvidia-

merlin.github.io/HugeCTR/master/hugectr_parameter_server.html)和 HPS 演示

(https://github.com/NVIDIA-Merlin/HugeCTR/blob/master/notebooks/hps_demo.ipynb)。

新增了 HPS Triton 后端

HPS 后端是一个用于嵌入向量在大规模嵌入表上查找的框架,旨在通过将嵌入表和嵌入缓存与深度推荐模型的端到端推理管道。更多信息请参考分层参数服务器

(https://github.com/triton-inference-server/hugectr_backend/tree/main/samples )。

SOK 已在 pypi 上发布

(https://pypi.org/project/merlin-sok/):

用户可以通过 `pip install merlin-sok` 安装 SOK。

联合损失函数和多任务训练支持:

我们现已在训练中支持联合损失,以便用户可以使用多个标签和不同权重的任务进行训练。API 扩展允许用户定义多个标签、损失层和相应的权重。用户可以根据需要在训练迭代之间更改权重。添加了 MMoE 示例以显示用法

(https://github.com/NVIDIA-Merlin/HugeCTR/tree/master/samples/mmoe)

HugeCTR 网页版文档:

现在用户可以访问网页版文档了

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

ONNX 转换器优化:

我们启用将MultiCrossEntropyLoss 和 CrossEntropyLoss 层转换为 ONNX 以支持多标签推理。更多信息请参考 HugeCTR to ONNX Converter

(https://github.com/NVIDIA-Merlin/HugeCTR/tree/master/onnx_converter)。

HPS 性能优化:

在 HPS 中使用更好的方法来确定数据库后端中的分区号。

HDFS python API 优化:

简化 DataSourceParams 以便用户在真正需要之前无需提供所有路径。现在用户只需在创建求解器时传递一次 DataSourceParams。后续的路径将根据 DataSourceParams 设置自动判断本地路径或 HDFS 路径。

错误修复:

HugeCTR 输入层现在可以接受维度大于等于 1000 的稠密部分了。

已知问题

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 的节点访问。

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

联合损失训练暂不支持对每个损失层使用不同的正则化器。

联合损失训练暂不不支持动态损失权重。

<section style="\'outline:" 0px;max-width:="" 100%;box-sizing:="" border-box;color:="" rgb(34,="" 34,="" 34);font-family:="" -apple-system,="" blinkmacsystemfont,="" "helvetica="" neue",="" "pingfang="" sc",="" "hiragino="" sans="" gb",="" "microsoft="" yahei="" ui",="" yahei",="" arial,="" sans-serif;font-size:="" 16px;letter-spacing:="" 0.544px;white-space:="" normal;background-color:="" rgb(255,="" 255,="" 255);overflow-wrap:="" break-word="" !important;\'="">

 

相关新闻