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。