0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NADP+Triton搭建稳定高效的推理平台

NVIDIA英伟达企业解决方案 来源:NVIDIA 郭城 作者:NVIDIA 郭城 2022-10-18 09:24 次阅读

业务背景

蔚来自动驾驶研发平台(NADP)是着力服务于自动驾驶核心业务方向的研发平台。平台化的推理能力作为常规机器学习平台的重要组成部分,也是 NADP 所重点建设和支持的能力之一。NADP 所支持的推理业务,整体上有以下几个特性:

10% 的业务产生 90% 的流量(优化重点业务收益大);

追求引擎层的高性能;

要求在算法框架,量化加速维度尽可能强的扩展性,为算法业务的框架选型, 与后续可能的加速方案都提供尽可能的兼容;

多个模型有业务关联,希望能够满足多个模型之间串行/或者并行的调度。

经过对众多方案的对比和筛选,NVIDIA Triton 在上述每一个方面都能满足蔚来的需求。比如,Triton 支持多个模型或模块进行 DAG 式的编排。其云原生友好的部署方式,能够很轻松的做到多 GPU、多节点的扩展。从生产级别实践的稳定性角度来看,即便是一个优秀的开源方案,作为平台级的核心组件,也是需要长时间、高强度的验证,才能放心的推广到最核心业务上。经过半年的使用,Triton 证明了自己,在保证强大功能的前提下,也提供了很好的稳定性。另外,NVIDIA 有着优秀的生态建设与社区支持,提供了优质的 Triton 社区内容和文档共享,保障了 NADP 的核心推理业务迁移到 Triton 方案上,并平稳运行至今。

8c09e28e-4e20-11ed-a3b6-dac502259ad0.png

引入 Triton 之后的推理平台架构

8c47e610-4e20-11ed-a3b6-dac502259ad0.png

Triton 在设计之初,就融入了云原生的设计思路,为后面逐步围绕 Triton 搭建完整的云原生平台性推理解决方案提供了相当大的便利。作为 NADP 推理平台的核心组件,Triton 与 NADP 的各个组件形成了一套完整的推理一站式解决方案。接下来,将集中在以下 4 个方面具体叙述 Triton 如何在 NADP 推理平台中提供助力:

集成效率

高性能

易用性

高可用

01

集成效率

Triton + 模型仓库 + Argo

Triton 与自建模型仓库深度结合,配合 workflow 方案 Argo,完成全自动化的生产、量化、准入、云端部署、压测和上线的 CICD 流程。

具体来讲:

模型上传,模型仓库自动触发配置好的 workflow;

创建与部署环境硬件环境一致容器,自动量化加速;

得益于 Triton 生态中提供的 perf analyzer,可以像使用 jMeter 一样方便的按照模型的 Input Tensor Shape 自动生成请求与指定的负载。其压测出的服务化之后模型的最大吞吐,很接近真实部署场景。

Triton + Jupyter

在 Triton 镜像中集成了 Jupyter 组件之后,提供开箱即用的开发调试环境,在遇到复杂问题需要进行线上 debug 或者再线下复现问题时,Jupyter 能够提供一个方便的开发环境供用户进行调试。

02

高性能

Triton + Istio

当前 NADP 服务的业务场景,服务流量大,主要传输 cv 场景视频文件+高分辨率图片,必须使用高性能 rpc 协议进行加速,而且推理服务引擎必须对现有的 L4 Load Balancer 和服务发现方案有比较好的支持性。

而 Triton 原生支持 gRPC 的方案进行访问,并且能够很方便的部署为 k8s 容器。但因为 k8s 原生 service 不能够很好的对 gRPC 进行请求级别的负载均衡(仅支持长连接的负载均衡),故在引入了 isito 之后,Triton 就能够在传输协议上满足我们的需求。

具体来讲:

集群内容器直接访问只需要一次跨物理机网络转发;

完美复用 k8s 的 readiness 状态,通过和 Triton 节点的 liveness/readniess 探针进行服务的健康监控;

后续结合模型仓库/配置中心提供用户更友好的服务发现方式:基于域名的服务发现方案切换为基于模型的服务发现方案。

03

易用性

Triton + Apollo 配置中心

使用 Apollo 配置中心,可以极大程度提供更多的便利性。将基于域名的服务发现提升为基于模型名的服务发现。用户将不需要了解模型所部署的具体的域名即可访问模型。结合模型仓库,用户可以直接触发模型的部署。

具体来讲:

