跳转到主要内容

未提供项目描述

项目描述

NVTabular

PyPI LICENSE Documentation

NVTabular 是一个用于表格数据的特征工程和预处理库,旨在轻松处理千兆级数据集并训练基于深度学习(DL)的推荐系统。它通过使用 RAPIDS Dask-cuDF 库提供高级抽象,以简化代码并加速GPU上的计算。

NVTabular是NVIDIA Merlin框架的一部分,NVIDIA Merlin是一个开源框架,用于构建和部署推荐系统,并与Merlin的其他组件(包括Merlin ModelsHugeCTRMerlin Systems)一起工作,以在GPU上提供端到端加速的推荐系统。NVTabular不仅扩展了模型训练,还通过NVIDIA的Triton Inference Server,可以将训练过程中在数据上执行的特征工程和预处理步骤自动应用于推理过程中的传入数据。

优势

在训练深度学习推荐系统时,数据科学家和机器学习(ML)工程师面临着以下挑战:

  • 大规模数据集:商业推荐系统是在可能达到数个TB规模的大型数据集上训练的。
  • 复杂的数据特征工程和预处理流程:数据集需要预处理和转换,以便可以与深度学习模型和框架一起使用。此外,特征工程从现有特征中创建大量新特征,需要多次迭代才能找到最佳解决方案。
  • 输入瓶颈:如果数据加载没有进行优化,可能是训练过程中最慢的部分,导致高吞吐量计算设备(如GPU)利用率低下。
  • 大量的重复实验:整个数据工程、训练和评估过程可能是重复且耗时的,需要大量的计算资源。

NVTabular缓解了这些挑战,并帮助数据科学家和ML工程师

  • 处理超出GPU和CPU内存的规模的数据集,无需担心规模。
  • 专注于数据应该做什么,而不是如何做,通过操作层面的抽象来使用。
  • 快速轻松地为实验准备数据集,以便可以训练更多模型。
  • 通过提供更快的数据集转换来部署模型到生产环境中

在NVTabular的核心功能文档中了解更多信息。

性能

在Criteo 1TB Click Logs数据集上使用单个V100 32GB GPU运行NVTabular时,特征工程和预处理可以在13分钟内完成。此外,在DGX-1集群上使用八个V100 GPU运行NVTabular时,特征工程和预处理可以在三分钟内完成。与HugeCTR结合使用,数据集可以在仅6分钟内进行处理,完整模型可以训练。

Criteo DRLM工作流程的性能也证明了NVTabular库的有效性。原始的Numpy提供的ETL脚本需要超过五天才能完成。结合CPU训练,总迭代时间超过一周。通过在Spark中优化ETL代码并在DGX-1等效集群上运行,特征工程和预处理的完成时间减少到三小时。同时,训练在1小时内完成。

安装

NVTabular需要Python版本3.7+。此外,GPU支持需要

  • CUDA版本11.0+
  • NVIDIA Pascal GPU或更高版本(计算能力≥6.0)
  • NVIDIA驱动器450.80.02+
  • Linux或WSL

使用Conda安装NVTabular

可以通过运行以下命令从nvidia通道使用Anaconda安装NVTabular

conda install -c nvidia -c rapidsai -c numba -c conda-forge nvtabular python=3.7 cudatoolkit=11.2

使用Pip安装NVTabular

可以通过运行以下命令使用pip安装NVTabular

pip install nvtabular

使用Pip安装NVTabular会导致NVTabular仅在CPU上运行,可能需要手动安装额外的依赖项。当您在我们的Docker容器中运行NVTabular时,依赖项已经安装。

使用Docker安装NVTabular

NVTabular Docker 容器可在NVIDIA Merlin 容器仓库中找到。以下表格总结了容器的关键信息:

容器名称 容器位置 功能
merlin-hugectr https://catalog.ngc.nvidia.com/orgs/nvidia/teams/merlin/containers/merlin-hugectr NVTabular、HugeCTR 和 Triton 推理
merlin-tensorflow https://catalog.ngc.nvidia.com/orgs/nvidia/teams/merlin/containers/merlin-tensorflow NVTabular、Tensorflow 和 Triton 推理
merlin-pytorch https://catalog.ngc.nvidia.com/orgs/nvidia/teams/merlin/containers/merlin-pytorch NVTabular、PyTorch 和 Triton 推理

要使用这些 Docker 容器,您首先需要安装NVIDIA 容器工具包,以提供 Docker 的 GPU 支持。您可以使用上表中引用的 NGC 链接获取有关如何启动和运行这些容器的更多信息。有关 NVTabular 支持的每个容器中软件和模型版本的更多信息,请参阅支持矩阵

笔记本示例和教程

我们提供了一组示例,以演示 NVTabular 作为 Jupyter 笔记本进行特征工程

  • NVTabular 高级 API 简介
  • NVTabular 的高级工作流程
  • NVTabular 在 CPU 上
  • 将 NVTabular 规模扩展到多 GPU 系统

此外,NVTabular 还被用于我们许多其他 Merlin 库的示例中

反馈和支持

如果您想直接为库做出贡献,请参阅Contributing.md。我们特别感兴趣的是对我们特征工程和预处理的贡献或功能请求。为了进一步推进我们的 Merlin 路线图,我们鼓励您通过此调查分享有关您的推荐系统管道的所有详细信息。

如果您想了解更多关于 NVTabular 的工作原理,请参阅我们的 NVTabular 文档。我们还有API 文档,概述了库中可用的具体调用。

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装软件包的信息。

源分布

nvtabular-23.8.0.tar.gz (114.3 kB 查看哈希值)

上传时间

构建分布

nvtabular-23.8.0-cp311-cp311-musllinux_1_1_x86_64.whl (792.6 kB 查看哈希值)

上传时间: CPython 3.11 musllinux: musl 1.1+ x86-64

nvtabular-23.8.0-cp311-cp311-musllinux_1_1_i686.whl (853.0 kB 查看哈希值)

上传时间: CPython 3.11 musllinux: musl 1.1+ i686

nvtabular-23.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (285.6 kB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ x86-64

nvtabular-23.8.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (295.2 kB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ i686

nvtabular-23.8.0-cp310-cp310-musllinux_1_1_x86_64.whl (792.0 kB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.1+ x86-64

nvtabular-23.8.0-cp310-cp310-musllinux_1_1_i686.whl (851.5 kB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.1+ i686

nvtabular-23.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (284.5 kB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ x86-64

nvtabular-23.8.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (293.4 kB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ i686

nvtabular-23.8.0-cp39-cp39-musllinux_1_1_x86_64.whl (793.1 kB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.1+ x86-64

nvtabular-23.8.0-cp39-cp39-musllinux_1_1_i686.whl (852.4 kB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.1+ i686

nvtabular-23.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (284.4 kB 查看哈希)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

nvtabular-23.8.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (294.2 kB 查看哈希)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686

nvtabular-23.8.0-cp38-cp38-musllinux_1_1_x86_64.whl (792.0 kB 查看哈希)

上传于 CPython 3.8 musllinux: musl 1.1+ x86-64

nvtabular-23.8.0-cp38-cp38-musllinux_1_1_i686.whl (851.4 kB 查看哈希)

上传于 CPython 3.8 musllinux: musl 1.1+ i686

nvtabular-23.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (284.3 kB 查看哈希)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

nvtabular-23.8.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (292.8 kB 查看哈希)

上传于 CPython 3.8 manylinux: glibc 2.17+ i686

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面