0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用NVIDIA DGX SuperPOD训练SOTA大规模视觉模型

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-05-30 10:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近的研究表明,在语义分割和目标检测等计算机视觉任务中,大型 transformer 模型可以实现或提高 SOTA 。然而,与只能使用标准公共数据集的卷积网络模型不同,它需要一个更大的专有数据集。

VOLO 模型体系结构

新加坡 SEA AI 实验室最近的项目 VOLO ( Vision Outlooker )展示了一种高效且可扩展的 Vision transformer 模式体系结构,该体系结构仅使用 ImageNet-1K 数据集就大大缩小了差距。

VOLO 引入了一种新颖的 outlook attention ,并提出了一种简单而通用的架构,称为 Vision Outlooker 。与自我关注不同,自我关注侧重于粗略级别的全局依赖关系建模, outlook 关注有效地将更精细级别的功能和上下文编码为标记。这对识别性能极为有利,但在很大程度上被自我注意所忽视。

实验表明, VOLO 在 ImageNet-1K 分类上达到了 87.1% 的 top-1 精度,这是第一个在这个竞争基准上超过 87% 精度的模型,无需使用任何额外的训练数据。

pYYBAGKUKW2AJVYrAAB3gWHBaks500.png

图 1 :不同尺寸级别的 VOLO 模型的 Top-1 精度

此外,经过预训练的 VOLO 可以很好地转移到下游任务,例如语义切分。

poYBAGKUKXeACmrGAABDH4zJnn8426.png

表 1 :对比 ViT 、 CNN 基线模型概述

尽管 VOLO 模型显示出了出色的计算效率,但训练 SOTA 性能模型并非易事。

在这篇文章中,我们将介绍我们在 NVIDIA DGX SuperPOD 上基于 NVIDIA ML 软件堆栈和 Infiniband 群集技术培训 VOLO 模型所获得的技术和经验。

培训方法

培训 VOLO 模型需要考虑培训策略、基础设施和配置规划。在本节中,我们将讨论此解决方案中应用的一些技术。

培训策略

始终使用原始 ImageNet 样本质量数据训练模型,并在细粒度上执行神经网络( NN )架构搜索,使理论上的研究更加巩固。然而,这需要计算资源预算的很大一部分。

在这个项目的范围内,我们采用了一种粗粒度的训练方法,它不像细粒度的方法那样能够访问尽可能多的神经网络体系结构。然而,它能够以更少的时间和更低的资源预算显示 EIOF 。在这种替代策略中,我们首先使用分辨率较低的图像样本训练潜在的神经网络候选,然后使用高分辨率图像进行微调。

在早期的工作中,这种方法在降低边际模型性能损失的计算成本方面被证明是有效的。

基础设施

实际上,我们在本次培训中使用了两种类型的集群:

一个用于基础模型预训练,它是一个基于 NVIDIA DGX A100 的 DGX 吊舱,由使用 NVIDIA Mellanox HDR Infiniband 网络集群的 5 个 NVIDIA DGX A100 系统组成。

一个用于微调,即 NVIDIA DGX SuperPOD ,由 DGX A100 系统和 NVIDIA Mellanox HDR Infiniband 网络组成。

poYBAGKUKX-AFx_KAABpOQFnrDA798.png

图 2 :本项目使用的基于 NVIDIA 技术的软件栈

软件基础设施在这一过程中也发挥了重要作用。图 2 显示,除了基础的标准深度学习优化 CUDA 库(如 cuDNN 和 cuBLAS )外,我们还广泛利用 NCCL 、 enroot 、 PyXis 、 APEX 和 DALI 来实现培训性能的亚线性可扩展性。

DGX A100 POD 集群主要用于使用较小尺寸图像样本的基础模型预训练。这是因为基本模型预训练的内存限制较少,可以利用 NVIDIA A100 GPU 的计算能力优势。

相比之下,微调是在 NVIDIA DGX-2 的 NVIDIA DGX SuperPOD 上执行的,因为微调过程使用更大的图像,每台计算能力需要更多的内存。

培训配置

需要引入句子

poYBAGKUKYiASGv4AAArAcln6GA209.png

表 2 :模型设置(对于所有模型,批大小设置为 1024 )

