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

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

3天内不再提示

使用NVIDIA开源模型实现更快的训练和推理

星星科技指导员 来源:NVIDIA 作者:Alexandre Milesi 2022-04-20 15:58 次阅读

SE(3)-Transformers 是在NeurIPS 2020上推出的多功能图形神经网络。 NVIDIA 刚刚发布了一款开源优化实现,它使用的内存比基线正式实施少9倍,速度比基线正式实施快21倍。

SE(3)-Transformer 在处理几何对称性问题时非常有用,如小分子处理、蛋白质精制或点云应用。它们可以是更大的药物发现模型的一部分,如RoseTTAFold和此 AlphaFold2 的复制。它们也可以用作点云分类和分子性质预测的独立网络(图 1 )。

pYYBAGJfvUKAcxmPAAE4jmo8Pmc186.png

图 1 用于分子性质预测的典型 SE ( 3 ) – transformer 的结构。

在/PyTorch/DrugDiscovery/SE3Transformer存储库中, NVIDIA 提供了在QM9 数据集上为分子性质预测任务训练优化模型的方法。 QM9 数据集包含超过 10 万个有机小分子和相关的量子化学性质。

训练吞吐量提高 21 倍

与基线实施相比, NVIDIA 实现提供了更快的训练和推理。该实现对 SE(3)-Transformers 的核心组件,即张量场网络( TFN )以及图形中的自我注意机制进行了优化。

考虑到注意力层超参数的某些条件得到满足,这些优化大多采取操作融合的形式。

由于这些,与基线实施相比,训练吞吐量增加了 21 倍,利用了最近 GPU NVIDIA 上的张量核。

poYBAGJfvUSAGrvvAAA_pAADmac256.png

图 2 A100 GPU 上的训练吞吐量。批次大小为 100 的 QM9 数据集。

此外, NVIDIA 实现允许使用多个 GPU 以数据并行方式训练模型,充分利用 DGX A100 ( 8x A100 80GB )的计算能力。

把所有东西放在一起,在 NVIDIA DGX A100 上, SE(3)-Transformer现在可以在 QM9 数据集上在 27 分钟内进行训练。作为比较,原始论文的作者指出,培训在硬件上花费了 2 。 5 天( NVIDIA GeForce GTX 1080 Ti )。

更快的培训使您能够在搜索最佳体系结构的过程中快速迭代。随着内存使用率的降低,您现在可以训练具有更多注意层或隐藏通道的更大模型,并向模型提供更大的输入。

内存占用率降低 9 倍

SE(3)-Transformer 是已知的记忆重模型,这意味着喂养大输入,如大蛋白质或许多分批小分子是一项挑战。对于 GPU 内存有限的用户来说,这是一个瓶颈。

这一点在DeepLearningExamples上的 NVIDIA 实现中已经改变。图 3 显示,由于 NVIDIA 优化和对混合精度的支持,与基线实现相比,训练内存使用减少了 9 倍。

pYYBAGJfvUSAJlq7AAAyUas0Vkk109.png

图 3 SE ( 3 ) – transformer s 的基线实现和 NVIDIA 实现之间的训练峰值内存消耗比较。在 QM9 数据集上每批使用 100 个分子。 V100 32-GB GPU 。

除了对单精度和混合精度进行改进外,还提供了低内存模式。启用此标志后,模型在 TF32 ( NVIDIA 安培体系结构)或 FP16 ( NVIDIA 安培体系结构、 NVIDIA 图灵体系结构和 NVIDIA 伏特体系结构)精度上运行,模型将切换到以吞吐量换取额外内存节省的模式。

实际上,在具有 V100 32-GB GPU 的 QM9 数据集上,基线实现可以在内存耗尽之前扩展到 100 的批大小。 NVIDIA 实现每批最多可容纳 1000 个分子(混合精度,低内存模式)。

对于处理以氨基酸残基为节点的蛋白质的研究人员来说,这意味着你可以输入更长的序列并增加每个残基的感受野。

SE(3)-Transformers 优化

与基线相比, NVIDIA 实现提供了一些优化。

融合键与值计算

在“自我注意”层中,将计算关键帧、查询和值张量。查询是图形节点特征,是输入特征的线性投影。另一方面,键和值是图形边缘特征。它们是使用 TFN 层计算的。这是 SE(3)-Transformer 中大多数计算发生的地方,也是大多数参数存在的地方。

基线实现使用两个独立的 TFN 层来计算键和值。在 NVIDIA 实现中,这些被融合在一个 TFN 中,通道数量增加了一倍。这将启动的小型 CUDA 内核数量减少一半,并更好地利用 GPU 并行性。径向轮廓是 TFN 内部完全连接的网络,也与此优化融合。概览如图 4 所示。

