计算机视觉/视频分析

使用 NVIDIA TAO 工具包和权重和偏差加速 AI 开发

利用图像分类、对象检测、 自动语音识别 ( ASR )和其他形式的人工智能可以推动公司和商业部门的大规模变革。然而,从头开始构建人工智能和深度学习模型是一项艰巨的任务。

构建这些模型的一个共同前提是拥有大量高质量的训练数据和正确的专业知识,以准备数据、构建神经网络,并不断微调模型以优化性能。对于开始机器学习( ML )之旅的组织来说,这通常是一个挑战。尽管人工智能可以提供明确和可衡量的好处,但进入壁垒很高,往往会阻碍各种规模的企业采用人工智能。

这篇文章讨论了 NVIDIA TAO ToolkitWeights & Biases MLOps 平台的结合如何有助于开启组织利用人工智能和加速常见人工智能任务的旅程。开发人员现在可以使用 NVIDIA TAO (训练适应优化)工具包和权重和偏差( W & B )可视化和比较多个训练运行。此外,我们将介绍构建对象检测模型的示例工作流。

NVIDIA TAO 工具包

NVIDIA TAO 工具包是一种低代码解决方案,使开发人员和企业能够加快模型培训和优化过程。 NVIDIA TAO 工具包通过抽象人工智能模型和深度学习框架的复杂性,降低了任何人从人工智能开始的入门门槛。借助 NVIDIA TAO 工具包,您可以利用转移学习的力量,用自己的数据微调 NVIDIA 预训练的模型,并优化模型进行推理,以满足业务需求。

NVIDIA TAO 工具包支持广泛的计算机视觉任务,如分类、对象检测、分割、关键点估计、 OCR 等。它提供了交钥匙推理优化,减少了模型的复杂性和大小,并提高了推理吞吐量。

重量和偏差

权重和偏差 MLOps 平台帮助 ML 团队更快地构建更好的模型。只需在笔记本上写几行代码,您就可以立即调试、比较和复制模型架构、超参数、 git 提交、模型权重、 GPU 使用情况、数据集和预测,同时与队友协作。

Diagram showing the five modules of the W&B platform: artifacts, tables, experiments, sweeps, and evaluation.
图 1 。权重与偏差 MLOps 平台中的模块

W & B 受到来自世界上一些最具创新性的公司和研究机构的 40 多万 ML 从业者的信任。要免费试用,请注册 Weights & Biases

集成 NVIDIA TAO 工具包和权重与偏差

NVIDIA TAO 工具包使您能够在“权重和偏差”中可视化所有实验数据。对多个训练运行进行可视化、比较和对比,以确定哪些候选模型最适合项目需求,哪些超参数对模型性能影响最大。

集成还将显示每个模型训练如何消耗底层硬件,以确保资源得到充分利用。要了解有关如何配置 NVIDIA TAO 工具包并将实验记录到 W & B 的更多信息,请参阅 NVIDIA TAO Toolkit W&B Integration documentation

Image classification Object detection Segmentation
EfficientNet B0-B5 DetectNet-v2 Unet
  FasterRCNN MaskRCNN
  RetinaNet  
  YOLOv4/v4-Tiny/v3  
  SSD/DSSD  
  EfficientDet  
表 1 。网络 NVIDIA TAO 工具包支持,可直接登录权重和偏差

如何利用 NVIDIA TAO 工具包利用 W & B

以下部分将指导您通过一个示例来调整 NVIDIA TAO 工具包中的预训练对象检测模型,利用权重和偏差。首先,设置工具包并将您的 W & B 帐户连接到实例。然后将您的度量从工具箱记录到 W & B 中,并利用实验跟踪、数据可视化和工件跟踪功能。

设置 W & B 帐户

  1. Create a W&B account (请注意,企业用户应与您的 W & B 管理员联系。)
  2. Copy your API key

安装并设置 NVIDIA TAO 工具包

1.使用以下调用下载 NVIDIA TAO Toolkit 资源。此软件包包含安装工具包容器的启动脚本和运行 NVIDIA TAO toolkit 的 Jupyter 笔记本。

wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/tao/tao-getting-started/versions/4.0.0/zip -O getting_started_v4.0.0.zip
unzip -u getting_started_v4.0.0.zip  -d ./getting_started_v4.0.0 && rm -rf getting_started_v4.0.0.zip && cd ./getting_started_v4.0.0

