GenStudio 预计于 2025 年 5 月 推出 GenStudio 高级版/企业版升级服务,可付费调用预置 LLM API,GenStudio 预计于 2025 年 5 月 推出 GenStudio 高级版/企业版升级服务,可付费调用预置 LLM API, ,大幅提升 API 调用频率查看预告
Skip to content

使用预置推理镜像部署服务

AIStudio 推理服务功能提供了预置的优化推理镜像,集成了如 FastChat 和 vLLM 等常用框架,旨在帮助用户简化部署流程,快速上线大模型推理服务。本文详细描述了如何选择和使用这些预置镜像来部署服务。

基本流程

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

  1. 准备模型文件:将需要部署的模型文件上传至共享高性能存储。预置镜像通常需要模型已存在于存储中,不会自动下载。
  2. 创建推理服务:在创建过程中:
    • 选择合适的算力资源实例规格
    • 在「配置服务与镜像」步骤中,选择镜像来源预置镜像,并挑选合适的镜像版本(例如包含 vLLM 的镜像)。
    • 配置启动命令,利用预置镜像提供的脚本和环境变量。
    • 配置存储,挂载包含模型文件的共享高性能存储。
    • 配置网络访问(内外网)。
  3. 配置启动命令:核心在于设置环境变量,并通过软链接将共享存储中的模型映射到镜像内脚本预期的路径。
  4. 部署与访问:平台根据配置拉取镜像、启动实例并运行启动命令。部署成功后,即可通过配置的网络地址访问服务。

选择预置镜像

在创建推理服务的「配置服务与镜像」步骤中,从预置镜像列表中选择。平台会提供不同版本、集成不同框架(如 vLLM)和依赖(CUDA, PyTorch 版本)的镜像。

常用预置镜像示例:

  • cr.infini-ai.com/infini-ai/inference-base:v1-vllm0.4.0-torch2.1-cuda12.3-ubuntu22.04
  • cr.infini-ai.com/infini-ai/inference-base:v2-vllm0.6.2-torch2.2-cuda12.3-ubuntu22.04 (推荐,更新的 vLLM 版本)

NOTE

请根据您的模型兼容性和性能需求,选择合适的镜像标签。镜像标签通常会注明关键组件的版本信息。

配置启动命令

预置推理镜像(特别是基于 FastChat + vLLM 的)通常包含一个入口脚本(如 /app/entrypoint.sh),该脚本会根据环境变量来启动必要的服务(Controller, OpenAI API Server, vLLM Worker)。您需要在启动命令中:

  1. 设置环境变量:配置模型、并行度、资源限制等。
  2. 准备模型路径:使用 ln -s 命令将共享存储中的模型目录链接到镜像内脚本期望的位置。
  3. 调用入口脚本

关键环境变量

以下是使用 inference-base:v2 镜像时常用的环境变量(请参考具体镜像文档获取完整列表):

  • 必需:

    • MODEL: 您为模型指定的名称标识符。此名称必须与 ln -s 命令的目标路径中的名称一致。例如:qwen2.5-0.5b-instruct
    • TP (Tensor Parallelism): Tensor 并行大小,通常设置为实例规格中的 GPU 数量。例如:1 (单卡), 2 (双卡)。
  • 常用可选 (带默认值):

    • GPU_MEMORY_UTILIZATION: GPU 显存使用率上限(0.0 到 1.0)。默认通常为 0.90
    • MAX_MODEL_LEN: 模型支持的最大序列长度。根据模型能力调整。
    • MAX_NUM_SEQS: vLLM Worker 能处理的最大并发请求数。默认通常为 256
    • LOG: 是否启用详细日志。 1 为启用 (默认),0 为禁用。
  • 其他可选 (可能需要显式设置):

    • ENABLE_LORA=True: 启用 LoRA 支持。
    • LORA_MODELS=...: 配置 LoRA 模型。
    • (更多高级 vLLM 参数,如 BLOCK_SIZE, PREFIX_CACHING 等)

启动命令模板

以下是使用 inference-base:v2 预置镜像的典型启动命令模板:

bash
#!/bin/bash

# --- 1. 设置环境变量 ---
#    (必需)
export MODEL=qwen2.5-0.5b-instruct   # 模型标识符 (与下方 ln 命令目标一致)
export TP=1                        # Tensor 并行大小 (根据实例 GPU 数量设置)

#    (常用可选,按需修改)
# export GPU_MEMORY_UTILIZATION=0.90
# export MAX_MODEL_LEN=4096          # 根据您的模型调整
# export MAX_NUM_SEQS=256

# --- 2. 准备模型路径 ---
#    假设您的模型存放在共享存储的 /mnt/public/models/Qwen2.5-0.5B-Instruct
#    将其软链接到镜像内脚本期望的 /app/model/${MODEL} 路径
#    请确保源路径 (/mnt/public/...) 是您实际存放模型的路径且已在 Step 2 中挂载
ln -s /mnt/public/models/Qwen2.5-0.5B-Instruct /app/model/${MODEL}

# --- 3. 执行镜像内置的启动脚本 ---
#    此脚本会读取环境变量并启动 FastChat + vLLM 服务
/app/entrypoint.sh

TIP

  • 请务必将 /mnt/public/models/Qwen2.5-0.5B-Instruct 替换为您实际存放模型文件的路径(该路径必须是在服务配置的 "Step 2 配置存储" 中挂载的共享存储路径)。
  • 请确保 export MODEL 的值与 ln -s 命令的目标目录名 /app/model/${MODEL} 中的 ${MODEL} 部分完全一致。
  • 如需了解预置镜像支持的所有环境变量和高级用法,请参考相关文档或镜像说明。

查看日志与排错

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

  • 查看部署进度:在服务列表或详情页,检查部署状态和子步骤是否有错误信息。
  • 查看实例日志:进入服务详情页,找到运行实例,点击查看实时日志或历史日志。日志中通常会包含 entrypoint.sh 脚本的输出、vLLM 或 FastChat 的报错信息,是定位问题的关键。常见问题包括:
    • 环境变量配置错误。
    • 模型路径 ln -s 命令失败(源路径不存在或权限问题)。
    • 模型文件损坏或不兼容所选镜像的框架版本。
    • 资源不足(如 GPU 显存)。
  • 访问服务:服务部署成功后,使用内网或外网地址进行访问测试。