新人刚进,给大家分享最近部署的一点点经验,关于qwen3.5 122b部署在昇腾910B4服务器上,刚好对未来比较迷茫,想问问大家

2026-04-11 11:401阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

内网ARM服务器部署Qwen3.5 122B模型实录

设备:8张昇腾910B4卡,NPU驱动25.2.3,ARM架构,内网离线环境
目标:跑通Qwen3.5-122B-A10B

一、环境确认,前置条件

  • 架构uname -m → 必须输出 aarch64,否则后面所有镜像都得重新选。
  • NPU状态npu-smi info → 确认8张卡都在,健康状态OK,驱动版本记下来。
  • Dockerdocker version → 最好20.10以上。

二、镜像选择

quay.io/ascend/vllm-ascend-v0.17.0rc1,适配Qwen3.5、miniMax 2.5 awq

这是华为官方适配昇腾NPU的vLLM镜像,内置了CANN、torch_npu、vllm-ascend插件,不需要下载任何环境。

下载到内网(外网有Windows电脑的情况):

bash

# 在外网Docker Desktop上(使用windows电脑是可以的,但是Docker Desktop要开启实验功能) docker pull --platform linux/arm64 quay.io/ascend/vllm-ascend:v0.17.0rc1 #一定要加--platform linux/arm64 docker save -o D:\vllm-arm64.tar 镜像ID # 把tar文件拷到内网服务器 docker load -i vllm-arm64.tar docker tag 镜像ID vllm-ascend:0.17 docker inspect --format='{{.Architecture}}' 镜像名 #确认镜像架构

注意:导出时如果报NotFound: content digest sha256:...,改用docker save -o xx.tar --platform=linux/arm64 镜像名或直接用镜像ID导出。

三、docker-compose.yml 模板(针对4卡/8卡)

我最后稳定运行的配置长这样(以8卡为例,模型路径按实际改):

yaml

version: '1.0' services: vllm: image: vllm-ascend:0.17 # 你导入的镜像 container_name: vllm restart: unless-stopped shm_size: 64g # MoE模型需要更大共享内存 ports: - "8180:8180" devices: - /dev/davinci0 - /dev/davinci1 - /dev/davinci2 - /dev/davinci3 - /dev/davinci4 - /dev/davinci5 - /dev/davinci6 - /dev/davinci7 - /dev/davinci_manager - /dev/devmm_svm - /dev/hisi_hdc volumes: - /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro - /usr/local/dcmi:/usr/local/dcmi:ro - /usr/local/bin/npu-smi:/usr/local/bin/npu-smi:ro - /etc/ascend_install.info:/etc/ascend_install.info:ro - /root/.cache:/root/.cache #缓存路径,可以新建换成服务器的 - /home/user/models:/models/ #模型挂在路径 environment: - LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:$LD_LIBRARY_PATH - SOC_VERSION=ascend910b4 - PYTORCH_NPU_ALLOC_CONF=max_split_size_mb:32 command: > python -m vllm.entrypoints.openai.api_server --model /models/Qwen3.5-122B #模型挂在路径,注意名字 --tensor-parallel-size 8 #八卡运行 --dtype bfloat16 --trust-remote-code --max-model-len 16384 #上下文长度,必须设置超过Claude的范围,好像是4000多 --gpu-memory-utilization 0.95 #显存最大利用率 --port 8180 --served-model-name qwen3.5-122b #模型起名,不然无法使用claude,这能解决Claude之前“找不到模型”的问题,让模型名固定下来。 --enable-auto-tool-choice #允许模型自主决定什么时候该“写代码”或“看文件”。 --tool-call-parser qwen3_coder #告诉 vLLM 如何理解 Qwen 模型输出的特殊工具格式。

几个容易踩的坑

  • –max-model-len 16384 要超过claude设置的4000,不然claude无法处理上下文
  • –served-model-name qwen3.5-122b 这是为了可以在ccswitch中使用模型,不然claude找不到
  • ccswitch中配置claude的APIURL的时候要设置成:http://ip:端口/v1/messages,一定要加上messages,不然识别不到,因为是openai的

