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

Merlin HugeCTR v3.4.1 发布说明

2022-03-23 16:32


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

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

HugeCTR 分级参数服务器 

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

HugeCTR Python API

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

相关介绍:

●HugeCTR 分级参数服务器介绍

(https://mp.weixin.qq.com/s/bfnQ3glPYA0sAgZlntTDUw)

V3.4.1 版本新增内容

调整了整个代码库中日志消息的日志级别。

现已支持对具有多个标签的数据集进行推理:

“Softmax” 层现在已支持 FP16,并且支持混合精度以进行多标签推理。有关详细信息,请参阅 

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

支持多 GPU 离线推理:

我们通过 Python 接口支持多 GPU 离线推理,它可以利用Hierarchical Parameter Server

(https://github.com/NVIDIA-Merlin/HugeCTR/blob/master/docs/hugectr_parameter_server.md) 并在多个设备上实现并发执行。更多信息请参考推理 API

https://github.com/NVIDIA-Merlin/HugeCTR/blob/master/docs/python_interface.md#inference-api 和多 GPU 离线推理笔记本

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

HPS 已构建为独立库:

我们重构了代码库并将分层参数服务器构建为一个独立的库,以后会进一步封装。

metadata.json 简介:

添加了有关 Parquet data 中 _metadata.json 的详细信息,请参阅

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

增加了用于估计每个 GPU 的词汇量大小的文档和工具:

我们添加了一个工具来计算每个 GPU 的不同嵌入类型的词汇量大小,在此基础上, 

workspace_size_per_gpu_in_mb 可以根据嵌入向量大小和优化器类型评估更多信息请参考脚本:

https://github.com/NVIDIA-Merlin/HugeCTR/blob/master/tools/embedding_workspace_calculator/cal_vocabulary_size_per_gpu_and_workspace_size_per_gpu.py 与Q&A 

https://github.com/NVIDIA-Merlin/HugeCTR/blob/master/docs/QAList.md#24-how-to-set-workspace_size_per_gpu_in_mb-and-slot_size_array。

训练中支持 HDFS :

a. 现在支持从 HDFS 加载和存储模型和优化器状态。

b. 增加了编译选项使 HDFS 的支持更加灵活。

c. 添加了一个笔记本来展示如何将 HugeCTR 与 HDFS 一起使用:

https://github.com/NVIDIA-Merlin/HugeCTR/tree/master/notebooks/training_with_hdfs.ipynb

增加了一个演示如何分析模型文件的 Python 脚本和笔记本

错误修复:

修复了SOK 中的镜像策略错误(详见 

https://github.com/NVIDIA-Merlin/HugeCTR/issues/291) 

修复了无法在       

nvcr.io/nvidia/merlin/merlin-tensorflow-training:22.02 中导入稀疏操作工具包的问题(详见       

https://github.com/NVIDIA-Merlin/HugeCTR/issues/296)

HugeCTR 参数服务器:修复了在未配置 RocksDB 时,可能会在初始化期间发生的访问冲突问题。 

已知问题

● 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 将被映射到同一个文件,从而导致数据加载不会按预期进行。

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