我们在 ImageNet 数据集上评估了我们提出的 VOLO 模型。在培训期间,没有使用额外的培训数据。我们的代码基于 PyTorch 、令牌标记工具箱和 PyTorch 图像模型( timm )。我们使用带有标记的 LV-ViT-S 模型作为基线。

安装说明

我们使用了 AdamW 优化器和线性学习率缩放策略 LR = LR基础x Batch \ u 大小/ 1024 和 5 × 10 − 2 先前工作建议的重量衰减率,表 3 中给出了所有 VOLO 模型的 LRbase 。

使用随机深度。

我们在 ImageNet 数据集上训练了 300 个时代的模型。

对于数据扩充方法,我们使用 CutOut 、 RandAug 和 MixToken 的标记目标。

我们没有使用 MixUp 或 CutMix ,因为它们与 MixToken 冲突。

训练前

在本节中,我们以 VOLO-D5 为例来演示如何训练模型。

图 3 显示,使用单个 DGX A100 的 VOLO-D5 的训练吞吐量约为 500 图像/秒。据估计,完成一个完整的预训练周期大约需要 170 个小时,这需要使用 ImageNet-1K 进行 300 个阶段。这相当于 100 万张图片的一周。

为了加快速度,基于一个由五个 DGX A100 节点组成的简单参数服务器架构集群,我们大致实现了 2100 个图像/秒的吞吐量,这可以将预训练时间减少到约 52 小时。

poYBAGKUKZSAczC2AADXvu4-hcs150.png

图 3 :D1 ~ D5 模型在一个 DGX A100 上跨一个完整历元的训练吞吐量

VOLO-D5 模型预训练可以使用以下代码示例在单个节点上启动:

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 ./distributed_train.sh 8 /path/to/imagenet \ --model volo_d5 --img-size 224 \ -b 44 --lr 1.0e-4 --drop-path 0.75 --apex-amp \ --token-label --token-label-size 14 --token-label-data /path/to/token_label_data

对于 MNMG 培训案例,它需要将培训集群详细信息作为命令行输入的一部分。首先,我们根据节点和集群架构设置 CPU 、 MEM 、 IB 绑定。预训练阶段的集群是 DGX A100 POD ,每个 CPU 插槽有四个 NUMA 域,每个 A100 GPU 有一个 IB 端口,因此我们将每个列组绑定到 NUMA 节点中距离其 GPU 最近的所有 CPU 核。

对于内存绑定,我们将每个列组绑定到最近的 NUMA 节点。

对于 IB 绑定,我们为每个 GPU 绑定一个 IB 卡,或者尽可能接近这样的设置。

由于 VOLO 模型培训基于 PyTorch ,并且简单地利用了默认的 PyTorch 分布式培训方法,因此我们的多节点多 GPU 培训基于一个简单的参数服务器架构,该架构适合 NVIDIA DGX SuperPOD 的 fat 树网络拓扑。

为了简化调度,分配节点列表中的第一个节点始终用作参数服务器和工作节点,而所有其他节点都是工作节点。为了避免潜在的存储 I / O 开销,数据集、所有代码、中间/里程碑检查点和结果都保存在一个基于 DDN 的高性能分布式存储后端。它们通过 100G NVIDIA Mellanox EDR Infiniband 网络装载到所有工作节点。

为了加速数据预处理和流水线数据加载, NVIDIA DALI 配置为每个 GPU 进程使用一个专用数据加载程序。

poYBAGKUKZqAPWzCAAB3GeMTJdA484.png

图 4 :训练前阶段训练吞吐量相对于 A100 和 V100 的速度提高 GPU

微调

使用以下代码示例,在单个节点上运行 VOLO-D5 模型微调非常简单:

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 ./distributed_train.sh 8 /path/to/imagenet \ --model volo_d5 --img-size 512 \ -b 4 --lr 2.3e-5 --drop-path 0.5 --apex-amp --epochs 30 \ --weight-decay 1.0e-8 --warmup-epochs 5 --ground-truth \ --token-label --token-label-size 24 --token-label-data /path/to/token_label_data \ --finetune /path/to/pretrained_224_volo_d5/

