tensorrt轻松部署高性能dnn推理_教程|教你采用基于TensorRT的BERT模型实现实时自然语言理解...

本文介绍了如何使用TensorRT优化BERT模型,以实现高性能的深度学习推理,特别是在自然语言理解(NLU)任务中。NVIDIA的最新TensorRT版本能够在T4 GPU上快速完成BERT推理,比CPU平台快17倍,满足实时应用的需求。通过详细步骤展示了如何利用TensorRT进行BERT的训练和推理,以及如何构建和运行推理示例。
摘要由CSDN通过智能技术生成
点击上方“公众号”可以订阅哦

为了打造更具准确性的自然语言理解AI,如今已经有了诸如BERT、GPT-2和XL-Net等大规模语言模型被相继推出,这些模型的出现为打造各类自然语言理解(NLU)带来了飞跃性的突破。自2018年10月发布以来,BERT依旧是最常用的语言模型之一,并提供着最先进的准确性。

BERT的出现极大地推动了NLU的准确性,使各行业的企业都能够为客户提供优质的语言服务。然而,在实际的生产生活中,在应用这些模型时,除了准确性之外,延迟等因素也是需要被考虑的,这将直接影响用户对该语言服务的满意度。由于BERT具有12/24层叠加多头注意力网络,其推理过程需要大量的计算,而这也为BERT在实时应用中的部署带来了挑战。

NVIDIA近日针对BERT发布了全新优化版TensorRT,使其可以基于T4 GPU,在短短2.2 毫秒内快速地完成推理任务,相比于仅采用CPU的平台,推理速度提升了17倍,同时也远低于会话AI应用所要求的10毫秒延迟闳值。这些优化功能让BERT的实际应用(例如,将BERT应用于会话AI服务中)变得切实可行。

作为一种高性能深度学习推理的平台,TensorRT包括一个优化器和运行时刻程序,可以最大限度地减少延迟,并最大限度地提高生产吞吐量。通过TensorRT,你可以优化所有主框架中训练的模型,以极高的准确性校准低精度,并最终部署在生产环境当中。

根据TensorRT示例报告显示,所有通过BERT实现此性能的优化程序和代码都已被开源发布。Transformer层是BERT编码器的一个基本构件,NVIDIA已对其进行了优化,以便于你能够将这些优化应用于任何基于BERT的自然语言理解任务。除了会话AI之外,BERT还能用于更广泛的语音和自然语言理解程序当中,所有这些应用都将从优化功能中获益良多。

问题回答或阅读理解是测试模型理解场景信息的一种常用方法。近几年来,在全球学术界和企业的共同努力下,问题回答能力已经得到了快速发展。本文将演示如何使用Python创建一个简单的问答应用程序,该应用程序由此前发布的TensorRT优化的BERT代码提供支持。该示例提供API,负责输入段落和问题;然后由BERT模型生成响应式回答。

首先,让我们简要回顾一下使用TensorRT进行BERT训练和推理的步骤。

BERT的训练和推理

NLP研究人员和开发者们面临的一个主要问题是在执行某一特定NLP任务时,缺少经过标记的训练数据。而NLP领域最近的一项突破完美地解决了这一难题,让大家可以使用未经过标记的文本进行NLP训练,并将NLP任务分解为两个部分:1)学习如何表示词语的含义及其之间的关系,即:利用辅助任务和大量的文本语料库建立语言模型;2)将语言模型用于一个相对较小的特定任务网络中,并在监督的情况下进行训练,从而将语言模型专门转化为实际任务。

这两个阶段通常被称为预训练和微调。通过该模式,开发者们可以将预训练的语言模型应用于广泛的任务当中,而无需针对任何特定任务更改模型架构。在我们的示例中,BERT提供了一个高质量的语言模型,经过微调后能够执行问答任务,同时也适用于其他任务,如:句子分类和情感分析。 

为了对BERT进行预训练,你可以从在线的预训练检查点(参见图1左边)开始,或者在自定义语料库上对BERT进行预训练(参见图1右边)。你还可以从检查点初始化预训练,然后针对自定义数据进行训练。虽然使用自定义数据或特定域的数据进行预培训可能会产生有趣的结果(例如BioBert),但它的计算量很大,需要大量并行计算基础设施才能在合理的时间内完成。支持GPU的多节点训练是此类场景的理想解决方案。请阅读文章《MegatronLM:借助GPU模型并行性,对具有数十亿参数的语言模型进行训练》,详细了解NVIDIA开发者如何在不到一小时的时间内训练BERT。

在微调步骤中,应基于经预训练的BERT语言模型的特定任务网络,采用特定任务的训练数据进行训练(用于问答的训练数据量应为三倍,包括段落、问题、答案)。请注意,与预训练相比,微调通常对于计算的要求通常要低得多。

运用问答型神经网络进行推理:

  1. 将经过微调的权重和网络定义传入TensorRT生成器,以创建TensorRT引擎;

  2. 使用此引擎启动TensorRT运行时刻程序;

  3. 向TensorRT运行时刻程序提供一段文章和一个问题,并获得网络预测的答案。

整个工作流程如图2所示。

1bef3c888db2d18eb093d231a7757e60.png

图1:从预训练的检查点生成BERT TensortRT引擎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值