四、模型准备:下载、导入、挂载

4.1 下载模型(外网)

bash 我是用git拉的,稳定一定,也比较慢,在魔搭社区上,点击下载模型,里面有具体命令

# 跳过LFS大文件(只拉配置) GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/xxx/model.git cd model git lfs pull --include="*.safetensors" # 按需拉权重

4.2 打包传输到内网

bash

tar -czvf model.tar.gz model_folder/ # 拷到内网后 tar -xzvf model.tar.gz -C /home/user/models/

五、启动与验证

bash

# 启动容器 docker-compose up -d # 看日志 docker-compose logs -f vllm # 测试API curl http://localhost:8180/v1/models curl http://localhost:8180/v1/completions \ -H "Content-Type: application/json" \ -d '{"model": "/models/Qwen3.5-122B", "prompt": "你好", "max_tokens": 50}' # 检查NPU占用 docker exec vllm npu-smi info

六、Claude、CCSwitch

  • Claude,CCSwitch离线安装前置条件:node v18以上,git版本
  • 离线安装 npm install -g ./anthropic-ai-claude-code-x.x.x.tgz --offline
  • CCSwitch 配置好APIURL 和模型就好,token随便填,一定要按照docker-compose里面的模型名字来
网友解答:
--【壹】--:

对 公司的


--【贰】--:

性能我感觉一般,总感觉离线模型,再怎么跑也一般,vllm-ascend 到没啥问题,挺稳定的


--【叁】--:

没有物理机路过


--【肆】--:

性能如何? 特别是vllm-ascend现在稳定么?


--【伍】--:

实际效果怎么样


--【陆】--:

整机成本多少,单卡什么价位


--【柒】--:

性能测试暂时还没做,我感觉docker-compose里面有很多命令不太了解


--【捌】--:

没有玩过这么高端的机器,加油大佬


--【玖】--:

可以加个性能测试环节


--【拾】--:

感谢大佬


--【拾壹】--:

查了下,单卡 10-12 万


--【拾贰】--:

我个人感觉一般

标签:人工智能
问题描述:

内网ARM服务器部署Qwen3.5 122B模型实录

设备:8张昇腾910B4卡,NPU驱动25.2.3,ARM架构,内网离线环境
目标:跑通Qwen3.5-122B-A10B

一、环境确认,前置条件

  • 架构uname -m → 必须输出 aarch64,否则后面所有镜像都得重新选。
  • NPU状态npu-smi info → 确认8张卡都在,健康状态OK,驱动版本记下来。
  • Dockerdocker version → 最好20.10以上。

二、镜像选择

quay.io/ascend/vllm-ascend-v0.17.0rc1,适配Qwen3.5、miniMax 2.5 awq

这是华为官方适配昇腾NPU的vLLM镜像,内置了CANN、torch_npu、vllm-ascend插件,不需要下载任何环境。

下载到内网(外网有Windows电脑的情况):

bash

# 在外网Docker Desktop上(使用windows电脑是可以的,但是Docker Desktop要开启实验功能) docker pull --platform linux/arm64 quay.io/ascend/vllm-ascend:v0.17.0rc1 #一定要加--platform linux/arm64 docker save -o D:\vllm-arm64.tar 镜像ID # 把tar文件拷到内网服务器 docker load -i vllm-arm64.tar docker tag 镜像ID vllm-ascend:0.17 docker inspect --format='{{.Architecture}}' 镜像名 #确认镜像架构

注意:导出时如果报NotFound: content digest sha256:...,改用docker save -o xx.tar --platform=linux/arm64 镜像名或直接用镜像ID导出。

三、docker-compose.yml 模板(针对4卡/8卡)

我最后稳定运行的配置长这样(以8卡为例,模型路径按实际改):

yaml

