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

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

3天内不再提示

使用NVIDIA TensorRT优化T5和GPT-2

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-03-31 17:25 次阅读

这个transformer 体系结构完全改变了(双关语)自然语言处理( NLP )的领域。近年来,在 transformer 构建块 BERT 、 GPT 和 T5 上构建了许多新颖的网络体系结构。随着品种的增加,这些型号的尺寸也迅速增加。

虽然较大的神经语言模型通常会产生更好的结果,但将它们部署到生产环境中会带来严重的挑战,尤其是对于在线应用程序,在这些应用程序中,几十毫秒的额外延迟可能会对用户体验产生显著的负面影响。

使用最新TensorRT8.2 ,我们优化了 T5 和 GPT-2 模型,以实现实时推理。您可以将 T5 或 GPT-2 模型转换为 TensorRT 引擎,然后将此引擎用作推理工作流中原始 PyTorch 模型的插件替换。与 PyTorch GPU 推理相比,此优化导致延迟减少 3-6 倍,与 PyTorch CPU 推理相比,延迟减少 9-21 倍。

在这篇文章中,我们将向您详细介绍如何实现相同的延迟减少,使用我们最新发布的基于 Hugging Face transformers 的示例脚本和笔记本,使用 GPT-2 进行开放式文本生成,使用 T5 进行翻译和摘要。

T5 和 GPT-2 简介

在本节中,我们将简要介绍 T5 和 GPT-2 模型。

T5 用于回答问题、总结、翻译和分类

T5或文本到文本传输 transformer 是谷歌最近创建的一种体系结构。它将所有自然语言处理( NLP )任务重新构造为统一的文本到文本格式,其中输入和输出始终是文本字符串。 T5 的体系结构允许将相同的模型、损失函数和超参数应用于任何 NLP 任务,如机器翻译、文档摘要、问答和分类任务,如情感分析。

T5 模式的灵感来源于迁移学习在 NLP 中产生了最先进的结果。迁移学习背后的原理是,基于大量可用的未经训练的数据和自我监督任务的模型可以在较小的任务特定标记数据集上针对特定任务进行微调。事实证明,这些模型比从头开始针对特定任务数据集训练的模型具有更好的结果。

基于迁移学习的概念, Google 在用统一的文本到文本转换器探索迁移学习的局限性中提出了 T5 模型。在本文中,他们还介绍了庞大的干净爬网语料库( C4 )数据集。在该数据集上预训练的 T5 模型在许多下游 NLP 任务上实现了最先进的结果。已发布的预训练 T5 车型的参数范围高达 3B 和 11B 。

GPT-2 用于生成优秀的类人文本

生成性预训练 transformer 2 (GPT-2)是 OpenAI 最初提出的一种自回归无监督语言模型。它由 transformer 解码器块构建,并在非常大的文本语料库上进行训练,以预测段落中的下一个单词。它生成优秀的类人文本。更大的 GPT-2 模型,最大参数达到 15 亿,通常能写出更好、更连贯的文本。

使用 TensorRT 部署 T5 和 GPT-2

使用 TensorRT 8.2 ,我们通过构建并使用 TensorRT 发动机作为原始 PyTorch 模型的替代品,优化了 T5 和 GPT-2 模型。我们将带您浏览scripts和 Jupyternotebooks,并重点介绍基于拥抱面部变形金刚的重要内容。有关更多信息,请参阅示例脚本和笔记本以获取详细的分步执行指南。

设置

最方便的开始方式是使用 Docker 容器,它为实验提供了一个隔离、独立和可复制的环境。

构建并启动 TensorRT 容器:

pYYBAGJFc9SAPvxgAAAaKW2vWGI162.png

这些命令启动 Docker 容器和 JupyterLab 。在 web 浏览器中打开 JupyterLab 界面:pYYBAGJFdAKAcbUvAAAEMDAJOjM560.png在 JupyterLab 中,要打开终端窗口,请选择 File 、 New 、 Terminal 。编译并安装 TensorRT OSS 包:

poYBAGJFdA2AQncNAAALSmQMGn0122.png

现在,您已经准备好继续使用模型进行实验。在下面的顺序中,我们将演示 T5 模型的步骤。下面的代码块并不意味着可以复制粘贴运行,而是引导您完成整个过程。为了便于复制,请参阅 GitHub 存储库上的notebooks。

