使用预置推理镜像部署服务
AIStudio 推理服务功能提供了预置的优化推理镜像,集成了如 FastChat 和 vLLM 等常用框架,旨在帮助用户简化部署流程,快速上线大模型推理服务。本文详细描述了如何选择和使用这些预置镜像来部署服务。
基本流程
使用 AIStudio 预置推理镜像部署服务,主要遵循以下步骤:
- 准备模型文件:将需要部署的模型文件上传至共享高性能存储。预置镜像通常需要模型已存在于存储中,不会自动下载。
- 创建推理服务:在创建过程中:
- 选择合适的算力资源与实例规格。
- 在「配置服务与镜像」步骤中,选择镜像来源为预置镜像,并挑选合适的镜像版本(例如包含 vLLM 的镜像)。
- 配置启动命令,利用预置镜像提供的脚本和环境变量。
- 配置存储,挂载包含模型文件的共享高性能存储。
- 配置网络访问(内外网)。
- 配置启动命令:核心在于设置环境变量,并通过软链接将共享存储中的模型映射到镜像内脚本预期的路径。
- 部署与访问:平台根据配置拉取镜像、启动实例并运行启动命令。部署成功后,即可通过配置的网络地址访问服务。
选择预置镜像
在创建推理服务的「配置服务与镜像」步骤中,从预置镜像列表中选择。平台会提供不同版本、集成不同框架(如 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)。您需要在启动命令中:
- 设置环境变量:配置模型、并行度、资源限制等。
- 准备模型路径:使用
ln -s
命令将共享存储中的模型目录链接到镜像内脚本期望的位置。 - 调用入口脚本。
关键环境变量
以下是使用 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}
部分完全一致。 - 如需了解预置镜像支持的所有环境变量和高级用法,请参考相关文档或镜像说明。
📖 推理服务:使用 FastChat 和vLLM 部署大语言模型
查看日志与排错
如果服务部署失败或运行异常:
- 查看部署进度:在服务列表或详情页,检查部署状态和子步骤是否有错误信息。
- 查看实例日志:进入服务详情页,找到运行实例,点击查看实时日志或历史日志。日志中通常会包含
entrypoint.sh
脚本的输出、vLLM 或 FastChat 的报错信息,是定位问题的关键。常见问题包括:- 环境变量配置错误。
- 模型路径
ln -s
命令失败(源路径不存在或权限问题)。 - 模型文件损坏或不兼容所选镜像的框架版本。
- 资源不足(如 GPU 显存)。
- 访问服务:服务部署成功后,使用内网或外网地址进行访问测试。