Triton 云端生产实践

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 机器学习模型的在线推理在生产实践中扮演着非常重要的角色,从典型的互联网场景中的搜索,广告,推荐的召回排序,到实时的图像识别,语音识别,文本处理等领域,都需要涉及到模型的在线推理,从简单的逻辑回归模型到复杂的深度学习模型,从 CPU 到 GPU 加速,Aliyun 推出的EAS模型推理平台在云原生模型推理领域深耕多年,旨在打造一个开放的高性能云原生模型推理平台,能够覆盖经典机器学习模型和深度学习模型对于在线推理的不同诉求,借助于阿里云的弹性底座来实现资源的动态弹性伸缩,降低用户成本。

背景


机器学习模型的在线推理在生产实践中扮演着非常重要的角色,从典型的互联网场景中的搜索,广告,推荐的召回排序,到实时的图像识别,语音识别,文本处理等领域,都需要涉及到模型的在线推理,从简单的逻辑回归模型到复杂的深度学习模型,从 CPU 到 GPU加速,Aliyun 推出的 EAS 模型推理平台在云原生模型推理领域深耕多年,旨在打造一个开放的高性能云原生模型推理平台,能够覆盖经典机器学习模型和深度学习模型对于在线推理的不同诉求,借助于阿里云的弹性底座来实现资源的动态弹性伸缩,降低用户成本。在推理引擎层面,EAS除自研的推理引擎支持外,同样兼容并包,支持诸如 Tensorflow Serving,Triton 等优秀的第三方推理引擎,本文我们将介绍如何使用 Nvidia 开源的Triton 推理引擎来部署服务到 EAS 上,以利用云原生推理平台的能力,更好地服务业务。


EAS 架构


EAS 在底层支持 CPU/GPU 等异常计算资源,上层基于 kubernetes 进行容器化资源管理和调度,在引擎层面上提供了基础的微服务接口,用户可以使用多种语言来开发推理微服务,实际上有很多用户对于该层微服务接口的使用也不再局限于模型推理,而是可以将更多业务逻辑的实现以该接口来实现。同时 EAS 也拥有一套自研的推理引擎和服务编排引擎,来实现复杂的流式的服务编排,特别是在视频和语音处理场景中,流式的架构能够极大提升服务性能。除自研的引擎和推理框架之外,EAS 也支持以自定义 docker 镜像的方式来部署服务,为用户提供足够的灵活性,基于该能力可以非常方便将开源的推理引擎部署到 EAS 平台上,如 Tensorflow Serving,Triton 等,能够快速满足已经使用这些引擎来部署过服务的用户快速迁移到云上。本文会以 Triton 为例介绍如何使用第三方推理引擎在云端部署模型推理服务。


服务部署