在高层次上,使用 TensorRT 优化用于部署的拥抱面 T5 和 GPT-2 模型是一个三步过程:

从 HuggingFace 模型动物园下载模型。

将模型转换为优化的 TensorRT 执行引擎。

使用 TensorRT 引擎进行推理。

使用生成的引擎作为 HuggingFace 推理工作流中原始 PyTorch 模型的插件替换。

从 HuggingFace 模型动物园下载模型

首先,从 HuggingFace 模型中心下载原始的 Hugging Face PyTorch T5 模型及其关联的标记器。

poYBAGJFdCeAbgptAAANxtLgEjs368.png

然后,您可以将此模型用于各种 NLP 任务,例如,从英语翻译为德语:

pYYBAGJFdC-ATa1bAAAU9hCPQ6k530.png

TensorRT 8.2 支持 GPT-2 至“ xl ”版本( 1.5B 参数)和 T5 至 11B 参数,这些参数可在 HuggingFace model zoo 上公开获得。根据 GPU 内存可用性,也可支持较大型号。

将模型转换为优化的 TensorRT 执行引擎。

在将模型转换为 TensorRT 引擎之前,请将 PyTorch 模型转换为中间通用格式。 ONNX 是机器学习深度学习模型的开放格式。它使您能够将 TensorFlow 、 PyTorch 、 MATLAB 、 Caffe 和 Keras 等不同框架中的深度学习和机器学习模型转换为单一的统一格式。

转换为 ONNX

对于 T5 型号,使用实用功能分别转换编码器和解码器。

pYYBAGJFdDiACUfkAAAhAI8eZnI041.png

转换为 TensorRT

现在,您已经准备好解析 T5 ONNX 编码器和解码器,并将它们转换为优化的 TensorRT 引擎。由于 TensorRT 执行了许多优化,例如融合操作、消除转置操作和内核自动调优,以在目标 GPU 体系结构上找到性能最佳的内核,因此此转换过程可能需要一些时间。

pYYBAGJFdE6AQLHtAAAcENHunE8781.png

使用 TensorRT 引擎进行推理

最后,您现在有了一个针对 T5 模型的优化 TensorRT 引擎,可以进行推断。

pYYBAGJFdGyATjkzAAAfAAkkvFE954.png

类似地,对于 GPT-2 模型,您可以按照相同的过程生成 TensorRT 引擎。优化的 TensorRT 引擎可作为 HuggingFace 推理工作流中原始 PyTorch 模型的插件替代品。

TensorRT transformer 优化细节

基于转换器的模型是 transformer 编码器或解码器块的堆栈。编码器(解码器)块具有相同的结构和参数数量。 T5 由 transformer 编码器和解码器的堆栈组成,而 GPT-2 仅由 transformer 解码器块组成(图 1 )。

t5-architecture.png

图 1a 。 T5 架构

poYBAGJFc5-AeDgfAABnQisiZW4320.png

图 1b 。 GPT-2 体系结构

每个 transformer 块,也称为自我注意块,通过使用完全连接的层将输入投影到三个不同的子空间,称为查询( Q )、键( K )和值( V ),由三个投影组成。然后将这些矩阵转换为 QT和 KT用于计算标准化点积注意值,然后与 V 组合T生成最终输出(图 2 )。

pYYBAGJFc6GAKbmGAAC5J-rjuz4450.png

图 2 。自我注意块

TensorRT 通过逐点层融合优化自我注意块:

还原与电源操作相融合(用于图层模板和剩余添加图层)。

电子秤与 softmax 融合在一起。

GEMM 与 ReLU / GELU 激活融合。

此外, TensorRT 还优化了推理网络:

消除转置操作。

将三个 KQV 投影融合为一个 GEMM 。

当指定 FP16 模式时,控制逐层精度以保持精度,同时运行 FP16 中计算最密集的运算。

TensorRT 对 PyTorch CPU 和 GPU 基准

通过 TensorRT 进行的优化,我们看到 PyTorch GPU 推理的加速比高达 3-6 倍,而 PyTorch CPU 推理的加速比高达 9-21 倍。

图 3 显示了批量为 1 的 T5-3B 模型的推理结果,该模型用于将短短语从英语翻译成德语。 A100 GPU 上的 TensorRT 引擎与在双插槽 Intel Platinum 8380 CPU 上运行的 PyTorch 相比,延迟减少了 21 倍。