用户在模型仓库操作上线之后,将会将模型的真实域名写入配置中心;

用户使用 NADP 提供的客户端可以从配置中心获取到服务的真实域名,并直接访问服务;

作为下一步规划,当前的方案正在逐步迁移到基于开源的 model mesh 方案的版本上。

04

高可用

Triton + k8s CRD

8ca520fa-4e20-11ed-a3b6-dac502259ad0.png

围绕 Triton 蔚来搭建了服务 NIO 推理场景的 K8s CRD。它是以下几个 K8s 原生 CRD 或其他自研 CRD 的组合。而这每一个组件都在一定程度上保障了服务的高可用。

自动扩缩容规则(HPA Rule):进行基于流量的自动扩缩容,在服务流量上升时自动扩容;

Istio service:可靠的 side car 机制,保障 gRPC 流量的服务发现和负载均衡;

Ingress:多实例部署,动态扩容的 Ingress 节点,保障跨集群流量的访问;

k8s deploy:在一个推理实例内管理至少 3 个 Triton Pod,消除了服务的单点问题,并且通过 Triton server 加载多个模型的功能,实现多模型混布共享 GPU 算力,而且消除单点的同时不引入额外的 GPU 资源浪费;

Service Monitor:用于 prometheus 指标的收集,随时监控服务状态,上报异常信息

Service Heartbeat Probe:集成了 Triton Perf Analyzer 的 Pod。Triton 生态中的 Perf Analyzer 工具能够根据部署的模型 meta 信息生成真实请求并部署为主动请求探针,在没有流量的时候监控服务的健康状态并主动重启异常实例,同时上报异常信息。

Triton + Promethus/Grafana

Triton 提供了一套完整的,基于模型维度的模型服务指标。打点几乎包括了整个服务端推理链路的每个关键节点,甚至能够区分执行推理的排队时间和计算时间,使得能够在不需要进入 debug 模式的情况下进行细致的线上模型服务性能诊断和分析。另外,因为指标的格式支持了云原生主流的 Promethus/Grafana, 用户能够非常方便的配置看板和各维度的报警, 为服务的高可用提供指标支持。

模型的级别时延监控

8ccf7eea-4e20-11ed-a3b6-dac502259ad0.png

模型的级别的 qps 监控

8d38cf94-4e20-11ed-a3b6-dac502259ad0.jpg

服务业务场景:数据挖掘

目前,NADP 数据挖掘业务下的相关模型预测服务已经全部迁移至 Triton Inference Server,为上百个模型提供了高吞吐预测能力。同时在某些任务基础上,通过自实现前处理算子、前后处理服务化、BLS 串联模型等手段,将一些模型任务合并起来,极大的提升了处理效率。

服务端模型前处理

通过将服务的前后处理从客户端移动到服务端,不仅能够在网络传输上节省大量的时间,而且 GPU 服务端(Triton)可以用 Nvjpeg 进行 GPU 解码,并在 GPU 上做 resize、transpose 等处理。能够大幅加速前处理,明显减轻 client 端 CPU 计算压力。

01

业务流程

8d7c6632-4e20-11ed-a3b6-dac502259ad0.png

8daf066e-4e20-11ed-a3b6-dac502259ad0.png

02

收益

传压缩图片,而非 input tensor,只需要几百 KB 就能将一张 2K 原图 bytes 传输过去,以当前 onemodel 2k 输入图片为例,模型输入必须为 1920*1080*3*8 byte 大小,而且必须走网络,而在加入服务端后处理之后,在精度损失允许的范围内,可以将原图改为传压缩过的三通道 720P jpg 图片(1280*720*3),在服务端在 resize 成 1920*1080*3*8 byte,节约大量带宽;

服务端前处理完成后将 GPU 显存指针直接送入模型预测,还能省去 Host2Device 的拷贝;

服务端可以封装模型的后处理,使得每次模型升级的时候,client 端不用感知到服务后处理的变化,从而不需要修改处理逻辑代码;

使用 nvJpeg,DALI 等使用 GPU 算力的组件来进行前后处理,加速整体的数据处理速度。

多模型 DAG 式编排

一个统一的前处理模型,一份输入复制多份到多个后端识别模型,该流程在服务端单 GPU 节点内完成,不需要走网络,在 Triton + bls/ensemble 的支持下,甚至可以节约 H2D、D2H 拷贝。

01

业务流程

8e660dbe-4e20-11ed-a3b6-dac502259ad0.png

02

收益