version: '1.0' services: vllm: image: vllm-ascend:0.17 # 你导入的镜像 container_name: vllm restart: unless-stopped shm_size: 64g # MoE模型需要更大共享内存 ports: - "8180:8180" devices: - /dev/davinci0 - /dev/davinci1 - /dev/davinci2 - /dev/davinci3 - /dev/davinci4 - /dev/davinci5 - /dev/davinci6 - /dev/davinci7 - /dev/davinci_manager - /dev/devmm_svm - /dev/hisi_hdc volumes: - /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro - /usr/local/dcmi:/usr/local/dcmi:ro - /usr/local/bin/npu-smi:/usr/local/bin/npu-smi:ro - /etc/ascend_install.info:/etc/ascend_install.info:ro - /root/.cache:/root/.cache #缓存路径,可以新建换成服务器的 - /home/user/models:/models/ #模型挂在路径 environment: - LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:$LD_LIBRARY_PATH - SOC_VERSION=ascend910b4 - PYTORCH_NPU_ALLOC_CONF=max_split_size_mb:32 command: > python -m vllm.entrypoints.openai.api_server --model /models/Qwen3.5-122B #模型挂在路径,注意名字 --tensor-parallel-size 8 #八卡运行 --dtype bfloat16 --trust-remote-code --max-model-len 16384 #上下文长度,必须设置超过Claude的范围,好像是4000多 --gpu-memory-utilization 0.95 #显存最大利用率 --port 8180 --served-model-name qwen3.5-122b #模型起名,不然无法使用claude,这能解决Claude之前“找不到模型”的问题,让模型名固定下来。 --enable-auto-tool-choice #允许模型自主决定什么时候该“写代码”或“看文件”。 --tool-call-parser qwen3_coder #告诉 vLLM 如何理解 Qwen 模型输出的特殊工具格式。

几个容易踩的坑

  • –max-model-len 16384 要超过claude设置的4000,不然claude无法处理上下文
  • –served-model-name qwen3.5-122b 这是为了可以在ccswitch中使用模型,不然claude找不到
  • ccswitch中配置claude的APIURL的时候要设置成:http://ip:端口/v1/messages,一定要加上messages,不然识别不到,因为是openai的

四、模型准备:下载、导入、挂载

4.1 下载模型(外网)

bash 我是用git拉的,稳定一定,也比较慢,在魔搭社区上,点击下载模型,里面有具体命令

# 跳过LFS大文件(只拉配置) GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/xxx/model.git cd model git lfs pull --include="*.safetensors" # 按需拉权重

4.2 打包传输到内网

bash

tar -czvf model.tar.gz model_folder/ # 拷到内网后 tar -xzvf model.tar.gz -C /home/user/models/

五、启动与验证

bash

# 启动容器 docker-compose up -d # 看日志 docker-compose logs -f vllm # 测试API curl http://localhost:8180/v1/models curl http://localhost:8180/v1/completions \ -H "Content-Type: application/json" \ -d '{"model": "/models/Qwen3.5-122B", "prompt": "你好", "max_tokens": 50}' # 检查NPU占用 docker exec vllm npu-smi info

六、Claude、CCSwitch

  • Claude,CCSwitch离线安装前置条件:node v18以上,git版本
  • 离线安装 npm install -g ./anthropic-ai-claude-code-x.x.x.tgz --offline
  • CCSwitch 配置好APIURL 和模型就好,token随便填,一定要按照docker-compose里面的模型名字来
网友解答:
--【壹】--:

对 公司的


--【贰】--:

性能我感觉一般,总感觉离线模型,再怎么跑也一般,vllm-ascend 到没啥问题,挺稳定的


--【叁】--:

没有物理机路过


--【肆】--:

性能如何? 特别是vllm-ascend现在稳定么?


--【伍】--:

实际效果怎么样


--【陆】--:

整机成本多少,单卡什么价位


--【柒】--:

性能测试暂时还没做,我感觉docker-compose里面有很多命令不太了解


--【捌】--:

没有玩过这么高端的机器,加油大佬


--【玖】--:

可以加个性能测试环节


--【拾】--:

感谢大佬


--【拾壹】--:

查了下,单卡 10-12 万


--【拾贰】--:

我个人感觉一般

标签:人工智能