poYBAGJFc6KAct-cAABCQhQEBKM339.png

图 3 。 A100 GPU 上的 T5-3B 模型推断比较 TensorRT 提供的延迟比 PyTorch CPU 推断小 21 倍。

CPU :英特尔白金 8380 , 2 个插槽。
GPU:NVIDIA A100 PCI Express 80GB 。软件: PyTorch 1.9 , TensorRT 8.2.0 EA 。
任务:“将英语翻译成德语:这很好。”

结论

在这篇文章中,我们向您介绍了如何将拥抱脸 PyTorch T5 和 GPT-2 模型转换为优化的 TensorRT 推理引擎。 TensorRT 推理机用作原始 HuggingFace T5 和 GPT-2 PyTorch 模型的替代品,可提供高达 21x CPU 的推理加速比。要为您的模型实现此加速,从 TensorRT 8.2 开始今天的学习.

关于作者

About Vinh Nguyen是一位深度学习的工程师和数据科学家,发表了 50 多篇科学文章,引文超过 2500 篇。在 NVIDIA ,他的工作涉及广泛的深度学习和人工智能应用,包括语音、语言和视觉处理以及推荐系统。

About Nikhil Srihari是 NVIDIA 的深入学习软件威廉希尔官方网站 营销工程师。他在自然语言处理、计算机视觉和语音处理领域拥有广泛的深度学习和机器学习应用经验。 Nikhil 曾在富达投资公司和 Amazon 工作。他的教育背景包括布法罗大学的计算机科学硕士学位和印度苏拉斯卡尔卡纳塔克邦国家理工学院的学士学位。

About Parth Chadha是 NVIDIA 的深度学习软件工程师。他在 TensorRT 上工作,这是一个高性能的深度学习推理 SDK 。 Parth 在卡内基梅隆大学获得电气和计算机工程硕士学位,主要研究机器学习和并行计算机体系结构。

About Charles Chen20 岁时在加州大学圣地亚哥分校获得计算机科学硕士学位后, Charles Chen 专注于为尖端人工智能框架、发展中国家的计算机教育和人机交互做出贡献。在 NVIDIA , Charles 是一名深度学习软件工程师,致力于 TensorRT ,一款高性能的深度学习推理 SDK 。

About Joohoon Lee领导 NVIDIA 的汽车深度学习解决方案架构师团队。他专注于将深度学习研究转化为用于生产部署的真实世界自主驾驶软件。他的团队使汽车客户能够使用英伟达驱动平台进行 DNN 培训、微调、优化和部署。在加入 NVIDIA 之前,他曾担任 GPU 软件架构师,负责加速 DNN 算法。 Joohoon 在卡内基梅隆大学获得电气和计算机工程学士和硕士学位。

About Jay Rodge是 NVIDIA 的产品营销经理,负责深入学习和推理产品,推动产品发布和产品营销计划。杰伊在芝加哥伊利诺伊理工学院获得计算机科学硕士学位,主攻计算机视觉和自然语言处理。在 NVIDIA 之前,杰伊是宝马集团的人工智能研究实习生,为宝马最大的制造厂使用计算机视觉解决问题。

审核编辑:郭婷

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

    关注

    68

    文章

    10863

    浏览量

    211738
  • NVIDIA
    +关注

    关注

    14

    文章

    4986

    浏览量

    103039
