背景描述
本文以 NVIDIA L20 环境为例,介绍如何在平台中部署 Qwen3.8-27B,并通过《模型网关》和《模型体验》完成文本对话和图片文字识别。
操作包括准备模型文件和推理镜像、创建推理引擎、部署模型、配置 AI 服务提供者及网关路由、验证文本对话和图片文字识别。
使用 2 张 NVIDIA L20、8 核 CPU、64 GiB 内存,部署 1 个副本。
前提条件
- 已具备目标项目的模型、推理引擎、部署和网关管理权限。
- 已初始化项目命名空间,并分配足够的项目配额。
- 有可调度的 NVIDIA L20 资源;本例每个副本使用 2 张 NVIDIA L20、8 核 CPU 和 64 GiB 内存。
- 环境能够从 ModelScope 导入模型,或已准备好对应的完整模型文件。
- 环境中镜像仓库已上传
hub.ecns.io/engines/vllm-openai:v0.29.0。
本例部署配置
| 配置项 | 本例取值 |
|---|---|
| 模型来源 | ModelScope:Qwen/Qwen3.8-27B |
| 平台模型名称 | Qwen3.8-27B |
| 模型文件大小 | 约 51.8 GiB |
| 推理引擎名称 | qwen-vllm-3.8-27b,新建时可自定义名称 |
| 引擎类型/架构 | vLLM/X86(amd64) |
| 推理镜像 | hub.ecns.io/engines/vllm-openai:v0.29.0 |
| CPU/内存 | 8 核/64 GiB |
| AI 加速卡 | NVIDIA-L20 × 2;本环境每张卡可用显存为 44 GiB |
| 张量并行 | --tensor-parallel-size 2 |
| 副本数 | 1 |
| 自定义环境变量 | 无;部署页面另行填写 SERVED_MODEL_NAME |
| KV Cache 内存卸载 | 不启用 |
| 模型容器路径 | /mnt/models |
| 容器服务端口 | 8000 |
| 服务模型名称 | Qwen3.8-27B |
| AI 服务提供者类型/API 规范 | 内部/OpenAI |
| 网关路由名称/域名 | all-in-one/ai.beacon.ai,其他环境可自定义 |
| 路由模型名称/后端模型名称 | Qwen3.8-27B/Qwen3.8-27B |
为什么本例使用两张 AI 加速卡
本例模型文件大小约为 51.8 GiB。本环境切分后分配的每张 NVIDIA L20 资源可用显存为 44 GiB。按本例模型和加载配置,单张卡显存不足,因此为同一个部署副本分配 2 张 NVIDIA L20,并设置 --tensor-parallel-size 2,通过张量并行在两张卡上加载和运行模型。
模型文件大小是存储占用,不能直接等同于运行时显存占用。推理还需要为 KV Cache、计算中间结果等预留显存;实际需求也会受加载精度、上下文长度和并发量影响。本文记录的是本环境已运行成功的双卡配置,不将其作为所有部署方式的最低配置。
操作步骤
1. 准备推理镜像
在《容器镜像服务》中准备推理镜像 hub.ecns.io/engines/vllm-openai:v0.29.0,确认目标项目可以使用该镜像,且运行节点能够拉取。
如果需要转存至其他环境,保持镜像内容和版本一致。在《镜像管理》页面进入镜像详情页按平台要求添加 vllm、nvidia 分类标签,创建引擎时选择 X86 架构、vLLM 类型和 NVIDIA L20。
本例使用的是 vllm-openai 镜像。复现时应使用记录的镜像及后文启动参数。
2. 初始化项目并设置配额
- 项目管理员进入《模型广场》,按提示完成命名空间初始化;已经初始化的项目可跳过。
- 在《配额管理》中分配本次部署所需的 CPU、内存和 AI 加速卡配额,容器规格按环境选择安全容器服务对应配置。
- 确认剩余配额及目标节点可用资源满足 8 核 CPU、64 GiB 内存、2 张 NVIDIA L20。两张卡需能分配给同一个部署副本;项目内已有其他模型时,应按剩余资源核对。
3. 导入模型文件
- 进入《模型仓库》,选择
公共仓库后,单击创建导入任务,选择从 ModelScope 导入。 - 输入
原始链接的内容为https://www.modelscope.cn/models/Qwen/Qwen3.8-27B,点击解析链接,按环境带宽限制需求输入限速大小,点击创建导入任务。 - 等待导入完成,在《模型仓库》核对模型文件状态为
就绪、处理阶段为成功。
4. 创建推理引擎
进入《推理引擎》,单击
创建推理引擎。填写引擎名称,例如
qwen-vllm-3.8-27b。引擎可见性选择
公有引擎,类型选择vLLM。CPU 设为
8,内存设为64,AI 加速卡选择NVIDIA-L20,数量设为2,架构选择X86。选择镜像
hub.ecns.io/engines/vllm-openai:v0.29.0。在“启动命令”中按下面的分行形式填写(已默认填充):
vllm serve /mnt/models在“启动参数”中按下面的分行形式填写:
--served-model-name $(SERVED_MODEL_NAME) --port 8000 --enable-prompt-tokens-details --tensor-parallel-size 2自定义环境变量留空,点击
创建,完成创建。
以上两段分别粘贴到页面的“启动命令”和“启动参数”字段,每个参数或参数值独占一行。$(SERVED_MODEL_NAME) 是容器启动参数中的变量引用,按原样填写,不要直接粘贴到本机 Shell 中执行。后续部署页面会提供变量值。
/mnt/models 对应部署时挂载的模型文件路径;8000 是容器服务端口。--tensor-parallel-size 的值为 2,应与本例每个副本分配的两张 AI 加速卡保持一致。页面可能随卡数量自动填入该参数,提交前核对最终参数即可,避免重复添加。
5. 创建并部署模型
- 进入《模型广场》,点击
新建模型,填写名称为Qwen3.8-27B,选择模型可见性为公有模型,模型文件选择绑定已有模型文件,模型文件选择步骤3导入的模型文件,推理引擎选择步骤4创建的推理引擎,点击创建模型。 - 单击《模型广场》列表中
Qwen3.8-27B卡片中的部署按钮,在新建模型部署的弹框中填写部署名称,例如Qwen3.8-27b-deploy,副本数为1。 推理引擎和模型文件会根据新建模型时选择的引擎和模型文件自动填入。- 核对模型文件信息与
步骤3所导入的模型文件信息一致;核对页面展示的镜像、命令、参数及资源与步骤4一致。 KV Cache 内存卸载选择不启用。SERVED_MODEL_NAME填写Qwen3.8-27B,LoRA 微调模型保持为空。- 本例配置以继承上述引擎配置为基线,无需另外设置高级覆盖项。如已有部署设置了覆盖项,需展开“高级配置”核对最终命令、参数和环境变量。
- 单击
创建,等待状态变为就绪。核对副本数为 1,实例运行正常。
SERVED_MODEL_NAME 会由平台注入部署容器,并由引擎中的 --served-model-name 引用。
本例部署包含 1 个 Pod,阶段为 Running、就绪为 1/1、重启次数为 0。1/1 表示 Pod 内容器就绪情况,不是 GPU 数量。
模型启动或加载异常时,可在部署详情的状态、日志、终端页排查。
6. 创建 AI 服务提供者
- 进入《AI 服务提供者》,单击
创建AI服务提供者。 - 填入
名称,例如Qwen3.8-27b-deploy,服务类型选择内部。 选择部署选择步骤5创建的模型部署,核对平台生成的访问地址,点击创建,完成创建。- 确认提供者状态为
就绪。
7. 配置模型网关
进入《模型网关》,创建路由或编辑已有路由。
本例路由名称为
all-in-one,二级域名填写ai,页面与环境域名后缀beacon.ai拼接为ai.beacon.ai。其他环境按实际域名后缀填写;已有该路由时,编辑并添加本模型即可。添加以下模型与后端映射:
字段 取值 对外模型名称 Qwen3.8-27B后端 Qwen3.8-27b-deploy后端模型名称 Qwen3.8-27B优先级 0权重 1保存并确认路由就绪。
8. 准备 API Key
《模型体验》页面需要填写 API Key。已有可用密钥时可直接使用;需要新建时:
- 进入《套餐管理》,创建套餐,“可访问路由”选择上述路由
all-in-one,按需设置调用限制。 - 进入《API Key》,创建密钥并绑定该套餐。
- 签发后保存密钥,后续在《模型体验》或 API 请求中使用。
在模型体验中验证
1. 验证文本对话
进入《模型体验》,选择
对话。填写有效 API Key。
路由选择
all-in-one,模型选择Qwen3.8-27B。输入以下内容,单击
发送:hello等待模型返回回答。本例返回的最终回答为:
Hello! How are you doing? Is there something I can help you with today?
复现时回答文字可能不同,以请求成功且返回合理回答为核对依据。
2. 验证图片文字识别
进入《模型体验》,切换到
视觉/OCR。填写有效 API Key。
在
选择图片中上传待识别图片。本例图片内容为文字“模型体验”;复测时可自行准备包含其他字的清晰图片。路由选择
all-in-one,模型选择Qwen3.8-27B。输入提示词:
识别文字单击
识别,等待返回识别结果。核对最终识别文字与图片内容一致。本例返回的最终识别文字为:
模型体验
本例对话和图片文字识别的回答区域还显示了思考文本和 </think> 标记,以上示例仅列出最终回答部分。
约束与注意事项
- 镜像与参数保持一致:本例使用
hub.ecns.io/engines/vllm-openai:v0.29.0,启动参数包含--tensor-parallel-size 2。更换镜像版本或启动方式后需重新验证。 - 双卡用于单个副本:本例为 8 核 CPU、64 GiB 内存、2 张 NVIDIA L20、1 个副本。每张卡在本环境中显示 44 GiB 显存,两张卡配合张量并行运行同一个模型副本。
- 核对最终生效参数:模型部署可以覆盖引擎配置。排查时同时检查引擎和部署的高级配置,确保最终张量并行参数与分配卡数一致。
- 验证范围:本文验证文本对话和单张图片文字识别的完整访问流程,不将上述验证结果作为吞吐、并发或复杂文档识别效果的评测结论。