腾讯云 TI-ONE 联手 Triton:高性能推理服务部署平台这样炼成
今天想聊聊腾讯云 TI 平台(TencentCloud TI Platform)中的核心产品之一——TI-ONE,它如何借助 NVIDIA Triton 推理服务器来构建高性能的推理服务部署平台。这个问题在 AI 落地中相当关键。
先简单交代一下背景。腾讯云 TI 平台集成了从数据获取、处理、建模、训练、评估到部署的完整链路,面向开发者和政企客户提供全栈式 AI 开发服务。TI-ONE 作为其中的一站式机器学习平台,提供从数据接入到模型服务的全流程支持,支持多种训练方式和算法框架。
问题在于,模型训练完成只是第一步。如何高效地将它部署到云端,形成可被应用调用的服务,才是真正的难点。通常我们会面临几个挑战。
一是模型框架的多样性。来自不同团队的模型可能出自 TensorFlow、PyTorch、ONNX Runtime,甚至是一些自研框架,比如腾讯的 TNN。平台必须兼容这种多样性。
二是性能瓶颈。推理服务需要高吞吐、低延迟,同时还得把昂贵的 GPU 资源用足。如何调度、如何优化,是平台设计的关键。
三是工作流串联。很多 AI 管线除了模型本身,还包括前后处理模块。比如工业质检中的图像预处理和结果分析,需要将它们有序地串联起来。
面对这些需求,腾讯云 TI-ONE 选择与 NVIDIA Triton 推理服务器深度集成,构建高性能推理部署方案。
核心集成方案:从模型上传到自动拉起
用户只需要将模型上传至 TI-ONE 平台,选择 Triton 作为推理后端。平台会自动在 Kubernetes 集群中拉起 Triton 容器,服务器启动后根据配置自动加载并管理模型实例,对外提供推理服务接口。
Triton 本身支持 TensorRT、TensorFlow、PyTorch、ONNX Runtime 等主流框架。但特别值得一提的是,腾讯云遵循 Triton Backend API,实现了对 TNN 模型的支持。TNN 是腾讯自研的高性能轻量级推理框架,在工业质检等场景中广泛使用。通过自定义 Backend,TNN 模型能被 Triton 直接加载和执行,极大地拓宽了模型部署的兼容性。

图1. 加入 TNN Backend 的 Triton 推理服务器架构示意图
性能优化的两个关键动作
为了提升推理服务的吞吐和 GPU 利用率,TI-ONE 重点利用了 Triton 的两个核心功能。
第一个是 Dynamic Batching。用户开启此功能后,Triton 会自动将到达的零散小 batch 请求聚合成大 batch,再送入模型推理。GPU 在执行更大 batch 时计算效率更高,从而实现吞吐提升。同时,用户可以在 TI-ONE 中设置等待时长,灵活平衡延迟与吞吐。

图2. Triton Dynamic Batching 机制示意图
第二个是 Concurrent Model Execution。对于轻量级模型,TI-ONE 可以在单张 NVIDIA GPU 上同时部署多个模型实例,这些实例并行执行计算,从而充分利用 GPU 资源,获得更高的总吞吐。
进阶场景:复杂工作管的串联
对于需要部署前后处理 + 模型推理的组合管线,TI-ONE 与 NVIDIA 正在探索如何利用 Triton Ensemble Model 和 Python Backend 实现。Python Backend 可以把现有的 Python 前后处理代码封装为模块,Ensemble Model 则通过配置文件定义模块间的连接关系,调度推理请求在管线中自动流转。
落地效果与数据
目前,该方案已在工业质检、自动驾驶等场景中落地,覆盖图像分类、对象检测、实例分割等任务。在目标检测场景中,使用 FasterRCNN ResNet50-FPN 模型,相比于基于 Tornado 的部署框架,在 NVIDIA T4 上最高可获得 31.6% 的吞吐提升。

图 3. TI-ONE 中不同推理服务框架部署目标检测模型时所实现的服务吞吐量对比
2022 腾讯云 " 此图片依据由腾讯云提供数据所制作
在图像分类业务中,结合 TNN 推理加速和 Dynamic Batching,在 1/2 T4 GPU 上,相比 Python 实现的 HTTP Server,延迟缩短了最高 2.6 倍,吞吐提升了最高 2.5 倍。

表 1. TI-ONE 中不同推理服务框架部署图像分类模型时所实现的服务性能对比
2022 腾讯云 " 此表格依据由腾讯云提供数据所制作
未来,腾讯云 TI 平台将继续与 NVIDIA 合作,探索更复杂的推理管线部署方案,为各行业提供更高效率、更低成本的推理平台。