2. NVIDIA TAO 工具包有多种培训方式。有关每个的详细说明,请参阅 TAO Toolkit Getting Started 指南。

  • Launcher CLI: 您可以使用轻量级的 Python CLI 应用程序运行 PyTorch 。该启动器基本上充当了在 TAO 和 TensorFlow 上构建的多个 NVIDIA TAO Toolkit 容器的前端。根据您计划用于计算机视觉或对话式 AI 用例的模型类型,自动启动适当的容器。
  • Directly from container: 您还可以选择直接使用 Docker 容器运行 NVIDIA TAO Toolkit 。要直接使用容器,您需要知道要拉动哪个容器。 TAO 工具包下有多个容器。根据您要训练的模型,您需要拉动适当的容器。使用 Launcher CLI 时不需要此选项。
  • TAO APIs :您还可以使用 NVIDIA TAO Toolkit API 使用 REST API 运行,这是一种 Kubernetes 服务,支持使用 REST API 构建 AI 模型。 API 服务可以安装在 Kubernetes 集群( local / AWS EKS )上,使用 Helm 图表以及最小的依赖关系。

配置 NVIDIA TAO 工具包以登录 W & B

1. 配置 W & B API 密钥: 要从本地计算单元传送数据并在 W & B 服务器仪表板上呈现数据, NVIDIA TAO Toolkit 容器中的 W & B 客户端必须登录并与您的配置文件同步。要将 W & B 客户端包含在容器登录中,请使用设置 W & B 帐户时收到的 API 密钥在 NVIDIA TAO Toolkit 容器中设置WANDB_API_KEY环境变量。有关其他资源,请参阅 TAO Toolkit W&B Integration documentation

Launcher CLI :如果您使用的是启动器 CLI ,请使用下面的示例json代码段,并用~/.tao_mounts.json文件中的 W & B API 密钥替换Envs元素下的value字段。

{
    "Mounts": [
        {
            "source": "/path/to/your/data",
            "destination": "/workspace/tao-experiments/data"
        },
        {
            "source": "/path/to/your/local/results",
            "destination": "/workspace/tao-experiments/results"
        },
        {
            "source": "/path/to/config/files",
            "destination": "/workspace/tao-experiments/specs"
        }
    ],
    "Envs": [
        {
            "variable": "WANDB_API_KEY",
            "value": "<api_key_value_from_wandb>"
        }
    ],
    "DockerOptions": {
        "shm_size": "16G",
        "ulimits": {
            "memlock": -1,
            "stack": 67108864
        },
        "ports": {
            "8888": 8888
        }
    }
}

Directly from Docker :如果直接通过容器运行,请使用docker命令的-e标志。例如,要通过容器直接运行detectnet_v2和 W & B ,请使用以下脚本:

docker run -it --rm --gpus all \
           -v /path/in/host:/path/in/docker \
           -e WANDB_API_KEY=<api_key_value>
           nvcr.io/nvidia/tao/tao-toolkit:4.0.0-tf1.15.5 \
           detectnet_v2 train -e /path/to/experiment/spec.txt \
           -r /path/to/results/dir \
           -k $KEY --gpus 4

NVIDIA TAO API :对于 API ,将以下代码段添加到 TAO Toolkit Helm chart 中的values.yaml文件中:

# Optional MLOPS setting for Weights And Biases
wandbApiKey: <wandb_api_key>

2. 运行 NVIDIA TAO 工具包 并将您的指标记录到 W & B 。

实例化下载的示例目录notebooks/tao_launcher_starter_kit/detectnet_v2/detectnet_v2.ipynb中的detectnet_v2.ipynb笔记本。

使用以下脚本取消注释 MLOPS 集成部分下的第一个单元格:

# Uncomment this code block to enable wandb integration with TAO.
   # # you can get the wandb api key by logging into https://wandb.ai
   # !pip install wandb
   #
   # os.environ[\"WANDB_API_KEY\"] = FIXME
   # import wandb
   # WANDB_LOGGED_IN = wandb.login()
   # if WANDB_LOGGED_IN:
   #     print(\"WANDB successfully logged in.

用复制的 W & B 键替换以下行中的 FIXME 。

os.environ["WANDB_API_KEY"] = FIXME

当您输入 API 密钥时,默认情况下将启用 W & B 日志记录。有关集成 NVIDIA TAO 工具包和 W & B 的更多详细信息,请参阅 NVIDIA TAO Toolkit W&B Integration documentation

图 2 显示了通过运行笔记本自动生成的仪表板示例。

Screenshot showing the W&B experiment tracking dashboard for the computer vision example. It displays the model training metrics and a table of labeled training data, including the bounding boxes, used for the model training.
图 2 :使用 NVIDIA TAO 工具包培训的示例计算机视觉项目的 W & B 实验跟踪仪表板截图

结论

NVIDIA TAO Toolkit 帮助各种规模的组织快速开始利用人工智能来改善其业务和运营。通过 NVIDIA TAO Toolkit 4.0 版本,您可以使用 Weights & Biases 平台跟踪和了解每个增量调整作业如何提高 AI 模型的性能。有关集成 NVIDIA TAO 工具包和 W & B 的更多详细信息,请参阅 NVIDIA TAO Toolkit W&B Integration documentation

Download NVIDIA TAO Toolkit and learn more 。要尝试权重和偏差,请查看 introductory Google Colabsign up for a W&B account

 

Tags