如前所述,由于用于微调的图像大小远远大于预训练阶段使用的图像大小,因此必须相应地减小批量大小。将工作负载放入 GPU 内存中,这使得进一步扩展训练到更大数量的 GPU 并行任务是必须的。

poYBAGKUKaGATw-wAACWmcdkF3Y359.png

图 5 :针对 A100 和 V100 的数量提高微调阶段训练吞吐量 GPU

大多数微调配置类似于预训练阶段。

结论

在这篇文章中,我们展示了在大规模人工智能超级计算机上训练 SOTA 大规模视觉 transformer 模型(如 VOLO \ u D5 )的主要技术和程序,如基于 NVIDIA DGX A100 的 DGX SuperPOD 。经过训练的 VOLO \ u D5 模型在图像分类模型排名中取得了最佳的 Top-1 精度,无需使用 ImageNet-1k 数据集以外的任何其他数据。

这项工作的代码资源(包括用于运行实验的 Docker 映像和 Slurm 调度程序脚本)在 sail-sg/volo GitHub repo 中是开源的,以便将来可以在 VOLO \ u D5 上进行更广泛的研究。

未来,我们希望进一步扩展这项工作,以培训更智能、自我监督、更大规模的模型,使用更大的公共数据集和更现代化的基础设施,例如, NVIDIA DGX SuperPOD 和 NVIDIA H100 GPU。

关于作者

Terry Yin 目前是 NVIDIA AI 技术中心的高级深度学习解决方案架构师。他分别于 2009 年和 2012 年在中国华南理工大学和韩国延世大学获得学士和硕士学位。 2012 年至 2016 年,他是南洋理工大学新加坡分校的研究员,期间他获得了东盟 ICT 金奖、数据中心动态奖、 ACM SIGCOMM 2013 年旅游奖和 GTC 2015 年演讲者奖。他的研究兴趣包括云计算系统、深度学习系统、高性能计算系统等。

