TAO v5.5.0

概述

NVIDIA TAO 是一个基于 TensorFlow 和 PyTorch 构建的低代码 AI 工具包,它通过抽象化 AI 模型和深度学习框架的复杂性,简化并加速了模型训练过程。借助 TAO,用户可以从 NGC 中选择 100 多个预训练的视觉 AI 模型,并在他们自己的数据集上进行微调和自定义,而无需编写一行代码。TAO 的输出是以 ONNX 格式训练的模型,可以部署在任何支持 ONNX 的平台上。

tao_overview_image.png

TAO 概述图像

TAO 支持大多数流行的 CV 任务,例如

  • 图像分类

  • 用于计算机视觉的多模型传感器融合

  • 目标检测

  • 实例分割

  • 语义分割

  • 光学字符检测与识别 (OCD/OCR)

  • 人体姿态估计

  • 关键点估计

  • 动作识别

  • Siamese 网络

  • 变化检测

  • CenterPose

  • 上下文分割

对于图像分类、目标检测和分割,用户可以选择多种特征提取器之一,并将其与多个用于分类、检测和分割任务的头部之一一起使用,从而开启 100 多种模型组合的可能性。TAO 支持一些领先的视觉 Transformer (ViT),如 FAN、GC-ViT、SWIN、DINO、D-DETR 和 SegFormer。

主干网络

图像分类

NvDINOv2 X
GcViT X
ViT X
FAN X
FasterViT X
ResNet X
Swin X
EfficientNet X
ST-GCN (图卷积网络)
MIT-b

主干网络

DINO

D-DETR

Grounding DINO

EfficientDet

NvDINOv2 X
GcViT X X
ViT X X
FAN X
FasterViT
ResNet X X
Swin X
EfficientNet X
ST-GCN (图卷积网络)
MIT-b

主干网络

Mask2Former

NvDINOv2
GcViT
ViT
FAN
FasterViT
ResNet
Swin X
EfficientNet
ST-GCN (图卷积网络)
MIT-b

主干网络

OCD

OCR

NvDINOv2
GcViT
ViT
FAN X X
FasterViT
ResNet X X
Swin
EfficientNet
ST-GCN (图卷积网络)
MIT-b

主干网络

MAL

Mask GroundingDINO

Mask2Former

NvDINOv2
GcViT
ViT X
FAN
FasterViT
ResNet
Swin X X
EfficientNet
ST-GCN (图卷积网络)
MIT-b

主干网络

SegFormer

Mask2Former

NvDINOv2
GcViT
ViT
FAN X
FasterViT
ResNet
Swin X
EfficientNet
ST-GCN (图卷积网络)
MIT-b X

主干网络

重识别

度量学习识别

NvDINOv2 X
GcViT
ViT X
FAN
FasterViT
ResNet X X
Swin X
EfficientNet
ST-GCN (图卷积网络)
MIT-b

主干网络

分类

分割

NvDINOv2 X X
GcViT
ViT X X
FAN X X
FasterViT
ResNet
Swin
EfficientNet
ST-GCN (图卷积网络)
MIT-b

主干网络

姿态分类

NvDINOv2
GcViT
ViT
FAN
FasterViT
ResNet
Swin
EfficientNet
ST-GCN (图卷积网络) X
MIT-b

TAO 提供了增强用户数据集的方法。这些类别的功能和任务包含在 数据服务 模式下。

TAO 5.5.0 引入了对开放词汇接地目标检测和实例分割的微调和推理支持,通过 GroundingDINOMask GroundingDINO。GitHub 仓库。

NVIDIA 还包括两个新的推理应用程序作为 TAO 的一部分。

注意

截至 5.5.0 版本,TAO 容器仅在具有独立 GPU 的 x86 平台上运行。有关支持的 GPU 的更多信息,请参阅 快速入门指南

TAO 拥有广泛的预训练模型选择,这些模型要么在公共数据集(如 ImageNet、COCO、OpenImages)上训练,要么在特定于任务的用例(如行人检测、车辆检测和动作识别等)的专有数据集上训练。特定于任务的模型可以直接用于推理,但也可以在自定义数据集上进行微调,以获得更高的准确率。

转到 模型动物园 部分,了解有关所有预训练模型的更多信息。

