在自动驾驶汽车穿梭于城市街道时,系统必须在毫秒级时间内精准识别周围环境——行人、车辆、各类障碍物。这背后依赖着一整套高性能AI推理管道的高速运转。为满足自动驾驶(AD)及视觉检测场景对实时响应的极端需求,多个AI模型与预处理、后处理逻辑被串联为一条流水线,共同协作完成机器学习推理任务。
这条流水线中的每一环节都必须极速运行,才能确保极低的延迟。所谓延迟,是指从发出推理请求到获得最终结果所消耗的时间。AD数据被处理得越快,关键信息就能越早被提取并用于决策,最终目标只有一个:实现更安全的驾驶环境。若任何一个步骤出现瓶颈,整个管道的响应速度都会被迫下降。
为打通这条低延迟推理链路,电动汽车制造商蔚来(NIO)将NVIDIA Triton推理服务器集成至其AD推理管道中。NVIDIA Triton推理服务器本质上是一个开源的多帧推理服务框架。本文详细解析了蔚来如何借助NVIDIA Triton在GPU上协调图像预处理、后处理以及AI模型的全流程,并展示了他们通过减少网络传输,成功加速了AD场景下AI推理工作流的具体方法。
用于实时响应的更快AI推理
蔚来公司从设计、开发到联合制造和销售高级智能电动汽车,始终致力于推动自动驾驶、数字技术、电动动力系统和电池等前沿领域的创新。他们拥有专门的研发平台——蔚来自动驾驶开发平台(NADP),其核心使命即为自动驾驶提供技术支撑。
蔚来最终选择NVIDIA Triton的原因何在?以下几项关键技术与运营因素起了决定性作用:
首先,Triton支持基于DAG(有向无环图)的多种模型编排,可将预处理和后处理模块一并纳入管道。其次,它原生支持云原生部署,在多GPU、多节点环境下能够轻松实现轻量级扩展。此外,高质量的文档与学习资源使团队迁移至Triton的过程十分顺畅。最后,Triton出色的稳定性和强大功能特性,正是AD这类高可靠性应用场景最看重的核心优势。
蔚来的自动驾驶AI推理工作流
从自动驾驶汽车采集的海量数据中,需要调用数百个人工智能模型来挖掘价值。在自动驾驶场景下,推理工作流通常由多个AI模型构成,预处理和后处理逻辑则像积木一样拼接在整条管道中。
蔚来的核心操作是将原本运行在CPU上的客户端预处理和后处理模块,迁移到运行在GPU上的NVIDIA Triton。他们利用Triton的业务逻辑脚本(BLS)功能来协调整个管道,专门针对自动驾驶需求进行优化。结果如何?部分核心管道的延迟直接降低了6倍,总吞吐量提升了5倍。工作流管道改造前后的对比,在图1中清晰呈现。

图 1. NVIDIA Triton 推理服务器推出之前(左)和之后(右) NIO AI 推理工作流的比较
NVIDIA Triton 的模型管道编排优势
接下来,让我们逐一剖析蔚来通过集成NVIDIA Triton所获得的具体收益。
GPU加速预处理
NVIDIA Triton利用nvJPEG和NVIDIA DALI,在GPU上高效完成解码、调整大小、图像转置等预处理任务。这直接大幅减轻了客户端CPU的计算负担,预处理延迟也得到了显著改善。
升级模型,无需修改客户端应用
将模型的预处理和后处理逻辑迁移至NVIDIA Triton后,每次模型升级时客户端无需任何改动。这意味着模型的迭代与上线速度可以大大加快,更快地投入到生产环境中。
单个GPU节点,大幅削减网络数据传输开销
统一的预处理机制使得一份输入数据能够被多个后端识别模型共享引用。整个过程在服务端使用GPU共享内存完成,数据传输开销几乎为零。图2显示,利用Triton的BLS功能,该管道最高可以串联九个模型。