poYBAGJfvUWAMrW0AABoHVJXxEs672.png

图 4 NVIDIA 实现中的键、查询和值计算。键和值一起计算,然后沿通道维度分块。

TFN 合并

SE(3)-Transformer 内部的功能除了其通道数量外,还有一个degreed,它是一个正整数。程度特征d有维度2d+1. TFN 接受不同程度的特征,使用张量积组合它们,并输出不同程度的特征。

对于输入为 4 度、输出为 4 度的图层,将考虑所有度的组合:理论上,必须计算 4 × 4 = 16 个子图层。

这些子层称为成对 TFN 卷积。图 5 显示了所涉及的子层的概述,以及每个子层的输入和输出维度。对给定输出度(列)的贡献相加,以获得最终特征。

pYYBAGJfvUaARF2GAAFMcAG5jOI476.png

图 5 TFN 层中涉及的成对卷积,输入为 4 度,输出为 4 度。

NVIDIA 在满足 TFN 层上的某些条件时,提供多级融合以加速这些卷积。通过创建尺寸为 16 倍的形状,熔合层可以更有效地使用张量核。以下是应用熔合卷积的三种情况:

输出功能具有相同数量的通道

输入功能具有相同数量的通道

这两种情况都是正确的

第一种情况是,所有输出特征具有相同数量的通道,并且输出度数的范围从 0 到最大度数。在这种情况下,使用输出融合特征的融合卷积。该融合层用于 SE(3)-Transformers 的第一个 TFN 层。

pYYBAGJfvUeAILrMAAC_JHUK2b0720.png

图 6 每个输出度的部分熔融 TFN 。

第二种情况是,所有输入特征具有相同数量的通道,并且输入度数的范围从 0 到最大度数。在这种情况下,使用对融合输入特征进行操作的融合卷积。该融合层用于 SE(3)-Transformers 的最后一层 TFN 。

poYBAGJfvUiAZ-WtAADEV4igJyM069.png

图 7 每个输入度的部分熔融 TFN 。

在最后一种情况下,当两个条件都满足时,使用完全融合的卷积。这些卷积作为输入融合特征,输出融合特征。这意味着每个 TFN 层只需要一个子层。内部 TFN 层使用此融合级别。

pYYBAGJfvUiAY4E7AAB8ctJYwlM494.png

图 8 全熔合 TFN

基预计算

除了输入节点特性外, TFN 还需要基矩阵作为输入。每个图边都有一组矩阵,这些矩阵取决于目标节点和源节点之间的相对位置。

在基线实现中,这些矩阵在前向传递开始时计算,并在所有 TFN 层中共享。它们依赖于球形 h ARM ,计算起来可能很昂贵。由于输入图不会随着 QM9 数据集而改变(没有数据扩充,没有迭代位置细化),这就引入了跨时代的冗余计算。

NVIDIA 实现提供了在培训开始时预计算这些基础的选项。整个数据集迭代一次,基缓存在 RAM 中。前向传递开始时的计算基数过程被更快的 CPU 到 GPU 内存拷贝所取代。

关于作者

Alexandre Milesi 是 NVIDIA 的深度学习算法工程师。他拥有法国 UTC 的机器学习硕士学位,以及法国索邦大学的机器人和多智能体系统硕士学位。在加入 NVIDIA 之前, Alexandre 是伯克利实验室的附属研究员,使用深度强化学习解决电子 CTR ical 网格问题。在 NVIDIA ,他的工作集中于药物发现和计算机视觉的 DL 算法,包括等变图神经网络。

