实现微服务与模型服务:Ray Serve 的应用指南
1. Ray Serve 微服务架构概述
Ray 最初是为实现强化学习而创建的框架,后来逐渐演变成成熟的无服务器平台。Ray Serve 最初作为更好地服务机器学习模型的方式引入,如今已发展成为成熟的微服务框架。Ray 微服务架构(Ray Serve)基于 Ray 利用 Ray 参与者(actors)实现,一个 Serve 实例由三种参与者组成:
- 控制器(Controller) :每个 Serve 实例唯一的全局参与者,管理控制平面,负责创建、更新和销毁其他参与者,所有 Serve API 调用都通过它执行。
- 路由器(Router) :每个节点有一个路由器,是 Uvicorn HTTP 服务器,接受传入请求,转发给副本,并在请求完成后响应。
- 工作副本(Worker replica) :响应请求执行用户定义的代码,每个副本处理来自路由器的单个请求。
用户定义的代码通过 Ray 部署(deployment)实现,它是 Ray 参与者的扩展,具有额外功能。
2. 部署基础示例:温度控制器
下面是一个简单的温度控制器部署示例:
@serve.deployment
class Converter:
def __call__(self, request):
if request.query_params["type"] == 'CF' :