Merlin HugeCTRV 3.8/3.9版本新增内容

描述

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

V3.8 版本新增内容

1. 第三代 Embedding 的示例:

这个版本我们新增了一个示例笔记本,介绍了 Embedding 集合的 Python API 以及第三代 Embedding 的使用方法。

2. 用于分级参数服务器查找功能的 DLPack Python API:

这个版本我们引入了对使用 DLPack Python API 从分层参数服务器 (HPS) 查找 Embedding 的支持。新方法是 lookup_fromdlpack()。

3. 使用 Python API 从 HDFS 读取 Parquet 数据集:

现在您可以通过 DataSourceParams 来指定 Data Reader 的数据源的配置了,例如 Hadoop 分布式文件系统的 NameNode 的主机名和 NameNode 端口号。

4. 提高了日志记录的性能。

5. 层类的改进:

全连接层现已支持 3 维输入,Matrix Multiply 层现已支持 4 维输入。

6. 文档的改进:

a. 增加了导航长页面以提供更好的体验。

b. Criteo 1TB 点击日志数据集的 URL 已更新。

7. 修复的问题:

修复了 _metadata.json 配置文件内的文件名和实际数据集文件名不一致的问题。

修复了在 AUC 预热期间在多个 GPU 上运行大型模型时发生的内存崩溃问题。

修复了 ETC 笔记本中键集生成的问题。

修复了使用调试模式编译时发生的编译错误。

修复多节点训练出现重复日志的问题。

V3.9 版本新增内容

1. 第三代 Embedding 的更新:

更新了 SOK 以使用 HugeCTR 第三代 Embedding 作为开发者预览版本。

启用了基于 cuCollection的动态Embedding 模式。动态的Embedding能够在用户不配置内存使用信息时自动拓展。

2. 全新的多节点训练教程:

我们提供了一个全新的基于 HugeCTR 最新 Docker 容器使用多节点训练的实例。

3. 现已支持 MMoE 模型的离线推理并提供了 Per-class AUC 和平均 AUC 计算。

4. 对 HPS TensorFlow 插件使用的文档和实例更新:

一个新的简介文档。

新的实例笔记本。

新的API文档。

5. 修复的问题:

修复了一个训练性能受到 GPU 例程检查影响的问题。该例程检查输入的 key 是否在规定的 Embedding Table 范围内。对于可以保证输入的 key 能放在指定的 workspace_size_per_gpu_in_mb 的情况,我们提供了一种解决方法:通过设置环境变量 HUGECTR_DISABLE_OVERFLOW_CHECK=1 来关闭例程检查,以便恢复训练性能。

我们修复了一个 Softmax 层的正确性问题。

我们删除了一个未更新且不再使用的内联分析器。

已知问题

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

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

另见 NCCL 的 已知问题。

还有 GitHub 问题。

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

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

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

审核编辑:汤梓红

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分