GenStudio 推出 Infini 编码套餐(Coding Plan)GenStudio 推出 Infini 编码套餐(Coding Plan) ,接入多家顶尖厂商的主流编程模型了解更多
Skip to content

使用 SGLang 部署推理服务

SGLang(Structured Generation Language)是一个创新的高性能 LLM 推理运行系统,在处理高并发的在线服务(online serving)时能实现极高吞吐量,同时也为大规模的离线推理(offline inference)提供了卓越的批处理性能。在 AIStudio 推理服务中,是部署 LLM 在线服务的理想选择。

注意

本文不适用于部署分布式推理服务。

模型部署前检查清单

部署模型服务前,请务必确认以下关键技术要求:

  • 框架版本依赖:确认模型依赖的所有框架版本。版本不匹配是导致服务启动失败或推理出错的最常见原因之一。
  • 框架参数配置:仔细阅读模型的官方文档或训练说明,了解必须配置的特定参数(如 tensor_parallel_size, max_model_len 等)
  • 硬件规格要求:明确模型所需的 GPU 型号(如 NVIDIA A100,H100 等)以及最低显存(VRAM)需求。如果硬件资源不足,将无法加载模型或导致推理速度极慢。
  • 运行环境镜像:容器镜像决定运行环境,根据服务需求,可能需要包含 CUDA、推理框架(如 PyTorch、vLLM、SGLang)等依赖。如果平台预置镜像不满足要求,建议构建自定义镜像

关键前置步骤:准备容器镜像

由于网络合规性要求,平台无法直接访问 DockerHub 等公共外网镜像仓库,且平台预置的基础镜像可能无法涵盖您所需的所有最新软件组合。

您可以先前往镜像中心,评估平台预置镜像是否满足需求。

若平台预置镜像不满足您的版本需求,请务必先通过以下方式准备环境:

重要

请勿依赖推理服务启动命令临时安装大型软件。

基本流程

使用 AIStudio 预置推理镜像部署服务,主要遵循以下步骤:

  1. 准备模型文件:将需要部署的模型文件上传至共享高性能存储。建议通过 AICoder 上传或下载模型。

  2. 选择合适的算力资源实例规格。如需帮助,详见推理服务标准部署流程

  3. 选择合适的 SGLang 版本(取决于模型对 SGLang 版本的要求,可参考模型发布说明)。

    • 建议使用 SGLang 最新稳定版。我们提供了直接可用的 Dockerfile,参考构建 SGLang 镜像
    • 如果预置镜像中 SGLang 版本满足要求,也可选择预置镜像。
  4. 配置启动命令,启动命令的核心作用是启动 SGLang 进行推理。以下启动命令示例使用 SGLang 启动了一个 OpenAI 兼容的 API 服务器。

    shell
    #!/bin/bash
    
    # --- 1. 设置环境变量 ---
    export PYTHONUNBUFFERED=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} --host 0.0.0.0 --port 30000 --enable-metrics --context-length 262144

    注意

    如何编写启动命令

    • 启动命令是容器创建后要执行的命令,平台会自动用 /bin/bash -c 来执行。
    • 保持前台运行:命令必须占据前台,否则容器会立即退出。
      • 如果启动命令运行完毕,容器主进程就会退出。例如启动命令 echo hello 执行完毕,容器立即退出。
      • 如将 SGLang 放入后台运行,会导致 bash 立即退出。
    • 若命令行太长或逻辑复杂,可考虑在镜像内(或挂载的共享高性能存储中)放置启动脚本,并在启动命令中调用。
  5. 配置存储时,请务必挂载包含模型文件的共享高性能存储,确保启动命令可访问该模型文件。如需帮助,详见推理服务标准部署流程

  6. 填写外网配置内网配置。内网监听端口号必须于 SGLang --port 参数值一致。如需帮助,详见推理服务标准部署流程

    注意

    如需平台直接采集引擎暴露的 Production Metrics,需要确保启动参数包含 --enable-metrics,并确保在创建服务时配置监控端口(后续无法修改)。详见 LLM 场景业务监控

确认创建好,平台根据配置拉取镜像、启动实例并运行启动命令。部署成功后,即可通过配置的网络地址访问服务。

查看日志与排错

如果服务部署失败或运行异常:

  • 查看部署进度:在服务列表或详情页,检查部署状态和子步骤是否有错误信息。
  • 查看实例日志:进入服务详情页,找到运行实例,点击查看实时日志或历史日志。如果容器过快退出,导致无法抓取日志,可在启动命令最后添加 sleep inf 保留现场。常见问题包括:
    • 模型路径不存在或权限问题。
    • 模型文件损坏或不兼容所选镜像的框架版本。
    • 资源不足(如 GPU 显存)。
  • 访问服务:服务部署成功后,使用内网或外网地址进行访问测试。