EAS 提供了 web 管理控制台可以对模型服务进行部署和管理,以及在线查看服务的监控日志等数据,同样 EAS 也提供了一个全功能的客户端工具 eascmd(https://help.aliyun.com/document_detail/195363.html),可以通过该工具实现对服务的部署和管理等操作,同时,所有的操作都有配套的openapi(https://help.aliyun.com/document_detail/412076.html)可以供用户更好地与自己的生产流程或内部业务平台做集成,本文中我们会以eascmd为例介绍如何部署 Triton 服务到 EAS 平台中。

在使用 eascmd 部署服务时,我们需要准备一个 json 格式的服务描述的配置文件,如下所示,相关参数说明在 eascmd 的使用文档中有详细介绍:

{

   "name": "triton_test",

   "processor": "triton",

   "processor_params": [

       "--model-repository=oss://triton-model-repo/models",

       "--allow-http=true"

   ],

   "metadata": {

       "instance": 1,

       "cpu": 4,

       "gpu": 1,

       "memory": 10000,

       "resource":""

 }

}

eas 中有一个概念为 processor,其含义为进去模型推理所需要执行的推理逻辑,EAS 平台基于自研的引擎提供了多种内置的 processor,同时也将三方引擎包装为 processor,如本例中 triton 即为一个 processor。使用如下命令即可在云端部署一个模型服务:

eascmd create service.json


服务管理及监控


使用 eascmd 或者控制台可以对服务进行查询管理运维等操作,如下界面为 eas 控制台,可对服务和资源进行全方位的管理

同时 eas 对每个服务采集了非常详尽的业务指标和系统指标以及支持用户自定义指标,可用于监控展示和告警,以及进行弹性伸缩。


高级功能介绍


EAS 提供了较多高级功能,包括微服务体系中的蓝绿发布,灰度发布,服务分组等功能,用户在模型部署过程中仅需提供模型文件,部署过程会自动构建镜像并进行部署,完成微服务化,并在集群内部服务之间互访时提供高效的内部通信接口等。接下来重点介绍一下较为重要的弹性伸缩功能,以及EAS在网络通信方面所做的优化。


自动水平扩缩容


在模型推理服务过程中,用户最为关注的除了性能之外往往是成本,而弹性是降低成本的很好的方式,这也是云端服务部署的独特优化,EAS 为用户提供了多种弹性伸缩的方式,包括支持系统指标如通用的 QPS,CPU Utilization 等,也包括用户自定义指标,借助于 EAS 的服务引擎和自研的Metrics Server,可以实例基于任意指标的弹性伸缩,同时EAS 也将指标以API的方式开放给外部用户,用户可以结合服务管控的 OpenAPI 来自定义弹性伸缩。

下图为一个开启了基于 CPU Ultilization 弹性伸缩的服务的监控页面,可以看到随着QPS曲线的上下波动,服务的实例个数以同样的趋势在上下波动,而 CPU Utilization 始终维持在预设置的 33% 左右,打开弹性伸缩后该服务能够节省 50% 的计算资源。不同服务的业务特点不同,流量低谷时长长于流量高峰的服务打开弹性伸缩后可以节省更多的计算资源。


直连的网络通信方式


EAS 通过打通用户 VPC 和 EAS 服务端的网络实现了服务的跨域直连请求,不再需要4层和 7 层的 Load Balancer,一方面避免了网关和 Load Balancer 带宽的限制,提升可扩展性,另一方面省掉了两次转发可以提供更好的通信性能。EAS 同时也支持经典的网关访问模式,提供了公网网关和内网网关,以及刚才提供到跨域直连三种访问方式,可供用户灵活选择,目前 EAS 的客户中大量的生产服务都使用直连的方式来进行服务访问。

上图为一个简单的网络架构图,EAS 提供了一个用于服务发现的 Service,配合该 Service 以及连通的网络,我们要以非常方便地在客户端通过软负载的方式直连到服务端发送请求,该架构下服务端的处理性能可以实现线性扩展。


关于PAI-EAS更多详细的功能,请参考文档:https://help.aliyun.com/document_detail/113696.html


相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
存储 数据采集 分布式计算
从 0 到 1 搭建大数据平台之数据采集系统
从 0 到 1 搭建大数据平台之数据采集系统
944 0
|
4月前
|
存储 监控 网络协议
百度基于金融场景构建高实时、高可用的分布式数据传输系统的技术实践
本文将通过一个百度搜索旗下的金融场景案例来分享构建高实时、高可用的分布式数据传输系统的技术实践。
52 0
|
12月前
|
运维 Cloud Native 中间件
《边缘云技术演进与发展白皮书》——五、边缘云分布式云管系统技术演进——01 分布式云管架构演进—— 4.云管第四阶段:生态支撑
《边缘云技术演进与发展白皮书》——五、边缘云分布式云管系统技术演进——01 分布式云管架构演进—— 4.云管第四阶段:生态支撑
135 0
|
存储 数据采集 运维
物联网设备数据是如何流转的:基于EMQX与TDengine的前后端分离项目实践
物联网设备数据是如何流转的:基于EMQX与TDengine的前后端分离项目实践
979 0
物联网设备数据是如何流转的:基于EMQX与TDengine的前后端分离项目实践
|
Kubernetes Cloud Native 持续交付
KubeMeet 直播 | 现场直击大规模集群、混合环境下的云原生应用交付难题
2022 年 1 月 15 日 由云原生基金会与阿里云同城会联合主办的 KubeMeet 「云原生应用交付与管理」专场开发者沙龙将在成都举办,同时,线上直播预约已开启,快参与到本次 KubeMeet 中吧!
KubeMeet 直播 | 现场直击大规模集群、混合环境下的云原生应用交付难题
|
5G 调度 图形学
3D实时云渲染系统搭建部署建设方案
依托于3D实时云渲染技术,目前这类平台对于很多设计或者影视特效公司来说,效率得到了极大的提升。在一些影视特效、动漫、设计、unity模型等领域,需要将设计好的模型呈现出来立体的效果,以前是在电脑上,利用本地设备性能去执行这项工作。而随着5G和云服务的发展,使用**云端服务器**来完成这些工作,可以大大提高其工作效率。
1044 0
3D实时云渲染系统搭建部署建设方案
|
边缘计算 运维 Kubernetes
OpenYurt 联手 eKuiper,解决 IoT 场景下边缘流数据处理难题
云计算的出现促使物联网实现爆炸式增长。在设备规模和业务复杂度不断攀升的趋势之下,边缘计算因其能够将计算能力更靠近网络边缘和设备,从而带来云性能成本的降低,也在这波浪潮之下得到快速发展。
259 0
OpenYurt 联手 eKuiper,解决 IoT 场景下边缘流数据处理难题
|
消息中间件 Cloud Native 数据库
端云互联 3.0 击破云原生开发的痛点
今天下午三点整开播,阿里云高级研发工程师在线解密云原生下如何高效开发!
1928 1
端云互联 3.0 击破云原生开发的痛点
|
机器学习/深度学习 存储 数据采集
一站式超大规模计算系统GraphScope | 直播回顾
GraphScope是阿里结合海量数据、丰富场景与智能引擎高水平研究成果而研发的图计算引擎,有一站式、开发便捷、性能极致等特点,已被证明在多个关键互联网领域实现重要的业务新价值。阿里巴巴阿里巴巴资深技术专家于文渊在阿里云开发者社区特别栏目《周二开源日》直播中,带大家入门GraphScope。本文为直播内容文字整理,看直播回放,请点击文首链接~
一站式超大规模计算系统GraphScope | 直播回顾
|
运维 前端开发 JavaScript
打破云和端的那堵墙,​Midway Serverless 带你感受云端一体应用研发
目前Midway Serverless 的云端一体方案已正式对社区发布并可用,大家可以进入 Midway Serverless 的 GitHub 仓库,查看云端一体方案的文档与使用方式。
打破云和端的那堵墙,​Midway Serverless 带你感受云端一体应用研发

热门文章

最新文章