当业务逻辑强制使用多模型 DAG 式编排多个模型之后,每次产生模型的输入/输出都可以叠加服务端前后处理改造的收益,当前部署的 triton 服务最多使用 BLS 串联了 9 个模型;

对于 2k 分辨率的输入来讲,每帧图片的大小为 1920 * 1080 * 3 * 8 = 47Mb, 假设全帧率为 60fps,则每秒输入数据量为 1920 * 1080 * 3 * 8 * 60 = 2847 Mb。如果使用 bls 串联了 9 个模型,则每秒需要产生的数据传输量为 1920 * 1080 * 3 * 8 * 60 * 9 = 25 Gb = 3GB;

如果使用 PCIe 传输,假设 PCIe 带宽为 160Gb = 20GB 每秒, 则理论上每秒产生的数据可以节约 150ms 在数据传输上;

如果使用网络传输,假设可用带宽为 16Gb=2Gb 每秒,则理论上每秒产生的数据可以节约 1500ms 在数据传输上。

总结和展望

NIO 基于 NVIDIA Triton 搭建的推理服务平台,在数据挖掘业务场景下,通过上文详细介绍的“服务器端模型前处理”和“多模型 DAG 式编排”,GPU 资源平均节省 24%;在部分核心 pipeline 上,吞吐能力提升为原来的 5 倍,整体时延降低为原来的 1/6。

另外,NIO 当前已经实现了输入为原始视频而非抽帧后图片的预研版本工作流上线,但只承载了小部分流量。而主要流量还是使用 jpg 压缩图片作为输入的版本。当前只是使用本地脚本完成了数据加载和模型推理,后续会逐步地将当前流程迁移到 Triton 的模型编排能力上。

关于作者 ——郭城

8eaac68e-4e20-11ed-a3b6-dac502259ad0.png

郭城是 NIO 自动驾驶研发平台(NADP)的高级工程师,负责为 NIO 自动驾驶搭建可靠高效的推理平台和深度学习模型 CICD 工具链。在加入 NIO 之前,他在小米威廉希尔官方网站 委员会参与了小米集团机器学习平台的搭建。他个人对 ML-ops、以及所有其他深度学习工程相关的主题感兴趣。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4981

    浏览量

    102997
  • Triton
    +关注

    关注

    0

    文章

    16

    浏览量

    7033
  • DAG
    DAG
    +关注

    关注

    0

    文章

    17

    浏览量

    8146
  • 自动驾驶
    +关注

    关注

    784

    文章

    13787

    浏览量

    166404
  • 云原生
    +关注

    关注

    0

    文章

    248

    浏览量

    7949

