📋 完整部署总结
一、硬件环境
| 组件 |
配置 |
| CPU |
鲲鹏920 × 4颗,共192核(ARM64架构) |
| NPU |
昇腾910B-64GB × 8卡(合计512GB HBM显存) |
| 系统内存 |
三星DDR4-3200 32GB × 32条 = 1TB |
| 操作系统 |
银河麒麟高级服务器系统(ARM64) |
| 服务器IP |
192.168.99.240 |
二、部署架构
┌─────────────────────────────────────────────────────────────────┐
│ 宿主服务器 (192.168.99.240) │
│ 操作系统: 银河麒麟 (ARM64) │
│ 硬件: 鲲鹏920 + 8×昇腾910B-64GB │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Docker 容器: vllm_deepseek_v4_8p │ │
│ │ 镜像: quay.io/ascend/vllm-ascend:v0.23.0rc1 │ │
│ │ 网络模式: host (--net=host) │ │
│ │ 共享内存: 500GB (--shm-size=500g) │ │
│ │ 服务端口: 8080 │ │
│ │ 模型路径: /data/DeepSeek-V4-Flash-0731-w8a8 │ │
│ │ 张量并行: 8卡 (--tensor-parallel-size 8) │ │
│ │ 上下文长度: 133072 (~130K) │ │
│ │ 最大并发: 32 (--max-num-seqs 32) │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ 模型服务: http://192.168.99.240:8080/v1 │
│ 模型名称: dsv4 │
│ 模型全称: DeepSeek-V4-Flash (w8a8量化版) │
└─────────────────────────────────────────────────────────────────┘
三、关键配置参数
环境变量
export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 # 使用全部8卡
export VLLM_USE_V1=1 # 启用vLLM V1引擎
export VLLM_ASCEND_APPLY_DSV4_PATCH=1 # DeepSeek V4补丁
export VLLM_ASCEND_ENABLE_FLASHCOMM1=1 # 启用Flash通信
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export OMP_NUM_THREADS=10
vLLM 服务参数
| 参数 |
值 |
说明 |
--port |
8080 |
服务端口 |
--tensor-parallel-size |
8 |
8卡张量并行 |
--max-model-len |
133072 |
最大上下文长度(~130K) |
--max-num-seqs |
32 |
最大并发请求数 |
--quantization |
ascend |
昇腾量化加载 |
--served-model-name |
dsv4 |
对外暴露的模型名称 |
四、OpenCode 配置(修正后)
"deepseek-v4-local": {
"source": "npm:@ai-sdk/openai-compatible",
"name": "DeepSeek V4 Flash (本地)",
"options": {
"baseURL": "http://192.168.99.240:8080/v1",
"apiKey": "EMPTY"
},
"models": {
"dsv4": {
"name": "DeepSeek-V4-Flash",
"limit": {
"context": 133072,
"output": 8192
},
"modalities": {
"input": ["text"],
"output": ["text"]
}
}
}
}
五、遇到的典型问题与解决方案
| 问题 |
原因 |
解决方案 |
| 模型加载失败 |
开启了MTP投机采样,但模型无MTP权重 |
移除 --speculative-config 参数 |
| 端口访问失败 |
配置中用 --port 8080,但访问了 8000 |
统一使用 8080 端口 |
| 模型名称不匹配 |
启动命令中 --served-model-name dsv4,但配置用了 dskv4_flash |
保持两边模型名称一致 |
| IP地址不一致 |
配置中用了 192.168.99.18,实际服务在 192.168.99.240 |
使用正确的IP地址 |
| SyntaxWarning警告 |
CANN工具包中代码注释的转义字符问题 |
可安全忽略,不影响运行 |
六、验证命令
# 1. 查看容器状态
docker ps | grep vllm_deepseek_v4_8p
# 2. 查看服务日志
docker logs --tail 50 vllm_deepseek_v4_8p
# 3. 测试模型列表
curl http://192.168.99.240:8080/v1/models
# 4. 测试推理
curl http://192.168.99.240:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "dsv4",
"prompt": "你好",
"max_tokens": 100
}'
七、当前状态
✅ 服务已正常运行
- 容器名:
vllm_deepseek_v4_8p
- 服务地址:
http://192.168.99.240:8080
- 模型名称:
dsv4 (DeepSeek-V4-Flash)
- 状态:
Running
八、后续建议
- 监控显存 :定期执行
npu-smi info 检查8张卡的显存使用情况
- 调整并发 :根据实际负载,可调整
--max-num-seqs 参数(当前32)
- 启用前缀缓存 :如果存在重复提示词场景,可启用
--enable-prefix-caching
- 版本升级 :关注
vllm-ascend 新版本,获取性能优化
总结:你已成功在鲲鹏+昇腾国产化硬件平台上,通过 Docker + vLLM-Ascend 部署了 DeepSeek-V4-Flash 大模型服务,并可通过 OpenAI 兼容 API 进行调用。整个过程验证了国产化 AI 算力栈在生产环境中的可行性。