Triton 云端生产实践

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*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
0
0
0
3618
分享
相关文章
weixin118电影院订票选座系统设计及实现+ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的电影院订票选座系统。该系统采用WXML、WXS、JS小程序语言开发,结合微信开发者工具和MYSQL数据库,实现了便捷的订票选座功能。用户无需下载安装,通过微信即可快速访问,操作简单高效。系统分为用户与管理员两大模块,支持电影信息查询、在线选座、订单管理等功能,同时确保数据安全与用户体验。经过可行性分析、功能设计、测试等环节,系统表现出良好的稳定性、实用性和可扩展性,为用户提供了一个全面、便捷的订票平台。
阿里云服务器实例规格怎么选?经济型、通用算力型、计算型、通用型、内存型场景化选购指南
阿里云服务器的实例规格有经济型、通用型、计算型、内存型、通用算力型、大数据型、本地SSD型、高主频型、突发型、共享型等不同种类的实例规格,以满足不同用户和业务场景的需求。对于初次接触阿里云服务器的用户来说,如何选择合适的实例规格成为了一个重要的问题。本文将为大家解析阿里云的经济型、通用算力型、计算型、通用型和内存型实例规格的主要性能和适用场景情况,帮助用户根据实际需求选择合适的云服务器实例。
354 10
NVIDIA Triton系列12-模型与调度器2
本文介绍了NVIDIA Triton服务器的“集成推理”功能,涵盖“集成模型”与“集成调度器”两部分,通过示例说明了如何构建一个包含图像预处理、分类和语义分割的推理流水线,强调了模型间数据张量的连接与处理,以及配置集成模型和调度器的具体步骤。
148 1
NVIDIA Triton系列12-模型与调度器2
NVIDIA Triton系列06-安装用户端软件
本文介绍了 NVIDIA Triton 推理服务器的用户端软件安装方法,包括源代码编译、可执行文件、Docker 容器和 Python 版用户端。重点讲解了 Python 用户端的安装和使用,通过示例展示了如何使用 `image_client` 工具进行图像分类推理请求。
150 0
NVIDIA Triton系列06-安装用户端软件
探索Linux命令之nm:解析二进制文件的神器
`nm`命令是Linux下分析二进制文件的工具,显示符号表中的函数、变量等信息及它们的地址和类型。它帮助理解程序结构、调试和优化,支持不同符号类型、输出选项和过滤。常用参数如`-a`显示所有符号,`-t f`列出定义的函数。在实际应用中,可以结合其他工具如`objdump`、`readelf`进行更深入的分析,并注意备份原始文件。
解码 LangChain | LangChain + GPTCache =兼具低成本与高性能的 LLM
GPTCache 是一个用于存储 LLM 响应的语义缓存层。它可以为 LLM 相关应用构建相似语义缓存,当相似的问题请求多次出现时,可以直接从缓存中获取,在减少请求响应时间的同时也降低了 LLM 的使用成本。
620 0
重磅解读阿里云云网络领域关键技术创新
2023年10月31日,杭州·云栖大会,阿里云技术主论坛带来了一场关于阿里云主力产品与技术创新的深度解读,阿里云网络产品线负责人祝顺民带来《云智创新,网络随行》的主题发言,针对阿里云飞天洛神云网络(下文简称洛神网络)领域产品服务创新以及背后的技术积累进行了深度解读,不少背后的创新技术系首次重磅披露。
129020 16
Autojs未解决的终极问题(未解决)
Autojs未解决的终极问题(未解决)
144 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问