原文标题:威廉希尔官方网站 博客:NADP + Triton,搭建稳定高效的推理平台

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    超级干货!本地搭建代码托管平台Gitea

    1关于GiteaGitea是一个轻量级的Git托管服务,也就是基于Git的代码托管平台,类似于GitHub、Gitee等。Gitea相对于其他代码托管平台,是一个可以本地部署的开源项目,非常轻量化
    的头像 发表于 12-19 19:33 52次阅读
    超级干货!本地<b class='flag-5'>搭建</b>代码托管<b class='flag-5'>平台</b>Gitea

    库存平台稳定性建设实践

    作者:京东物流 尹昊喆 前言 本文总结库存平台稳定性建设中遇到的问题以及解决方案。感谢【金鹏】、【孙静】、【陈瑞】同学在本文撰写中提供的内容及帮助! 库存平台面临的稳定性挑战 库存
    的头像 发表于 12-11 09:50 159次阅读
    库存<b class='flag-5'>平台</b><b class='flag-5'>稳定</b>性建设实践

    企业云服务器平台设计与搭建

    企业云服务器平台的设计与搭建是一个复杂但系统的过程,涉及多个环节和因素。主机推荐小编为您整理发布企业云服务器平台设计与搭建这一过程的详细阐述。
    的头像 发表于 12-04 09:51 83次阅读

    高效大模型的推理综述

    大模型由于其在各种任务中的出色表现而引起了广泛的关注。然而,大模型推理的大量计算和内存需求对其在资源受限场景的部署提出了挑战。业内一直在努力开发旨在提高大模型推理效率的威廉希尔官方网站 。本文对现有的关于高效
    的头像 发表于 11-15 11:45 348次阅读
    <b class='flag-5'>高效</b>大模型的<b class='flag-5'>推理</b>综述

    AI推理CPU当道,Arm驱动高效引擎

    AI的训练和推理共同铸就了其无与伦比的处理能力。在AI训练方面,GPU因其出色的并行计算能力赢得了业界的青睐,成为了当前AI大模型最热门的芯片;而在 AI 推理方面,具备卓越通用性和灵活性的CPU
    的头像 发表于 11-13 14:34 2398次阅读
    AI<b class='flag-5'>推理</b>CPU当道,Arm驱动<b class='flag-5'>高效</b>引擎

    FPGA和ASIC在大模型推理加速中的应用

    随着现在AI的快速发展,使用FPGA和ASIC进行推理加速的研究也越来越多,从目前的市场来说,有些公司已经有了专门做推理的ASIC,像Groq的LPU,专门针对大语言模型的推理做了优化,因此相比GPU这种通过计算
    的头像 发表于 10-29 14:12 393次阅读
    FPGA和ASIC在大模型<b class='flag-5'>推理</b>加速中的应用

    NVIDIA助力丽蟾科技打造AI训练与推理加速解决方案

    丽蟾科技通过 Leaper 资源管理平台集成 NVIDIA AI Enterprise,为企业和科研机构提供了一套高效、灵活的 AI 训练与推理加速解决方案。无论是在复杂的 AI 开发任务中,还是在高并发
    的头像 发表于 10-27 10:03 210次阅读
    NVIDIA助力丽蟾科技打造AI训练与<b class='flag-5'>推理</b>加速解决方案

    如何搭建3d数字孪生平台

    搭建3D数字孪生平台是一项复杂且具有挑战性的任务,需要综合运用多种威廉希尔官方网站 和步骤。实现这一目标需要进行需求分析、数据采集、建模与仿真、数据库设计、人机界面设计、数据分析与算法选择、平台搭建
    的头像 发表于 07-04 15:23 389次阅读

    利用NVIDIA组件提升GPU推理的吞吐

    本实践中,唯品会 AI 平台与 NVIDIA 团队合作,结合 NVIDIA TensorRT 和 NVIDIA Merlin HierarchicalKV(HKV)将推理的稠密网络和热 Embedding 全置于 GPU 上进行加速,吞吐相比 CPU
    的头像 发表于 04-20 09:39 718次阅读

    Groq LPU崛起,AI芯片主战场从训练转向推理

    人工智能推理的重要性日益凸显,高效运行端侧大模型及AI软件背后的核心威廉希尔官方网站 正是推理。不久的未来,全球芯片制造商的主要市场将全面转向人工智能推理领域。
    的头像 发表于 02-29 16:46 1158次阅读

    使用NVIDIA Triton推理服务器来加速AI预测

    这家云计算巨头的计算机视觉和数据科学服务使用 NVIDIA Triton 推理服务器来加速 AI 预测。
    的头像 发表于 02-29 14:04 576次阅读

    在AMD GPU上如何安装和配置triton

    最近在整理python-based的benchmark代码,反过来在NV的GPU上又把Triton装了一遍,发现Triton的github repo已经给出了对应的llvm的commit id以及对应的编译细节,然后跟着走了一遍,也顺利的安装成功,只需要按照如下方式即可完
    的头像 发表于 02-22 17:04 2358次阅读
    在AMD GPU上如何安装和配置<b class='flag-5'>triton</b>?

    机智云平台高效温湿度智能测控研发

    关键词:机智云平台;温湿度测控;WiFi网络;高效精准;目录1、功能实现2、系统结构搭建3、物联网平台运用4、系统算法设计5、APP演示6、结论1功能实现本系统是室内温湿度测控威廉希尔官方网站 研发
    的头像 发表于 02-19 14:02 402次阅读
    机智云<b class='flag-5'>平台</b>的<b class='flag-5'>高效</b>温湿度智能测控研发

    【BBuf的CUDA笔记】OpenAI Triton入门笔记一

    这里来看官方的介绍:https://openai.com/research/triton ,从官方的介绍中我们可以看到OpenAI Triton的产生动机以及它的目标是什么,还可以看到一些经典算法的实现例子展示。
    的头像 发表于 01-23 10:00 2564次阅读
    【BBuf的CUDA笔记】OpenAI <b class='flag-5'>Triton</b>入门笔记一

    了解AN90048高效SiC参数和稳定的设计

    电子发烧友网站提供《了解AN90048高效SiC参数和稳定的设计.pdf》资料免费下载
    发表于 01-03 16:36 0次下载
    了解AN90048<b class='flag-5'>高效</b>SiC参数和<b class='flag-5'>稳定</b>的设计