Triton 云端生产实践

简介: 机器学习模型的在线推理在生产实践中扮演着非常重要的角色,从典型的互联网场景中的搜索,广告,推荐的召回排序,到实时的图像识别,语音识别,文本处理等领域,都需要涉及到模型的在线推理,从简单的逻辑回归模型到复杂的深度学习模型,从 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+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
12月前
|
小程序 JavaScript 关系型数据库
weixin118电影院订票选座系统设计及实现+ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的电影院订票选座系统。该系统采用WXML、WXS、JS小程序语言开发,结合微信开发者工具和MYSQL数据库,实现了便捷的订票选座功能。用户无需下载安装,通过微信即可快速访问,操作简单高效。系统分为用户与管理员两大模块,支持电影信息查询、在线选座、订单管理等功能,同时确保数据安全与用户体验。经过可行性分析、功能设计、测试等环节,系统表现出良好的稳定性、实用性和可扩展性,为用户提供了一个全面、便捷的订票平台。
|
9月前
|
数据采集 人工智能 监控
从 Agent 到模型推理:端到端的可观测性实践
本文探讨了AI领域的最新发展趋势及应用挑战,详细分析了模型、框架与应用场景的进展,并针对如何用好AI、节省资源与确保合规提出了见解。同时,文章深入剖析了AI应用的典型架构,强调实现端到端可观测性的关键步骤,包括全链路追踪与数据平台构建。此外,还介绍了阿里云提供的全栈可观测解决方案,以及Tracing技术的具体实现细节。通过对关键性能指标(如TTFT和TPOT)的监控,优化数据采集与探针性能,解决了Dify等平台的实际问题。最后,阐述了模型质量评估与Token黑洞监控的重要性,并展示了阿里云监控平台的统一观测能力,助力用户全面掌握AI应用表现。
|
11月前
|
Kubernetes 调度 异构计算
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
|
10月前
|
缓存 AI芯片
飞桨x昇腾生态适配方案:02_常用环境变量
本节介绍训练前建议设置的常用环境变量,涵盖NPU私有格式、在线编译、性能优化参数(如`aclnn_scale`和`aclnn_split`)、算子黑名单配置、NPU卡号指定、Paddle内存分配策略及日志设置等内容。通过合理配置这些变量,可有效提升训练性能并解决潜在问题。例如,关闭`FLAGS_npu_storage_format`以禁用NPU私有格式,或调整`ASCEND_MAX_OP_CACHE_SIZE`优化Kernel缓存大小。同时,CANN和Paddle的日志环境变量也提供了调试支持。
451 0
|
监控 Ubuntu 数据可视化
如何使用各种工具和命令来检查 Ubuntu 中的 CPU 使用情况?
如何使用各种工具和命令来检查 Ubuntu 中的 CPU 使用情况?
4731 0
如何使用各种工具和命令来检查 Ubuntu 中的 CPU 使用情况?
|
存储 缓存 人工智能
解码 LangChain | LangChain + GPTCache =兼具低成本与高性能的 LLM
GPTCache 是一个用于存储 LLM 响应的语义缓存层。它可以为 LLM 相关应用构建相似语义缓存,当相似的问题请求多次出现时,可以直接从缓存中获取,在减少请求响应时间的同时也降低了 LLM 的使用成本。
900 0
|
机器学习/深度学习 数据采集 人工智能
R语言是一种强大的编程语言,广泛应用于统计分析、数据可视化、机器学习等领域
R语言是一种广泛应用于统计分析、数据可视化及机器学习的强大编程语言。本文为初学者提供了一份使用R语言进行机器学习的入门指南,涵盖R语言简介、安装配置、基本操作、常用机器学习库介绍及实例演示,帮助读者快速掌握R语言在机器学习领域的应用。
984 3
|
存储 编解码 PyTorch
Transformers 4.37 中文文档(九十七)(1)
Transformers 4.37 中文文档(九十七)
254 1
|
人工智能 运维 Cloud Native
重磅解读阿里云云网络领域关键技术创新
2023年10月31日,杭州·云栖大会,阿里云技术主论坛带来了一场关于阿里云主力产品与技术创新的深度解读,阿里云网络产品线负责人祝顺民带来《云智创新,网络随行》的主题发言,针对阿里云飞天洛神云网络(下文简称洛神网络)领域产品服务创新以及背后的技术积累进行了深度解读,不少背后的创新技术系首次重磅披露。
129956 16
|
SQL 存储 关系型数据库
pg_rewind实现原理简单分析
pg_rewind的功能是在主备切换后回退旧主库上多余的事务变更,以便可以作为新主的备机和新主建立复制关系。本文简单介绍其实现原理。
2401 145

热门文章

最新文章