当前位置:数码通 > 手机

NVIDIA Triton推理服务器基本特性及应用案例

来源于 数码通 2023-10-04 15:27

推理识别是人工智能最重要的实际应用。其他与深度学习相关的数据收集、标注、模型训练等工作都是为了获得更好的最终推理性能和效果。

几乎每个深度学习框架都可以执行单独的推理任务,包括通用框架如Tensorflow、Pytorch、MXNet和YOLO独家的Darknet框架,此外还有ONNX开发推理平台、NVIDIA TensorRT加速推理引擎,还提供推理相关的C / C++Python开发接口,这是大多数人熟悉的方法技术人员。

在垂直应用方面,NVIDIA的DeepStream智能分析工具非常适合在类型固定且需要长期统计分析的场景中使用,包括各种交通场景下的人/车流分析、工业管道质量检测等应用,并且在早期的可视化(Visualization)推理功能之上,增加了会话(Conversation)类型推理功能,使使用范围更加完整。

上述推理方法通常适用于识别固定类型、固定输入源的使用场景。广泛应用于交通运输、工业自动化领域、无人设备等领域。

但这种方法不适合用在网络相关的服务应用中,包括在线产品推荐、图像分类、聊天机器人等。应用方面,由于在线服务需要同时面对未知数量和类型的数据源,而通过HTTP协议传输数据的延迟问题也是严重影响用户体验的因素。这是大多数互联网服务提供商需要引入的。 AI智能识别技术面临的常见问题。

NVIDIA Triton推理服务器的最大价值在于为服务型智能应用提供完整的解决方案。因此,首先需要解决以下三个关键问题:

1.高通可用性:

(1) 广泛支持多种计算处理器:包括带有NVIDIAGPU的x86和ARMCPU设备,也支持纯CPU设备上的推理计算。

(2) 广泛支持各种训练框架的文件格式:包括TensorFlow 1.x/2.x、PyTorch、ONNX、TensorRT、RAPIDS FIL(适用于XGBoost、Scikit-learn Random Forest、LightGBM) 、OpenVINO、Python 等

(3)广泛支持多种模型类型:包括卷积神经网络(CNN)、循环神经网络(RNN)、决策树、随机森林和图神经网络等算法。

2. 部署便捷:

(1) 在横向扩展云或数据中心、企业边缘,甚至嵌入式设备(例如 NVIDIA Jetson)上运行。

(2)支持AI推理的裸机和虚拟化环境,包括基于Docker技术的VMware vSphere和Kubernetes管理机制。

(3)可托管于多种人工智能云平台,包括Amazon SageMaker、Azure ML、Google Vertex AI、阿里巴巴AI、腾讯TI-EMS等平台。

3.性能优化:

(1) 动态批处理:推理优化的一个因素是批大小,或者一次处理多少个样本,GPU 可以通过更高的批大小提供高吞吐量。然而,对于实时应用程序来说,服务的真正限制不是批量大小甚至吞吐量,而是为最终客户提供良好体验所需的延迟。

(2)模型并发执行:GPU是一种能够同时执行多个工作负载的计算设备。 NVIDIA Triton 推理服务器通过在 GPU 上同时运行多个模型来最大限度地提高性能并减少端到端延迟。这些模型可以是同一个东西,也可以是来自不同框架的不同模型。 GPU 内存大小是同时运行的模型数量的唯一限制,这会影响 GPU 利用率和吞吐量。

以上是NVIDIA Triton推理服务器的基本特性描述。要满足上面列出的特征,是比较复杂的内容。这就是本系列文章将为读者一一探讨的内容。不过,在讲解技术内容之前,我们可以先看一下有哪些具有代表性的成功案例,可以让大家更好地了解Triton推理服务器的使用场景。

案例一:微软Teams会议系统使用Triton提高实时字幕生成和转录性能

Microsoft Teams 是全球沟通和协作的重要工具,每月拥有近 2.5 亿活跃用户。其 Azure 认知服务提供 28 种语言的字幕和转录。实时字幕功能帮助参与者实时跟踪对话,转录功能方便参与者将来可以回顾自己的创意或回顾无法参加的会议。时间字幕对于聋哑人、听力障碍者或来自国外的参与者特别有用。

底层的语音识别技术充当认知服务中的API,开发人员可以使用它来定制和运行自己的应用程序,例如客户服务呼叫转录、智能家居控制,或急救人员提供人工智能助手。认知服务为 Teams 生成文字记录和字幕、将语音转换为文本并识别发言者。它还可以识别专业术语、姓名等会议背景,提高字幕的准确性。

