使用 SGLang 部署推理服务
SGLang(Structured Generation Language)是一个创新的高性能 LLM 推理运行系统,在处理高并发的在线服务(online serving)时能实现极高吞吐量,同时也为大规模的离线推理(offline inference)提供了卓越的批处理性能。在 AIStudio 推理服务中,是部署 LLM 在线服务的理想选择。
注意
本文不适用于部署分布式推理服务。
模型部署前检查清单
部署模型服务前,请务必确认以下关键技术要求:
- 框架版本依赖:确认模型依赖的所有框架版本。版本不匹配是导致服务启动失败或推理出错的最常见原因之一。
- 框架参数配置:仔细阅读模型的官方文档或训练说明,了解必须配置的特定参数(如
tensor_parallel_size,max_model_len等) - 硬件规格要求:明确模型所需的 GPU 型号(如 NVIDIA A100,H100 等)以及最低显存(VRAM)需求。如果硬件资源不足,将无法加载模型或导致推理速度极慢。
- 运行环境镜像:确认平台是提供包含了所有依赖的预设镜像,还是需要您构建自定义镜像。如需构建自定义镜像,我们提供了直接可用的 Dockerfile,参考构建 SGLang 镜像。
基本流程
使用 AIStudio 预置推理镜像部署服务,主要遵循以下步骤:
准备模型文件:将需要部署的模型文件上传至共享高性能存储。建议通过 AICoder 上传或下载模型。
选择合适的算力资源与实例规格。如需帮助,详见推理服务标准部署流程。
选择合适的 SGLang 版本(取决于模型对 SGLang 版本的要求,可参考模型发布说明)。
- 建议使用 SGLang 最新稳定版。我们提供了直接可用的 Dockerfile,参考构建 SGLang 镜像。
- 如果预置镜像中 SGLang 版本满足要求,也可选择预置镜像。
配置启动命令,启动命令的核心作用是启动 SGLang 进行推理。以下启动命令示例使用 SGLang 启动了一个 OpenAI 兼容的 API 服务器。
shell#!/bin/bash # --- 1. 设置环境变量 --- export MODEL=Qwen3-30B-A3B-Instruct-2507 # 模型标识符 (与下方 ln 命令目标一致) # --- 2. 准备模型路径 --- # 假设共享存储已挂载,访问路径为的 /mnt/models # 模型位置为 /mnt/models/modelscope/Qwen3-30B-A3B-Instruct-2507 mkdir -p /app/model ln -s /mnt/models/modelscope/Qwen3-30B-A3B-Instruct-2507 /app/model/${MODEL} # --- 3. 启动 SGLang ,命令必须占据前台,否则容器会立即退出--- python3 -m sglang.launch_server --model-path /app/model/${MODEL} --context-length 262144注意
如何编写启动命令:
- 启动命令是容器创建后要执行的命令,平台会自动用
/bin/bash -c来执行。 - 保持前台运行:命令必须占据前台,否则容器会立即退出。
- 如果启动命令运行完毕,容器主进程就会退出。例如启动命令
echo hello执行完毕,容器立即退出。 - 如将 SGLang 放入后台运行,会导致 bash 立即退出。
- 如果启动命令运行完毕,容器主进程就会退出。例如启动命令
- 若命令行太长或逻辑复杂,可考虑在镜像内(或挂载的共享高性能存储中)放置启动脚本,并在启动命令中调用。
- 启动命令是容器创建后要执行的命令,平台会自动用
配置存储时,请务必挂载包含模型文件的共享高性能存储,确保启动命令可访问该模型文件。如需帮助,详见推理服务标准部署流程。
填写外网配置和内网配置。内网监听端口号必须于 SGLang
--port参数值一致。如需帮助,详见推理服务标准部署流程。
确认创建好,平台根据配置拉取镜像、启动实例并运行启动命令。部署成功后,即可通过配置的网络地址访问服务。
查看日志与排错
如果服务部署失败或运行异常:
- 查看部署进度:在服务列表或详情页,检查部署状态和子步骤是否有错误信息。
- 查看实例日志:进入服务详情页,找到运行实例,点击查看实时日志或历史日志。如果容器过快退出,导致无法抓取日志,可在启动命令最后添加
sleep inf保留现场。常见问题包括:- 模型路径不存在或权限问题。
- 模型文件损坏或不兼容所选镜像的框架版本。
- 资源不足(如 GPU 显存)。
- 访问服务:服务部署成功后,使用内网或外网地址进行访问测试。