TAO 打包了几个主要功能,以帮助开发者加速他们的 AI 训练和优化。以下是一些主要特点

  • 计算机视觉工作流

    • 模型剪枝 - 减少模型中的参数数量,以减小模型大小并提高准确率

    • ONNX 导出 - 支持行业标准 ONNX 格式的模型输出,可以直接与任何平台一起使用

    • 量化感知训练 - 在训练期间模拟较低精度的量化,以减少从训练到较低精度推理的准确率损失

    • 多 GPU - 通过在单个节点上的多个 GPU 之间并行化训练作业来加速训练

    • 多节点 - 通过在多个节点之间并行化训练作业来加速训练

    • 训练可视化 - 在 Tensorboard 或第三方服务中可视化训练图和指标

  • 数据服务

    • 数据增强 - 离线和在线增强,为您的数据集添加数据多样性,从而可以泛化模型

    • AI 辅助标注 - 类无关的自动标注器,用于生成分割掩码,前提是提供边界框。

    • 数据分析 - 分析目标检测标注文件和图像文件,计算见解,并生成图表和摘要。

TAO 还为服务提供商和 NVIDIA 合作伙伴提供了几个功能,他们希望将 TAO 与其工作流程集成,以提供附加服务。

  • AutoML - 自动超参数扫描和优化,以在给定数据集上生成最佳准确率。

  • REST API - 使用云 API 端点调用云中托管的 TAO 服务。

  • Kubernetes 部署 - 在本地或云托管的 Kubernetes 服务之一的 K8s 集群中部署 TAO 服务。

  • 源代码可用性 - 访问 TAO 的源代码以添加您自己的自定义

详细的入门指南在 TAO 入门指南 中提供。

入门包包含安装脚本、Jupyter 笔记本和用于训练和模型配置的文件。所有模型都有 Jupyter 笔记本,可以用作运行训练的模板。所有笔记本都附带一个调用来下载示例数据集以运行训练作业。这些可以替换为您自己的数据集。

TAO 是一个托管在 NVIDIA Python 包索引上的 Python 包。它与 NVIDIA GPU 加速容器注册中心 (NGC) 提供的较低级别 TAO Docker 镜像交互;TAO 容器预装了训练所需的所有依赖项。CLI 从每个 Docker 容器内打包的 Jupyter 笔记本运行,由几个简单的命令组成,例如 train、evaluate、infer、prune、export 和 augment(即数据增强)。TAO 工作流的输出是一个训练好的模型,可以使用 DeepStreamTensorRT 部署在 NVIDIA 设备上进行推理

TAO 应用程序层构建在 CUDA-X 之上,CUDA-X 包含所有较低级别的 NVIDIA 库,包括用于 GPU 加速的 NVIDIA 容器运行时、用于深度学习 (DL) 操作的 CUDA 和 cuDNN,以及用于优化模型的 TensorRT(NVIDIA 推理优化和运行时引擎)。使用 TAO 生成的模型与 TensorRT 完全兼容并为其加速,这确保了最大推理性能,而无需任何额外的努力。

tao_stack.png

模型剪枝是 TAO 的主要差异化因素之一。剪枝涉及从神经网络中移除对模型整体准确率贡献较小的节点,从而减小模型的整体大小,显著减少内存占用,并提高推理吞吐量——所有这些因素对于边缘部署都非常重要。

目前,剪枝支持部分计算机视觉模型。下图提供了从未剪枝的 CV 模型到剪枝后的 CV 模型所实现的性能提升示例(推理在 NVIDIA T4 上运行;TrafficCamNet、DashCamNet 和 PeopleNet 是 NGC 上提供的三个自定义预训练模型)。

pruned_vs_unpruned.png

剪枝与未剪枝性能对比

教学视频

NVIDIA TAO 入门

创建自定义多模态融合模型

使用视觉提示与 NVIDIA TAO 进行上下文分割

使用 NVIDIA TAO FoundationPose 模型估计和跟踪物体姿态

使用 NVIDIA Grounding-DINO 进行开放词汇目标检测

使用文本提示与 NVIDIA TAO 进行自动标注

使用 TensorBoard 可视化模型训练

开发者博客

要了解更多关于使用 TAO 的信息,请阅读技术博客,其中提供了使用 TAO 进行训练的逐步指南

网络研讨会

如果您在使用 TAO 训练模型并部署到 Riva 或 DeepStream 时有任何疑问,请在此处发布

上一个 TAO
下一个 TAO 启动器
© 版权所有 2024, NVIDIA。 上次更新于 2024 年 10 月 15 日。