Microsoft Teams 首席项目经理 Shalendra Chhabra 表示:“这样的 AI 模型非常复杂,需要数千万个神经网络参数来识别数十种不同的语言。但是模型越大,难度就越大。”它是为了具有成本效益。它是实时运行的。”

为了提高服务质量,微软使用 NVIDIA Triton 开源推理服务软件来帮助 Teams 使用认知服务来优化认知服务支持的语音识别模型和高度先进的语言模型,以极低的延迟提供高度准确和个性化的服务。它可以提供优化的语音转文本结果,并确保运行这些语音转文本模型的 NVIDIA GPU 能够充分利用计算资源,消耗更少的计算资源,同时为客户提供更高的吞吐量,从而降低成本。

NVIDIA GPU 和 Triton 软件帮助 Microsoft 通过强大的神经网络实现高精度,同时又不牺牲低延迟,确保实时语音到文本转换,并且在启用转录后,与会者可以轻松赶上您错过的内容。

Triton 推理服务器有助于简化 AI 模型部署并解锁高性能推理,用户甚至可以为自己的应用程序开发自定义后端。以下三个关键功能可帮助 Microsoft 将 Teams 的字幕和转录功能扩展到更多会议和用户:

流式推理:新的流式推理功能 - 通过跟踪语音上下文来帮助 Azure 认知服务在自定义语音到文本应用程序上进行协作,以提高延迟和敏感字幕的准确性。

动态批处理:批大小是指神经网络同时处理的输入样本的数量。通过Triton的动态批处理功能,单个推理请求会自动组合成一个批次,因此可以更好地利用GPU而不影响模型延迟。资源。

并发模型执行:实时字幕和转录需要同时运行多个深度学习模型,Triton 使开发人员能够在单个 GPU 上同时执行此操作,包括使用不同深度学习框架的模型。

案例2:Triton帮助微信加速视觉应用并提高可靠性

本例中,NVIDIA的GPU执行Triton推理服务器和TensorRT推理加速引擎,帮助微信的二维码光学识别(OCR)计算时间减少46%,系统故障率降低81% ,同时减少 78% 使用的服务器数量。

腾讯微信是一款跨平台通讯工具,支持通过手机网络发送语音、图片、视频、文字等。截至2021年6月,微信全球活跃用户超过12亿,是中国活跃用户最多的社交软件。

微信物体识别是一款专注于物体识别的人工智能产品。它通过摄像头捕捉物体,更高效、智能地获取信息。 2020年,微信物体识别拓展至更多识别场景,并推出微信版图像搜索。打开微信扫一扫,向左滑动切换到“识别物体”功能,瞄准您想了解的物品正面即可获取对应物品。信息,包括物品百科全书、相关信息和相关产品

2021年1月,微信发布的8.0版本更新支持从图片中提取文字的功能。用户可以在聊天界面、朋友圈中长按图片提取文字,然后一键转发、复制或收藏。

物体识别的过程包括检测、图像回忆、信息提炼等环节。其中,二维码扫描的使用也非常频繁,主要包括识别和检测。这两种应用的计算量都非常大。然而,最初使用Pytorch进行模型推理时,我们遇到了以下三大问题:

请求延迟很大,影响用户体验;

占用显存很大,单张NVIDIA T4 GPU卡上可以部署的模型数量比较少。导致并发推理请求数无法增加,请求失败概率过高。提高并发能力和业务部署的唯一途径就是增加机器。成本较高。

使用的模型变化频繁,业务需要替换后的模型能够快速加速部署到线上。

为了解决上述问题,微信团队采用了Triton推理服务器结合TensorRT加速推理引擎的综合解决方案。主要技术内容如下:

通过使用TensorRT加速微信物体识别和OCR模型,当均使用FP32时,相比Pytorch延迟降低约50%;

在OCR识别检测阶段,TensorRT与NVIDIA T4 GPU的FP16 Tensor Core结合使用,在保证准确率的情况下,识别延迟降低50%,检测延迟降低20%;

在微信物体识别的分类和检测任务中,通过使用NVIDIA T4 GPU的int8 Tensor Core并与QAT相结合,在满足精度要求的同时,性能进一步大幅提升;

通过使用FP16和int8低精度模式,在大幅降低推理延迟的同时,也大幅降低了显存占用。 FP16 模式下,单个型号显存使用量仅占 FP32 模式的 40%~50%,而 int8 模式下,单个型号显存使用量仅占 FP32 模式的 30% 左右。在增加单张T4卡部署模型数量的同时,也大幅提升单GPU推理请求的并发能力;