Yuan Lin 是 NVIDIA 编译团队的首席工程师。他对所有使程序更高效、编程更高效的技术感兴趣。在加入 NVIDIA 之前,他是 Sun Microsystems 的一名高级职员工程师。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    5496

    浏览量

    109087
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5099

    浏览量

    134455
  • 人工智能
    +关注

    关注

    1813

    文章

    49734

    浏览量

    261500
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    利用NVIDIA Cosmos开放世界基础模型加速物理AI开发

    NVIDIA 最近发布了 NVIDIA Cosmos 开放世界基础模型(WFM)的更新,旨在加速物理 AI 模型的测试与验证数据生成。借助 NVID
    的头像 发表于 12-01 09:25 487次阅读

    NVIDIA DGX Spark系统恢复过程与步骤

    在使用 NVIDIA DGX Spark 的过程中,可能会出现配置故障,而导致开发中断的问题,本篇教程将带大家了解如何一步步完成系统恢复。
    的头像 发表于 11-28 09:46 3568次阅读
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>DGX</b> Spark系统恢复过程与步骤

    NVIDIA DGX Spark助力构建自己的AI模型

    2025 年 1 月 6 日,NVIDIA 正式宣布其 Project DIGITS 项目,并于 3 月 18 日更名为 NVIDIA DGX Spark,进一步公布了产品细节。DGX
    的头像 发表于 11-21 09:25 533次阅读
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>DGX</b> Spark助力构建自己的AI<b class='flag-5'>模型</b>

    NVIDIA DGX Spark快速入门指南

    NVIDIA DGX Spark 已正式向 AI 开发者交付,对于刚入手的全新 DGX Spark,该如何进行初始化设置?本篇文章将引导您完成 DGX Spark 首次设置。在初始设置
    的头像 发表于 11-17 14:11 4144次阅读
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>DGX</b> Spark快速入门指南

    借助NVIDIA Megatron-Core大模型训练框架提高显存使用效率

    随着模型规模迈入百亿、千亿甚至万亿参数级别,如何在有限显存中“塞下”训练任务,对研发和运维团队都是巨大挑战。NVIDIA Megatron-Core 作为流行的大
    的头像 发表于 10-21 10:55 783次阅读
    借助<b class='flag-5'>NVIDIA</b> Megatron-Core大<b class='flag-5'>模型</b><b class='flag-5'>训练</b>框架提高显存使用效率

    NVIDIA 利用全新开源模型与仿真库加速机器人研发进程

    。   借助全新的 NVIDIA Cosmos 世界基础模型,开发者可以生成多样化数据,从而大规模加速物理 AI 模型训练。   来自斯
    的头像 发表于 09-30 09:52 2782次阅读
    <b class='flag-5'>NVIDIA</b> 利用全新开源<b class='flag-5'>模型</b>与仿真库加速机器人研发进程

    NVIDIA DGX Spark桌面AI计算机开启预订

    DGX Spark 现已开启预订!丽台科技作为 NVIDIA 授权分销商,提供从产品到服务的一站式解决方案,助力轻松部署桌面 AI 计算机。
    的头像 发表于 09-23 17:20 919次阅读
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>DGX</b> Spark桌面AI计算机开启预订

    Cadence 借助 NVIDIA DGX SuperPOD 模型扩展数字孪生平台库,加速 AI 数据中心部署与运营

    [1]  利用搭载 DGX GB200 系统的 NVIDIA DGX SuperPOD[2] 数字孪生系统实现了库的重大扩展 。借助 NVIDIA
    的头像 发表于 09-15 15:19 1239次阅读

    大规模专家并行模型在TensorRT-LLM的设计

    DeepSeek-V3 / R1 等模型采用大规模细粒度混合专家模型 (MoE) 架构,大幅提升了开源模型的质量。Llama 4 和 Qwen3 等新发布的开源
    的头像 发表于 09-06 15:21 915次阅读
    <b class='flag-5'>大规模</b>专家并行<b class='flag-5'>模型</b>在TensorRT-LLM的设计

    基于大规模人类操作数据预训练的VLA模型H-RDT

    近年来,机器人操作领域的VLA模型普遍基于跨本体机器人数据集预训练,这类方法存在两大局限:不同机器人本体和动作空间的差异导致统一训练困难;现有大规模机器人演示数据稀缺且质量参差不齐。得
    的头像 发表于 08-21 09:56 778次阅读
    基于<b class='flag-5'>大规模</b>人类操作数据预<b class='flag-5'>训练</b>的VLA<b class='flag-5'>模型</b>H-RDT

    NVIDIA发布AI优先DGX个人计算系统

    NVIDIA 宣布,多家行业领先系统制造商将打造 NVIDIA DGX Spark。
    的头像 发表于 05-22 09:39 809次阅读

    ServiceNow携手NVIDIA构建150亿参数超级助手

    Apriel Nemotron 15B 开源大语言模型 (LLM) 使用 NVIDIA NeMo、NVIDIA Llama Nemotron 开放数据集以及 ServiceNow 专业领域数据创建而成,并在
    的头像 发表于 05-12 15:37 714次阅读

    AI原生架构升级:RAKsmart服务器在超大规模模型训练中的算力突破

    近年来,随着千亿级参数模型的崛起,AI训练对算力的需求呈现指数级增长。传统服务器架构在应对分布式训练、高并发计算和显存优化等场景时逐渐显露瓶颈。而RAKsmart为超大规模
    的头像 发表于 04-24 09:27 612次阅读

    NVIDIA GTC2025 亮点 NVIDIA推出 DGX Spark个人AI计算机

    开发者、研究人员、数据科学家和学生,在台式电脑上对大模型进行原型设计、微调和推理。用户可以在本地运行这些模型,或将其部署在 NVIDIA DGX Cloud 或任何其他加速云或数据中
    的头像 发表于 03-20 18:59 1271次阅读
    <b class='flag-5'>NVIDIA</b> GTC2025 亮点  <b class='flag-5'>NVIDIA</b>推出 <b class='flag-5'>DGX</b> Spark个人AI计算机

    NVIDIA 宣布推出 DGX Spark 个人 AI 计算机

    DGX™ 个人 AI 超级计算机。   DGX Spark(前身为 Project DIGITS)支持 AI 开发者、研究人员、数据科学家和学生,在台式电脑上对大模型进行原型设计、微调和推理。用
    发表于 03-19 09:59 504次阅读
       <b class='flag-5'>NVIDIA</b> 宣布推出 <b class='flag-5'>DGX</b> Spark 个人 AI 计算机