LLMDeployASCEND · DEPLOYMENT NOTESView on GitHub ↗
DOCUMENTATION / 昇腾部署实践

镜像迁移与依赖编译

优先:迁移已有镜像

固定运行镜像 ID:sha256:f9bb675777595e2b3783c4b1cc6e683e4e9db2c39cc562d2be93d1b5e21cccdd。

在已有镜像的机器导出到独立文件,传到新机器后导入。文件和校验文件不进入 Git:

docker save local/dsv41flash1017:ops071-cann920-r1 -o runtime-image.tar
sha256sum runtime-image.tar > runtime-image.tar.sha256
# 将这两个文件传到目标机;传输方式由操作者配置。
sha256sum -c runtime-image.tar.sha256
docker load -i runtime-image.tar
docker image inspect local/dsv41flash1017:ops071-cann920-r1 --format '{{.Id}}'

导入后必须核对 image ID。最终镜像包含 DSL 框架和三组原生算子;两处 vLLM 补丁保存在本仓,启动时应用在容器可写层。宿主机 CANN 仍需只读挂载,不能仅搬镜像。

从固定基础镜像重新编译 DSL 算子

基础镜像引用与平台 manifest 均在 recipe.json。不能将 manifest digest、image config ID 与导出 tar 的 SHA256 混为一谈。

docker pull --platform linux/arm64 quay.io/ascend/vllm-ascend@sha256:6663aec974511e6a63d1c6510503537ed83cd524c6866050b6001fc89aa386c6
docker image inspect quay.io/ascend/vllm-ascend@sha256:6663aec974511e6a63d1c6510503537ed83cd524c6866050b6001fc89aa386c6 --format '{{.Id}}'

已用基础 image ID 是 sha256:70c3a5e7087afbe99e4d625e429a65e47f3975b405eead2a247dac7be2625689。请核对后再继续。

将以下输入放进被忽略的 downloads/:

在 Linux 仓库目录执行,下列构建容器只使用 CPU,不映射 NPU。构建耗时、资源及输出大小需要操作者按目标环境确认:

mkdir -p local/build
docker run --name llmdeploy-ops-build --network none --cpus 16 --memory 32g \
  -v "$PWD:/deployment:ro" -v "$PWD/downloads:/deps:ro" \
  -v "$PWD/local/build:/build" \
  -v /usr/local/Ascend/cann-9.2.0:/usr/local/Ascend/cann-9.2.0:ro \
  -e ASCEND_TOOLKIT_HOME=/usr/local/Ascend/cann-9.2.0 \
  -e HOME=/build/home -e OMP_NUM_THREADS=1 -e CARGO_BUILD_JOBS=16 -e MAX_JOBS=16 \
  --entrypoint /bin/bash \
  sha256:70c3a5e7087afbe99e4d625e429a65e47f3975b405eead2a247dac7be2625689 \
  --noprofile --norc /deployment/build/build_ops.sh

新建且空的 local/build 目录用于一次构建;已存在的构建结果应保留,另选目录。目标为 dav-3510,算子为 mqsmla qli qsli,同时检查三个 metadata 模块导入。local/build/result.json 必须是 PASS_BUILD_AND_IMPORT_ONLY 且构建容器退出码为 0,才保存镜像:

docker inspect llmdeploy-ops-build --format '{{.State.ExitCode}}'
docker commit llmdeploy-ops-build local/dsv41flash1017:rebuilt-ops071
docker image inspect local/dsv41flash1017:rebuilt-ops071 --format '{{.Id}}'

重新构建的 image ID 通常不同。把核验后的新 ID 写入 local/host.json,记录实际版本,再验证补丁和完整服务;不能沿用旧镜像的验收结论。历史生成算子 wheel 的 SHA 只是原产物身份,不承诺逐位可复现。

本仓的构建包装脚本依据已有成功编译命令整理;本次抽取未重跑编译。PASS_BUILD_AND_IMPORT_ONLY 也不等于模型可推理,仍需启动后的功能检查。

本文源于仓库文档 · 查看 Markdown 源文件
仅分享已使用经验;新环境与新工件需重新验证。敏感信息不提供。