前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 NVIDIA Triton 推理服务器简化边缘 AI 模型部署

使用 NVIDIA Triton 推理服务器简化边缘 AI 模型部署

作者头像
GPUS Lady
发布2021-10-13 14:48:14
1.7K0
发布2021-10-13 14:48:14
举报
文章被收录于专栏:GPUS开发者GPUS开发者

AI 机器学习 (ML) 和深度学习 (DL) 正在成为解决机器人、零售、医疗保健、工业等各个领域的各种计算问题的有效工具。对低延迟、实时响应和隐私的需求已经推动了在边缘运行 AI 应用程序。

但是,在边缘的应用程序和服务中部署 AI 模型对于基础设施和运营团队来说可能具有挑战性。各种框架、端到端延迟要求以及缺乏标准化实施等因素都可能使 AI 部署具有挑战性。在这篇文章中,我们将探讨如何应对这些挑战并在边缘生产中部署 AI 模型。

以下是部署推理模型时最常见的挑战:

  • 多种模型框架:数据科学家和研究人员使用不同的 AI 和深度学习框架(如 TensorFlow、PyTorch、TensorRT、ONNX Runtime 或仅使用简单的 Python)来构建模型。这些框架中的每一个都需要一个执行后端来在生产中运行模型。同时管理多个框架后端可能成本高昂,并会导致可扩展性和维护问题。
  • 不同的推理查询类型:边缘推理服务需要处理多个并发查询、不同类型的查询,如实时在线预测、流数据和多个模型的复杂管道。这些中的每一个都需要特殊的推理处理。
  • 不断进化的模型: 在这个不断变化的世界中,人工智能模型会根据新数据和新算法不断重新训练和更新。生产中的模型必须在不重启设备的情况下持续更新。典型的 AI 应用程序使用许多不同的模型。它增加了问题的规模以更新现场模型。

NVIDIA Triton 推理服务器是一款开源推理服务软件,可通过解决这些复杂问题来简化推理服务。NVIDIA Triton 提供单一标准化推理平台,可支持在多框架模型和不同部署环境(如数据中心、云、嵌入式设备和虚拟化环境)中运行推理。它通过高级批处理和调度算法支持不同类型的推理查询,并支持实时模型更新。NVIDIA Triton 还旨在通过并发模型执行和动态批处理最大化硬件利用率来提高推理性能。

NVIDIA 通过 2021 年 8 月发布的 NVIDIA JetPack 4.6( 打开NVIDIA Jetpack 4.6 隐藏功能)将 Triton 推理服务器带到了 Jetson。借助 NVIDIA Triton,现在可以跨云、数据中心和边缘对 AI 部署进行标准化。

主要特点

以下是 NVIDIA Triton 的一些关键功能,可帮助您简化在 Jetson 中的模型部署。

嵌入式应用集成

客户端应用程序和 Triton Inference Server 之间的通信支持直接 C-API 集成,但也支持 gRPC 和 HTTP/REST。在 Jetson 上,客户端应用程序和推理服务运行在同一台设备上,客户端应用程序可以直接调用 Triton 推理服务器 API,零通信开销。NVIDIA Triton 可作为带有 C API 的共享库使用,可将完整功能直接包含在应用程序中。这最适合基于 Jetson 的嵌入式应用程序。

多框架支持

NVIDIA Triton 原生集成了流行的框架后端,例如 TensorFlow 1.x/2.x、ONNX Runtime、TensorRT,甚至自定义后端。这允许开发人员直接在 Jetson 上运行他们的模型,而无需经过转换过程。NVIDIA Triton 还支持灵活添加自定义后端。开发人员有自己的选择,基础设施团队使用单个推理引擎简化部署。

DLA支持

Jetson 上的 Triton 推理服务器可以在 GPU 和 DLA 上运行模型。DLA 是 Jetson Xavier NX 和 Jetson AGX Xavier 上可用的深度学习加速器。

并发模型执行

Triton 推理服务器通过在 Jetson 上同时运行多个模型来最大限度地提高性能并减少端到端延迟。这些模型可以是相同的模型,也可以是来自不同框架的不同模型。GPU 内存大小是可以同时运行的模型数量的唯一限制。

动态批处理

批处理是一种提高推理吞吐量的技术。批处理推理请求有两种方式:客户端批处理和服务器批处理。NVIDIA Triton 通过将单个推理请求组合在一起来实现服务器批处理,以提高推理吞吐量。它是动态的,因为它会构建一个批次,直到达到可配置的延迟阈值。当达到阈值时,NVIDIA Triton 会安排当前批次执行。调度和批处理决策对请求推理的客户端是透明的,并按模型进行配置。通过动态批处理,NVIDIA Triton 最大限度地提高了吞吐量,同时满足了严格的延迟要求。

动态批处理的示例之一是您的应用程序同时运行检测和分类模型,其中分类模型的输入是从检测模型中检测到的对象。在这种情况下,由于可以对任意数量的检测进行分类,动态批处理可以确保可以动态创建检测对象的批次,并且可以将分类作为批处理请求运行,从而降低整体延迟并提高性能你的申请。

模型合奏

模型集成功能用于创建不同模型和预处理或后处理操作的管道,以处理各种工作负载。NVIDIA Triton 集成允许用户将多个模型和预处理或后处理操作拼接到一个具有连接输入和输出的管道中。NVIDIA Triton 可以轻松管理整个管道的执行,只需从客户端应用程序向集成发出单个推理请求。例如,尝试对车辆进行分类的应用程序可以使用 NVIDIA Triton 模型集成来运行车辆检测模型,然后在检测到的车辆上运行车辆分类模型。

自定义后端

除了流行的 AI 后端,NVIDIA Triton 还支持自定义 C++ 后端的执行。这些对于创建特殊逻辑(如预处理和后处理甚至常规模型)非常有用。

动态模型加载

NVIDIA Triton 有一个模型控制 API,可用于动态加载和卸载模型。这使设备能够在应用程序需要时使用模型。此外,当使用新数据重新训练模型时,它可以无缝地重新部署在 NVIDIA Triton 上,无需重新启动任何应用程序或中断服务,从而实现实时模型更新。

Triton 推理服务器作为 Jetson 的共享库发布。NVIDIA Triton 版本每月发布一次,增加了新功能并支持最新的框架后端。

更多信息可以访问:

https://github.com/triton-inference-server/server/blob/main/docs/jetson.md

(要KX上网才能打开)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主要特点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档