本文介绍如何将 DAS 平台的 vLLM 镜像(海光 DCU 版)迁移到超算互联网(SCNet)Notebook 平台使用,并以 Qwen3-0.6B 为例完成推理部署验证。全文按步骤操作即可复现,文末提供可复用的适配 Dockerfile,后续 DAS 发布新镜像时一条命令即可完成迁移。
一、准备工作
开始前请确认:
- 一台可访问 DAS 镜像仓库、安装了 Docker 的机器(用于拉取和改造镜像)
- 超算互联网(https://www.scnet.cn )账号
- 了解 SCNet 的《构建镜像规则》(迁移的关键依据,下文会逐步用到)
为什么需要改造镜像? SCNet 对 Notebook 镜像有明确的组件约定,外部镜像必须先补齐再上传:
| 组件 | 平台要求 |
|---|---|
| SSH(openssh-server) | 预装,host key 齐全,用于 SSH 登录容器 |
| SUDO | 预装,用于权限切换 |
| Jupyter | 必须位于固定路径 /opt/conda/bin/jupyter,实例启动时按此路径扫描,扫不到则创建失败 |
二、第一步:从 DAS 拉取镜像
DAS(多源镜像管理平台,地址:https://pypi.sourcefind.cn/docker )提供各类推理镜像的浏览和检索。以 vLLM 0.28.1rc1 的海光 DCU 版为例,在平台找到目标镜像后,按给出的地址拉取:
1 | docker pull 42.228.13.241:666/jenkins/model_test_env/vllm:0.28.1rc1-ubuntu22.04-dtk26041-py3.10-sf_b075-20261008-0403 |
镜像基本信息:
- 约 8.6 GB,基于 Ubuntu 22.04 + Python 3.10
- dtk26041:海光 DCU 软件栈
- 内置
vllm 0.28.1+dtk2604和vllm-hcu平台插件
三、第二步:用 Dockerfile 改造镜像
将以下 Dockerfile 保存为 vllm-scnet.Dockerfile。基础镜像通过 ARG 参数化,以后 DAS 出新版镜像只需改 --build-arg 一个参数:
1 | # vllm-scnet.Dockerfile |
各步骤说明:
- SSH/SUDO:平台登录容器和权限管理的必需组件
- SSH 配置:生成 host key(
ssh-keygen -A)、创建运行目录、关闭 UseDNS、注释 pam_nologin,均为官方规则要求的动作 - JupyterLab:pip 安装;
--break-system-packages兜底新版 Python 的 PEP 668 限制 - 软链接:平台只扫描
/opt/conda/bin/jupyter,链接后构建期立即验证,装不好直接构建失败 ENTRYPOINT []:vLLM 镜像自带ENTRYPOINT ["vllm", "serve"],必须清除,否则会干扰平台启动容器
执行构建和验证:
1 | # 构建 |
四、第三步:上传并在 SCNet 创建镜像
- 登录 SCNet 控制台 → 文件管理,将
vllm-scnet-0.28.1rc1.tar.gz上传到个人主目录 - 进入 容器服务 → 镜像管理 → 我的镜像 → 创建镜像,填写:
- 镜像名称:如
vllm-028(创建后不可修改) - 适配加速卡:异构加速卡(dtk 对应 DCU;创建后不可修改,注意别选错)
- 使用区域:选择 DCU 所在区域
- 镜像来源:选择镜像包,指定刚上传的 tar.gz 路径
- SSH 服务:已安装
- 开发工具:添加 Jupyter,软件路径填
/opt/conda/bin/jupyter - 环境标签(可选):框架 vLLM、Python py3.10
- 镜像名称:如
- 提交后在镜像详情 → 版本页签查看构建进度,等待完成
- 后续镜像更新时,在同一镜像条目里新增版本即可,无需重建条目
五、第四步:创建 Notebook 并启动
- 控制台 → 人工智能 → Notebook → 创建 Notebook
- 开发镜像选择”我的镜像”,选中刚创建的 vLLM 镜像;区域和加速卡类型与镜像配置保持一致
- 创建完成后通过 JupyterLab 或 SSH 进入容器,确认环境:
1 | rocm-smi # 查看 DCU:显存、温度、功耗 |
⚠️ 提示:vLLM 首次 import 时 HCU 插件和 torch 初始化较慢(1~3 分钟),属正常现象,请耐心等待。
六、第五步:部署模型验证(以 Qwen3-0.6B 为例)
1. 准备模型
两个途径任选:
- SCNet AI 社区:在 AI 社区的模型库查找所需模型并克隆
- 自行下载:放到持久化目录
/root/private_data(个人数据,不受实例开关机影响),国内推荐用 ModelScope:
1 | pip install modelscope -i https://pypi.tuna.tsinghua.edu.cn/simple |
注意:模型不要打进镜像(平台镜像上限 50GB),放持久化目录即可。
2. 启动 vLLM 服务
1 | nohup vllm serve /root/private_data/models/Qwen3-0.6B \ |
等待日志出现 Application startup complete. 即服务就绪。启动过程中可以关注这些关键输出:
1 | Platform plugin hcu is activated ← HCU 插件激活 |
从启动配置可见模型默认按 BF16 精度加载(dtype=torch.bfloat16, quantization=None),未做量化。
3. API 验证
1 | # 查看模型列表 |
返回正常的聊天补全结果,即部署成功。如需从平台外部访问服务,可在 Notebook 列表页使用”访问自定义服务”功能映射 8000 端口。
七、部署其他模型
本文用 0.6B 小模型演示完整流程。部署 Qwen3-32B、DeepSeek 等更大模型时(涉及张量并行、多卡、量化等配置),请参考海光官方推理实践仓库,按对应模型的配方调整启动参数:
https://github.com/HYGON-AI/inference-cookbook-das
镜像和迁移流程完全复用本文方法。常用参数备忘:
--tensor-parallel-size N:多卡张量并行--gpu-memory-utilization 0.9:显存利用率--served-model-name <名称>:自定义 API 中的模型名
八、流程总结
| 步骤 | 操作 | 关键点 |
|---|---|---|
| 1. 找镜像 | DAS(https://pypi.sourcefind.cn/docker )检索并拉取 | 确认 tag 中的 dtk 版本 |
| 2. 改造镜像 | Dockerfile 构建 | Jupyter 链接到 /opt/conda/bin/jupyter、SSH/SUDO 按规则配置、清 ENTRYPOINT |
| 3. 上传创建 | 文件管理传 tar → 镜像管理创建 | 适配加速卡选”异构加速卡”,开发工具配 Jupyter 路径 |
| 4. 启动 | 创建 Notebook 选”我的镜像” | 区域与加速卡类型匹配 |
| 5. 验证 | vllm serve + curl |
模型放 /root/private_data,等 Application startup complete |
按以上步骤操作,即可完成 DAS vLLM 镜像到超算互联网的迁移和海光 DCU 上的推理部署。