AWS推出Ray Serve深度学习容器,为TorchServe用户提供迁移路径
TorchServe已停止维护,AWS新发布的Ray Serve DLC将推理栈预装为可即时使用的镜像,并给出在EKS单GPU节点上部署Qwen3-VL模型的完整示例。
AI解读:TorchServe官方已宣布停止维护,不再提供更新、漏洞修复或安全补丁,这意味着还在用它跑推理的团队得自己维护整个GPU依赖链:从CUDA版本到PyTorch兼容性,再到每一层的安全漏洞,全都得自己盯着。这是一大堆跟业务无关的脏活累活。
AWS这次推出的Ray Serve深度学习容器(DLC)就是想接住这批用户:镜像里已经帮你把GPU驱动、PyTorch、Ray Serve和常见工具链打包测试好了,安全补丁也在构建时打上。你不用再自己拼Dockerfile,也不用写TorchServe那套handler和配置文件,拉下来就能跑。
对正在用TorchServe的团队来说,这等于给了一条省心的迁移路——升级从改代码变成换个镜像标签。不过要留意,目前跑通的是单GPU节点上的示例,如果你想做多节点分布式推理,还得自己基于KubeRay往上搭。
普通读者如果没在维护推理服务,这事暂时跟你无关,不用急着行动。真正该评估的是那些依赖TorchServe的工程团队:趁AWS还在维护这个新容器,尽早规划迁移,免得自己扛下所有兼容性包袱。
AWS发布面向推理场景的Ray Serve深度学习容器(Deep Learning Container,DLC),将GPU栈、PyTorch、Ray Serve及常见多模态工具预装为经过测试的镜像,为停止维护的TorchServe提供迁移路径。官方博客以在Amazon EKS单GPU节点上部署Qwen3-VL-2B视觉语言模型为例演示了用法。
TorchServe停止维护,团队需自行承担依赖链
AWS在博客中援引TorchServe官方项目公告称,该项目已不再积极维护,没有计划中的更新、漏洞修复、新功能或安全补丁,漏洞可能不会被处理。这意味着现有TorchServe用户将失去安全补丁,以及与新版PyTorch和CUDA的兼容性更新。
- 工程师需要自行处理整个依赖链:跨GPU栈挑选兼容版本、修补各层漏洞、排查组件漂移引发的故障。AWS称这类工作无法为最终产品增值。
Ray Serve DLC的镜像构成与发布形态
Ray Serve DLC的CPU版本基于Amazon Linux 2023基础镜像,GPU版本基于NVIDIA官方Amazon Linux 2023镜像,包含操作系统层和CUDA运行时库。镜像在上层加入PyTorch深度学习框架、带FastAPI和Uvicorn的Ray Serve服务层,以及面向视觉、音频和多模态任务的常用工具,其中包括带NVIDIA硬件加速编译的FFmpeg用于视频预处理。所有组件在每次发布前都经过联合验证测试,构建时统一应用安全补丁。
- 镜像按运行环境分开发布:面向Amazon EKS和Amazon EC2、面向Amazon SageMaker各有独立镜像及适配的入口点,底层栈与依赖相同。镜像标签列表见Ray DLC可用镜像页面。
在EKS单GPU节点上部署Qwen3-VL模型
博客提供的示例使用Ray Serve DLC的GPU版本服务Qwen3-VL-2B视觉语言模型。服务应用通过ConfigMap注入容器,便于在不重建镜像的情况下修改服务代码。
- 示例中,模型端点是一个带@serve.deployment装饰器的Python类,实现__call__处理HTTP请求并用.bind()注册,整个服务逻辑位于qwen_serve.py。相比TorchServe,这省去了自定义handler、torch-model-archiver打包步骤和config.properties配置文件。
- 代码用ray_actor_options={"num_gpus": 1}指定部署使用一个GPU,模型以float16精度加载,适配A10G GPU的24 GB显存。
- 部署环境为含单个g5.xlarge实例的EKS集群,该实例配备一块NVIDIA A10G GPU、24 GB显存,为单节点推理架构:一个pod、一块GPU。多节点分布式服务(跨机器模型并行或多副本水平扩展)需基于该基础使用KubeRay编排。
- 配套脚本包括:deploy_cluster.sh用eksctl创建带VPC网络、OIDC提供方和核心附加组件的EKS集群;deploy_node_group.sh添加带g5.xlarge实例且标签为role=gpu-worker的托管GPU节点组;deploy_ray_cluster.sh应用含qwen_serve.py的ConfigMap、部署Pod到GPU节点并在端口8000启动Ray Serve。
- 验证方式:用kubectl get pods和kubectl describe pod检查GPU分配,kubectl port-forward转发后通过curl向http://127.0.0.1:8000发送含image_url和prompt的JSON请求,返回模型生成的图片描述。
- 注意:Pod报告Ready后还需一两分钟模型加载,首次请求可能被拒绝,应稍候重试;清理资源需按删除Ray Serve部署、GPU节点组、EKS集群的逆序执行。