利用 NVIDIATAO 和 Weight&Bias 加速AI开发
利用图像分类、对象检测、自动语音识别 (ASR) 和其他形式的 AI 可以推动公司和商业部门内部的大规模转型。 然而,从头开始构建人工智能和深度学习模型是一项艰巨的任务。
构建这些模型的一个共同先决条件是拥有大量高质量的训练数据和准备数据、构建神经网络以及持续微调模型以优化性能的正确专业知识。 对于开始机器学习 (ML) 之旅的组织来说,这通常是一个挑战。 尽管 AI 可以提供明确且可衡量的好处,但高准入门槛往往成为各种规模企业采用 AI 的障碍。
这篇文章讨论了 NVIDIA TAO 工具包和 Weights & Biases MLOps 平台的结合如何帮助启动组织利用 AI 和加速常见 AI 任务的旅程。 开发人员现在可以使用 NVIDIA TAO (Train-Adapt-Optimize) Toolkit 和 Weights & Biases (W&B) 可视化和比较多次训练运行。 此外,我们还将介绍一个用于构建对象检测模型的示例工作流程。
NVIDIA TAO 工具包
NVIDIA TAO Toolkit 是一种低代码解决方案,使开发人员和企业能够加速模型训练和优化过程。 NVIDIA TAO 工具包通过抽象化 AI 模型和深度学习框架的复杂性,降低了 AI 入门者的入门门槛。 借助 NVIDIA TAO 工具包,您可以利用迁移学习的强大功能,使用您自己的数据微调 NVIDIA 预训练模型,并优化推理模型以满足您的业务需求。
NVIDIA TAO Toolkit 支持广泛的计算机视觉任务,例如分类、对象检测、分割、关键点估计、OCR 等。 它提供交钥匙推理优化,可降低模型的复杂性和大小并提高推理吞吐量。
Weights & Biases
Weights & Biases MLOps 平台可帮助 ML 团队更快地构建更好的模型。 只需在笔记本中添加几行代码,您就可以立即调试、比较和重现您的模型——架构、超参数、git 提交、模型权重、GPU 使用、数据集和预测——所有这一切都与您的团队成员协作。
显示 W&B 平台的五个模块的图表:工件、表格、实验、扫描和评估。
W&B 受到来自世界上一些最具创新性的公司和研究组织的超过 400,000 名 ML 从业者的信任。 要免费试用,请在 Weights & Biases 注册。
集成 NVIDIA TAO 工具包和 Weights & Biases
NVIDIA TAO 工具包使您能够可视化权重和偏差中的所有实验数据。 可视化、比较和对比多个训练运行,以确定哪些候选模型最适合项目的需求,以及哪些超参数对模型性能的影响最大。
集成还将展示每个模型训练如何使用底层硬件以确保资源得到充分利用。 要了解有关如何配置 NVIDIA TAO 工具包并将实验记录到 W&B 的更多信息,请参阅 NVIDIA TAO 工具包 W&B 集成文档。
Image classificationObject detectionSegmentationEfficientNet B0-B5DetectNet-v2UnetFasterRCNNMaskRCNNRetinaNetYOLOv4/v4-Tiny/v3SSD/DSSDEfficientDet
如何通过 NVIDIA TAO 工具包利用 W&B
以下部分将指导您通过一个示例在 NVIDIA TAO 工具包中调整预训练对象检测模型,利用权重和偏差。 首先,设置工具包并将您的 W&B 帐户连接到实例。 然后将工具包中的指标记录到 W&B,并利用实验跟踪、数据可视化和工件跟踪功能。
设置 W&B 帐户
- 创建 W&B 帐户(请注意,企业用户应咨询您的 W&B 管理员。)
- 复制您的 API 密钥
安装和设置 NVIDIA TAO 工具包
- 使用下面的调用下载 NVIDIA TAO Toolkit 资源。 此软件包包含用于安装工具包容器和 Jupyter 笔记本以运行 NVIDIA TAO 工具包的启动脚本。
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
- NVIDIA TAO Toolkit 有多种训练方式。 有关每个的详细说明,请参阅 TAO 工具包入门指南。
- Launcher CLI:您可以使用轻量级 Python CLI 应用程序运行 TAO。 启动器基本上充当基于 PyTorch 和 TensorFlow 构建的多个 NVIDIA TAO 工具包容器的前端。 将根据您计划用于计算机视觉或对话式 AI 用例的模型类型自动启动适当的容器。
- 直接从容器:您还可以选择直接使用 Docker 容器运行 NVIDIA TAO Toolkit。 要直接使用容器,您需要知道要拉取哪个容器。 TAO Toolkit下有多个容器。 根据您要训练的模型,您需要拉取适当的容器。 使用 Launcher CLI 时不需要这样做。
- TAO API:您还可以使用 NVIDIA TAO Toolkit API 使用 REST API 运行,这是一种 Kubernetes 服务,可以使用 REST API 构建 AI 模型。 API 服务可以使用 Helm chart 以及最小依赖项安装在 Kubernetes 集群(本地/AWS EKS)上。
配置 NVIDIA TAO Toolkit 以登录 W&B
- 配置 W&B API 密钥:要从本地计算单元传输数据并在 W&B 服务器仪表板上渲染数据,必须登录 NVIDIA TAO 工具包容器中的 W&B 客户端并与您的配置文件同步。 要在容器登录中包含 W&B 客户端,请使用您在设置 W&B 帐户时收到的 API 密钥在 NVIDIA TAO 工具包容器中设置 WANDB_API_KEY 环境变量。 有关其他资源,请参阅 TAO 工具包 W&B 集成文档。
Launcher CLI:如果您使用的是 Launcher CLI,请使用下面的示例 json 片段并将 Envs 元素下的值字段替换为 ~/.tao_mounts.json 文件中的 W&B API 密钥。
{"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}}}
直接从 Docker:如果您直接通过容器运行,请使用 docker 命令的 -e 标志。 例如,要直接通过容器运行带有 W&B 的 detectnet_v2,请使用以下脚本:
docker run -it--rm--gpus all \-v /path/in/host:/path/in/docker \-eWANDB_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--gpus4
NVIDIA TAO API:对于 API,将以下代码片段添加到 TAO Toolkit Helm 图表中的 values.yaml 文件:
# Optional MLOPS setting for Weights And Biases
wandbApiKey: <wandb_api_key>
- 运行 NVIDIA TAO Toolkit 并将您的指标记录到 W&B。
实例化下载示例目录中存在的 detectnet_v2.ipynb 笔记本:notebooks/tao_launcher_starter_kit/detectnet_v2/detectnet_v2.ipynb。
使用以下脚本取消注释 MLOPS 集成部分下的第一个单元格:
# Uncomment this code block to enable wandb integration withTAO.
# # 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()
# ifWANDB_LOGGED_IN:
# print(\"WANDB successfully logged in.
将下一行中的 FIXME 替换为复制的 W&B 密钥。
os.environ["WANDB_API_KEY"]= FIXME
一旦您传入 API 密钥,W&B 日志记录将默认启用。 有关集成 NVIDIA TAO 工具包和 W&B 的更多详细信息,请参阅 NVIDIA TAO 工具包 W&B 集成文档。
下图显示了通过运行笔记本自动生成的页面示例。
版权归原作者 扫地的小何尚 所有, 如有侵权,请联系我们删除。