Triton的动态批处理(动态批处理)和多实例特性帮助微信在满足延迟要求的同时提高系统整体并发能力,减少81%的系统故障;

TensorRT加速单个模型的推理,Triton快速部署加速模型,满足了业务快速部署修改模型的需求,大大减轻了工程人员的工作量。

通过使用NVIDIA的TensorRT加速微信物体识别和OCR模型,可以将单次推理延迟降低50%以上,并节省高达64%的显存。结合Triton的动态批量处理和多实例能力,整体OCR延迟降低了46%,系统故障率降低了81%。用户体验大幅提升,服务器数量减少高达78%,大幅降低服务成本。

案例3:腾讯PCG使用Triton加速在线推理,提升设备性能

腾讯平台与内容事业群(简称腾讯PCG)负责公司互联网平台与内容文化生态的融合发展,整合QQ软件、QQ空间等社交平台,App、浏览器等流量平台,以及随着新闻资讯、视频、体育、直播、动漫、电影等内容业务推动IP跨平台、多形态发展,为更多用户创造海量优质数字内容体验。

腾讯PCG机器学习平台部旨在打造并持续优化符合PCG技术中台战略的机器学习平台和系统,提高PCG机器学习技术的应用效率和价值,构建业务-领先的模型训练系统和算法框架提供涵盖数据标注、模型训练、评估、上线的全流程平台服务,实现高效迭代,输出内容领域业界领先的元能力和智能策略库理解和处理。

该机器学习平台服务于PCG所有业务产品。面对上述综合需求,面临以下三大挑战:

1.业务多样,场景复杂:

(1)业务开发语言包括C++和Python;

(2)模型格式多种,包括ONNX、Pytorch、TensorFlow、TensorRT等;

(3)模型预处理涉及图片下载等网络io;

(4)多模型融合过程比教学复杂,涉及循环调用;

(5)支持异构推理;

2、当模型推理结果异常时,难以方便调试和定位问题;

3. 需要与公司内部现有的协议/框架/平台集成。

基于以上挑战,腾讯PCG选择使用NVIDIA的Triton推理服务器来解决模型推理引擎在新场景下面临的挑战。在提高用户研究效率的同时,也大幅降低了服务成本。

NVIDIA 的 Triton 推理服务器是一款开源软件,可以简化所有推理模式在任何框架、任何 GPU 或 CPU 上的运行,以便在生产环境中使用推理计算,并支持多模型集成,以及 TensorFlow、TensorFlow 等各种深度学习模型框架PyTorch和ONNX可以很好地支持多模型联合推理场景,构建视频、图片、语音、文本的整个推理服务流程,大大降低多模型服务的开发和维护成本。

通过将Triton编译成动态链接库,可以轻松链接到公司内部框架,连接到公司的平台治理体系。符合C语言规范的API也大大降低了用户的访问成本。借助Python后端和定制后端,用户可以自由选择使用C++或Python语言进行二次开发。

NVIDIA DALI 是一个 GPU 加速的数据增强和图像加载库。使用Triton的DALI后端可以代替原来的图像解码、缩放等操作。 Triton的FIL后端可以替代Python XGBoost模型推理,进一步提高服务器端推理性能。

借助NVIDIA Triton推理框架,结合DALI/FIL/Python、TensorRT等后端,整体推理服务的吞吐量最高可提升6倍,延迟最高可降低40% 。帮助腾讯PCG在各种业务场景下以更低的成本构建高性能的推理服务。同时,较低的延迟降低了整个系统链路的响应时间,优化了用户体验,同时也降低了20%-66%的响应时间。总成本。

通过以上三个成功案例,可以清楚地看出,Triton推理服务器在面对复杂的智能识别应用场景时,特别是当模型来自不同的训练平台时,以及当面对不同的语言开发时,能够发挥非常有效的集成功能在前端,它的便利性能够得到更好的体现。

在接下来的文章中,我们将首先带您从宏观上了解Triton推理服务器的应用架构以及所需的支撑资源,然后搭建Triton的使用环境,包括建立模型仓库、安装服务器/客户端软件以及然后执行一些实用的基础示例,并结合NVIDIA的TensorRT和DeepStream等推理工具,让更多的开发者可以使用Triton来集成更多的AI推理资源。

Review Editor: Tang Zihong

-->
登录后参与评论