收藏 人收藏

    评论

    相关推荐

    NVIDIA TensorRT-LLM中启用ReDrafter的一些变化

    Recurrent Drafting (简称 ReDrafter) 是苹果公司为大语言模型 (LLM) 推理开发并开源的一种新型推测解码威廉希尔官方网站 ,该威廉希尔官方网站 现在可与 NVIDIA TensorRT-LLM 一起使用。
    的头像 发表于 12-25 17:31 105次阅读
    在<b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT</b>-LLM中启用ReDrafter的一些变化

    OpenAI GPT-5开发滞后:训练成本高昂

    已经对GPT-5进行了至少两轮大规模训练,希望通过海量数据资源来优化模型效能。然而,首次训练的实际运行结果并未达到预期标准,导致更大规模的训练尝试变得耗时且成本更高。据估计,GPT-5的训练成本已经高达
    的头像 发表于 12-23 11:04 154次阅读

    解锁NVIDIA TensorRT-LLM的卓越性能

    NVIDIA TensorRT-LLM 是一个专为优化大语言模型 (LLM) 推理而设计的库。它提供了多种先进的优化威廉希尔官方网站 ,包括自定义 Attention Kernel、Inflight
    的头像 发表于 12-17 17:47 153次阅读

    NVIDIA TensorRT-LLM Roadmap现已在GitHub上公开发布

    感谢众多用户及合作伙伴一直以来对NVIDIA TensorRT-LLM的支持。TensorRT-LLM 的 Roadmap 现已在 GitHub 上公开发布!
    的头像 发表于 11-28 10:43 270次阅读
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT</b>-LLM Roadmap现已在GitHub上公开发布

    使用NVIDIA TensorRT提升Llama 3.2性能

    Llama 3.2 模型集扩展了 Meta Llama 开源模型集的模型阵容,包含视觉语言模型(VLM)、小语言模型(SLM)和支持视觉的更新版 Llama Guard 模型。与 NVIDIA 加速
    的头像 发表于 11-20 09:59 223次阅读

    TensorRT-LLM低精度推理优化

    本文将分享 TensorRT-LLM 中低精度量化内容,并从精度和速度角度对比 FP8 与 INT8。首先介绍性能,包括速度和精度。其次,介绍量化工具 NVIDIA TensorRT Model
    的头像 发表于 11-19 14:29 297次阅读
    <b class='flag-5'>TensorRT</b>-LLM低精度推理<b class='flag-5'>优化</b>

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

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

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

    “魔搭社区是中国最具影响力的模型开源社区,致力给开发者提供模型即服务的体验。魔搭社区利用NVIDIA TensorRT-LLM,大大提高了大语言模型的推理性能,方便了模型应用部署,提高了大模型产业应用效率,更大规模地释放大模型的应用价值。”
    的头像 发表于 08-23 15:48 453次阅读

    宝塔面板Docker一键安装:部署GPTAcademic,开发私有GPT学术优化工具

    使用宝塔Docker-compose,5分钟内在海外服务器上搭建gpt_academic。这篇文章讲解如何使用宝塔面板的Docker服务搭建GPT 学术优化 (
    的头像 发表于 07-02 11:58 2593次阅读
    宝塔面板Docker一键安装:部署GPTAcademic,开发私有<b class='flag-5'>GPT</b>学术<b class='flag-5'>优化</b>工具

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

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

    奇瑞捷途T5山海版首展,续航1400km预计明年上市

    据悉,4 月 25 日,在北京车展上,奇瑞汽车旗下捷途品牌的全新车型——捷途山海 T5 正式亮相。这是捷途品牌首款采用非承载式车身结构的 SUV,搭载 2.0T 混合动力引擎,综合续航里程达到 1400km 左右,预计将于明年上市销售。
    的头像 发表于 04-26 10:46 1314次阅读

    Bota Systems推出一款新型力扭矩传感器SensONE T5

    据麦姆斯咨询报道,近期,多轴力扭矩传感器的先驱Bota Systems(简称:Bota)推出了新型力扭矩传感器SensONE T5,它在Bota SensONE系列传感器中具有最高的灵敏度。
    的头像 发表于 03-25 09:20 695次阅读

    极狐阿尔法T5限时优惠2.5万元,起售价13.08万元

    阿尔法T5拥有四款车型可供选择,提供两种里程配置,分别是520公里和660公里,指导价在15.58-19.98万之间。折扣后价格范围在13.08-17.48万元之间。
    的头像 发表于 03-08 14:07 709次阅读

    TensorRT LLM加速Gemma!NVIDIA与谷歌牵手,RTX助推AI聊天

    NVIDIA今天在其官方博客中表示,今天与谷歌合作,在所有NVIDIA AI平台上为Gemma推出了优化
    的头像 发表于 02-23 09:42 611次阅读
    <b class='flag-5'>TensorRT</b> LLM加速Gemma!<b class='flag-5'>NVIDIA</b>与谷歌牵手,RTX助推AI聊天

    Torch TensorRT是一个优化PyTorch模型推理性能的工具

    那么,什么是Torch TensorRT呢?Torch是我们大家聚在一起的原因,它是一个端到端的机器学习框架。而TensorRT则是NVIDIA的高性能深度学习推理软件工具包。Torch Te
    的头像 发表于 01-09 16:41 1736次阅读
    Torch <b class='flag-5'>TensorRT</b>是一个<b class='flag-5'>优化</b>PyTorch模型推理性能的工具