审核编辑:郭婷

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

    关注

    14

    文章

    4980

    浏览量

    102994
  • 机器学习
    +关注

    关注

    66

    文章

    8408

    浏览量

    132568
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121113
收藏 人收藏

    评论

    相关推荐

    阿里云开源推理模型QwQ

    近日,阿里云通义团队宣布推出全新AI推理模型QwQ-32B-Preview,并同步实现开源。这一举措标志着阿里云在AI推理领域迈出了重要一步。 据评测数据显示,QwQ预览版本已具备研
    的头像 发表于 11-29 11:30 538次阅读

    NVIDIA助力丽蟾科技打造AI训练推理加速解决方案

    丽蟾科技通过 Leaper 资源管理平台集成 NVIDIA AI Enterprise,为企业和科研机构提供了一套高效、灵活的 AI 训练推理加速解决方案。无论是在复杂的 AI 开发任务中,还是在高并发
    的头像 发表于 10-27 10:03 209次阅读
    <b class='flag-5'>NVIDIA</b>助力丽蟾科技打造AI<b class='flag-5'>训练</b>与<b class='flag-5'>推理</b>加速解决方案

    NVIDIA助力提供多样、灵活的模型选择

    在本案例中,Dify 以模型中立以及开源生态的优势,为广大 AI 创新者提供丰富的模型选择。其集成的 NVIDIAAPI Catalog、NVIDIA NIM和Triton
    的头像 发表于 09-09 09:19 461次阅读

    NVIDIA Nemotron-4 340B模型帮助开发者生成合成训练数据

    Nemotron-4 340B 是针对 NVIDIA NeMo 和 NVIDIA TensorRT-LLM 优化的模型系列,该系列包含最先进的指导和奖励模型,以及一个用于生成式 AI
    的头像 发表于 09-06 14:59 301次阅读
    <b class='flag-5'>NVIDIA</b> Nemotron-4 340B<b class='flag-5'>模型</b>帮助开发者生成合成<b class='flag-5'>训练</b>数据

    魔搭社区借助NVIDIA TensorRT-LLM提升LLM推理效率

    “魔搭社区是中国最具影响力的模型开源社区,致力给开发者提供模型即服务的体验。魔搭社区利用NVIDIA TensorRT-LLM,大大提高了大语言模型
    的头像 发表于 08-23 15:48 436次阅读

    英伟达推出全新NVIDIA AI Foundry服务和NVIDIA NIM推理微服务

    NVIDIA 宣布推出全新 NVIDIA AI Foundry 服务和 NVIDIA NIM 推理微服务,与同样刚推出的 Llama 3.1 系列
    的头像 发表于 07-25 09:48 698次阅读

    英伟达推出AI模型推理服务NVIDIA NIM

    英伟达近日宣布推出一项革命性的AI模型推理服务——NVIDIA NIM。这项服务将极大地简化AI模型部署过程,为全球的2800万英伟达开发者提供前所未有的便利。
    的头像 发表于 06-04 09:15 674次阅读

    摩尔线程和滴普科技完成大模型训练推理适配

    近日,摩尔线程与滴普科技宣布了一项重要合作成果。摩尔线程的夸娥(KUAE)千卡智算集群与滴普科技的企业大模型Deepexi已完成训练推理适配,共同实现了700亿参数LLaMA2大语言
    的头像 发表于 05-30 10:14 542次阅读

    NVIDIA与Google DeepMind合作推动大语言模型创新

    支持 NVIDIA NIM 推理微服务的谷歌最新开源模型 PaliGemma 首次亮相。
    的头像 发表于 05-16 09:44 445次阅读

    进一步解读英伟达 Blackwell 架构、NVlink及GB200 超级芯片

    NVIDIA NVLink,支持 FP4 AI 精度。 GB200 NVL72是一款性能卓越的计算平台,采用更快的第二代Transformer引擎和FP8精度,可将大型语言模型训练
    发表于 05-13 17:16

    NVIDIA加速微软最新的Phi-3 Mini开源语言模型

    NVIDIA 宣布使用 NVIDIA TensorRT-LLM 加速微软最新的 Phi-3 Mini 开源语言模型。TensorRT-LLM 是一个
    的头像 发表于 04-28 10:36 551次阅读

    李彦宏:开源模型将逐渐滞后,文心大模型提升训练推理效率

    李彦宏解释道,百度自研的基础模型——文心 4.0,能够根据需求塑造出适应各类场景的微型版模型,并支持精细调整以及后预训练。相较于直接使用开源模型
    的头像 发表于 04-16 14:37 439次阅读

    基于NVIDIA Megatron Core的MOE LLM实现训练优化

    本文将分享阿里云人工智能平台 PAI 团队与 NVIDIA Megatron-Core 团队在 MoE (Mixture of Experts) 大语言模型(LLM)实现训练优化上的
    的头像 发表于 03-22 09:50 759次阅读
    基于<b class='flag-5'>NVIDIA</b> Megatron Core的MOE LLM<b class='flag-5'>实现</b>和<b class='flag-5'>训练</b>优化

    混合专家模型 (MoE)核心组件和训练方法介绍

    ) 的 Transformer 模型开源人工智能社区引起了广泛关注。在本篇博文中,我们将深入探讨 MoEs 的核心组件、训练方法,以及在推理过程中需要考量的各种因素。 让我们开始吧!
    的头像 发表于 01-13 09:37 1240次阅读
    混合专家<b class='flag-5'>模型</b> (MoE)核心组件和<b class='flag-5'>训练</b>方法介绍

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享一下如何基于YOLOv8姿态评估模型实现在自定义数据集上,完成自定义姿态评估模型训练推理
    的头像 发表于 12-25 11:29 2838次阅读
    基于YOLOv8<b class='flag-5'>实现</b>自定义姿态评估<b class='flag-5'>模型</b><b class='flag-5'>训练</b>