图 2. NVIDIA Triton 业务逻辑脚本的模型管道编排
这里有一个直观的计算示例。以2K分辨率的输入图像为例,每帧大小约为1920×1080×3×8,约47Mb。假设全帧率为60fps,则每秒输入的数据量高达2847Mb。在旧工作流中,这份图像数据需要通过网络依次发送给九个模型,每秒总传输量达25Gb。而在新流程下,九个模型通过BLS协同工作,共享GPU内存中的同一份图像,不再需要重复的网络传输。理论上,按PCIe带宽160Gb/s计算,每秒节省的数据传输时间约为150毫秒;即便按网络可用带宽16Gb/s计算,也能节省1500毫秒。这些节省下来的时间,都直接加速了整体工作流。
图像压缩,进一步节省网络传输
为了实现准确的模型预测,输入图像原本必须是1920×1080×3×8字节的原始数据,并完整地通过网络传输。引入服务端预处理后,蔚来可以在允许的精度损失范围内,先将原始图像压缩为三通道的720像素图像。如此一来,传输压缩图像仅需几百KB字节,然后在服务器上再将分辨率恢复至1920×1080×3×8字节。网络传输的负担因此得到进一步减轻,工作流运行效率也随之提升。
NADP推理平台中的易集成性
蔚来基于NVIDIA Triton构建的推理平台,已成为其自动驾驶开发平台(NADP)的关键组成部分,直接服务于自动驾驶解决方案。
由于蔚来的底层平台构建在Kubernetes(K8s)之上,NVIDIA Triton与K8s的良好集成显得至关重要。工作流的各个组件均围绕NVIDIA Triton实现为K8s的CRD(原生或自定义资源)。图3直观展示了这一架构。

图 3.NIO 在 Kubernetes 中的机器学习工作流
持续集成/持续交付(CI/CD)
Argo作为Kubernetes中的工作流引擎,负责协调开发、量化、访问、云部署、压力测试和发布等所有组件的CI/CD流程。NVIDIA Triton在其中扮演了关键角色:当模型加载完成时,它会自动触发工作流中的下一步操作。此外,使用NVIDIA Triton的Docker容器,可以确保开发、测试和部署环境的功能始终保持一致。
Jupyter开发环境也被无缝集成到了NVIDIA Triton镜像中。对于那些需要在线调试或离线复现的复杂问题,Jupyter提供了一个非常便利的开发环境。
Istio部署,轻松搞定
NVIDIA Triton原生支持gRPC协议与应用程序通信。不过,Kubernetes自带的本地服务无法为gRPC提供高效的请求级负载均衡。于是,蔚来将Triton与Istio服务网格集成。Istio负责对Triton推理服务器的流量进行负载均衡,同时通过Triton自身的存活/就绪探针来监测服务的健康状况。
Apollo配置管理,开箱即用
蔚来利用Apollo配置中心,基于模型名称来实现服务发现。这样一来,用户可以直接访问模型,而无需关心模型部署在哪个具体的域名上。结合NVIDIA Triton的模型存储库,用户可以像触发开关一样,直接触发模型的部署。
Prometheus和Grafana,指标监控一目了然
NVIDIA Triton基于模型维度,提供了一整套模型服务的性能指标。例如,它可以区分推理请求的排队时间和GPU计算时间,让团队无需进入调试模式,就能对在线模型的服务性能进行细粒度的诊断和分析。由于Triton原生支持云生态中主流的Prometheus/Grafana,用户可以轻松地为每个维度配置仪表板和告警规则,为高可用服务提供坚实的指标支撑。
关键要点
总结而言,蔚来通过集成NVIDIA Triton推理服务器优化工作流,成功将部分核心管道的延迟降低了6倍,总吞吐量提升了5倍。将预处理逻辑迁移至GPU,并利用Triton的管道编排能力,他们实现了:更快速的图像处理、释放CPU容量、减少网络传输开销、以及更高的推理吞吐量。最终,蔚来借助NVIDIA Triton推理服务器,不仅加速了AI推理工作流,还将其轻松集成到了基于Kubernetes的强大可扩展解决方案中。
