昇腾ascend-knowledg-graph在vLLM-Ascend上部署Qwen-3-0.6b模型
昇腾知识图谱 + vLLM-Ascend 部署 Qwen3-0.6B 模型实战
本文讲解: 借力昇腾知识图谱 (Ascend KG) 外脑, 让 AI Agent 一句话完成 vLLM-Ascend 部署 Qwen3-0.6B 推理服务的端到端任务。
适用: 昇腾平台工程师 / 想要快速验证模型在 NPU 上推理效果的业务方
一、准备
1.1 你需要准备 2 件事
| 准备项 | 说明 | 耗时 |
|---|---|---|
| 1. 一台 NPU 服务器 | 至少 1 张昇腾 NPU (本例: 8× Ascend 910B3, 64GB HBM) | 已有 |
| 2. 一个接入了昇腾知识图谱的 Agent | Claude Code / Cursor / Cline + 系统提示词预注入 | 5 分钟 |
接入方法参考: 如何给 Agent 注入昇腾 KG (CSDN 教程) — 一份主流博客, 详细说明在 Agent 系统提示词里粘贴 KG API 接入规则, 让 Agent 知道"有外脑可用"。
1.2 任务指令 (1 行)
在 Agent 对话框输入:
“帮我在这台 NPU 服务器上部署 Qwen3-0.6B 模型的 vLLM-Ascend 推理服务”
按下回车后, Agent 便会自动规划整个流程。下方 4 张截图记录了 Agent 真实执行过程。
二、推理部署
2.1 阶段一: 环境与版本检查 (图 1)
图 1 解读: Agent 收到任务后, 先并行做环境探测 (Python / CANN / NPU 设备) + 拉取 KG 的
vllm-ascend-deploySkill 全文。
关键判断: vllm 0.18.0 要求 torch 2.10.0, 但 vllm-ascend 0.18.0 要求 torch 2.9.0 — 版本不兼容, Agent 自动调整到 torch 2.9.0 + CANN 8.5.0 + nnal/ATB 组合 (这是 KG Skill 沉淀的"已知正确"版本三元组)。
Agent 在这一步做的事:
- 加载
kg-agent-orientation路由中枢 (6 路径速查) - 加载
kg-skill-index-vllm-tilelang分类 (含 vllm-ascend-deploy 技能) - 加载
vllm-ascend-deploySkill 全文 (含版本对应表) - 探测本地环境:
python --version/pip list | grep -iE "vllm|torch"/npu-smi info - 输出推荐版本组合: torch 2.9.0 + torch_npu 2.9.0 + vllm 0.18.0 + vllm-ascend 0.18.0 + CANN 8.5.0 (含 nnal/ATB)
KG 价值: 大模型本身记不住 vllm / vllm-ascend / torch / CANN 之间的版本对应关系, KG 上的 Skill 把这些踩坑都沉淀好了。Agent 不需要从训练数据猜, 直接调
/source {"node_id":"vllm-ascend-deploy"}拿到方法论。
图 2 解读: Agent 在尝试启动 vLLM 时, 连续遇到 2 个版本冲突问题, 全部由 Agent 自动调取 KG 知识 + 本地命令验证后解决。
关键点: KG 帮助 Agent 走对了"先验证 → 再装包 → 再调环境变量"的标准流程, 没有让 Agent 卡在报错循环里。
Agent 自动诊断和修复:
| 问题 | 根因 | Agent 调取的资源 | 修复 |
|---|---|---|---|
/usr/local/Ascend/nnal/ 为空, 缺 libatb.so |
标准 nnal 安装目录无 ATB 库 | nnal-environment-config Skill 提示 “ATB 库可能在 /home/pkg/CANN-x.x.x/nnal/atb/” |
export LD_LIBRARY_PATH=/home/pkg/CANN-8.5.0/nnal/atb/8.5.0/atb/cxx_abi_1/lib:$LD_LIBRARY_PATH |
setuptools 82.0.1 移除了 pkg_resources |
vLLM 旧版依赖 pkg_resources |
pip 错误信息 + 知识库 | pip install setuptools<81==80.10.2 |
KG 价值: 如果没有 KG, 用户只能去昇腾论坛 / GitHub issues 手动搜; 有了 KG, Agent 直接调 Skill 拿到已知解决方案 + 推荐命令, 平均省 2-3 小时。
2.3 阶段三: 启动 vLLM 服务 (图 3)
图 3 解读: Agent 终于把 vLLM 服务启动起来了, 但遇到一个 NPU 显存分配的细节问题: 0.8 × 60.96GB = 48.77GB > 实际可用 38.35GB。Agent 自动调整
--gpu-memory-utilization 0.5, 服务顺利起来。
关键点: Qwen3-0.6B 模型仅 1.4GB, 0.5 显存利用率完全够用 — Agent 是基于"模型大小 + NPU 显存"实时算的, 不是凭默认值。
最终启动命令 (Agent 自动生成并执行的):
source /home/pkg/CANN-8.5.0/cann-8.5.0/set_env.sh
export LD_LIBRARY_PATH=/home/pkg/CANN-8.5.0/nnal/atb/8.5.0/atb/cxx_abi_1/lib:$LD_LIBRARY_PATH
export ASCEND_RT_VISIBLE_DEVICES=1
export VLLM_USE_NPU=1
export VLLM_PLUGINS=ascend
python -m vllm.entrypoints.openai.api_server \
--model /home/z60124773/models/Qwen/Qwen3-0___6B \
--served-model-name Qwen3-0.6B \
--dtype bfloat16 \
--gpu-memory-utilization 0.5 \
--max-model-len 4096 \
--enforce-eager \
--host 0.0.0.0 \
--port 8001 \
--trust-remote-code
关键参数解读:
--gpu-memory-utilization 0.5: 显存利用率 50%, 避开 “可用不足” 报错--enforce-eager: 跳过 ACL Graph 编译 (避开npu_add_rms_norm_bias的 SmallVector 溢出 segfault)--trust-remote-code: Qwen3 需要信任自定义代码 (transformers 模型类)--max-model-len 4096: 上下文长度, Qwen3-0.6B 训练时支持 32K, 但推理时 4K 够用且省显存
2.4 阶段四: 服务验证 + 实际推理 (图 4)
图 4 解读: Agent 启动服务后, 自动跑 3 项验证:
/v1/models拉模型列表、/v1/chat/completions真实推理、curl 客户端测试。整个流程 Agent 完全自主完成, 没人参与调试。
Agent 执行的 3 项验证:
| 验证项 | 命令 | 期望 |
|---|---|---|
| 模型列表 | curl http://localhost:8001/v1/models |
返回 Qwen3-0.6B |
| Chat 推理 | curl -X POST http://localhost:8001/v1/chat/completions -d '{"model":"Qwen3-0.6B","messages":[...], "max_tokens": 50}' |
返回生成文本 |
| 性能数据 | vllm.log 中的 token/s 输出 |
数十 token/s |
实际推理示例 (Agent 验证用):
curl http://localhost:8001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3-0.6B",
"messages": [{"role": "user", "content": "你好, 请用一句话介绍昇腾 NPU"}],
"max_tokens": 100,
"temperature": 0.7
}'
期望返回:
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1749132000,
"model": "Qwen3-0.6B",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "昇腾 NPU 是华为自研的 AI 加速芯片, 配合 CANN 软件栈可以高效运行深度学习推理和训练任务。"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 18,
"completion_tokens": 38,
"total_tokens": 56
}
}
三、方案总结: 整个流程只用一句话 + 4 步
3.1 全流程一句话回顾
| 阶段 | Agent 自动完成的事 | 耗时 | KG 调用次数 |
|---|---|---|---|
| 1. 环境检查 | 拉 4 个 Skill + 跑 5 条本地探测命令 | 1 分钟 | 4 次 /source |
| 2. 解决兼容 | 调 Skill 看 nnal/ATB 路径 + pip 降级 setuptools | 2 分钟 | 2 次 /source + 2 次 pip install |
| 3. 启动服务 | 计算显存利用率 + 写启动脚本 | 1 分钟 | 0 次 (本地命令) |
| 4. 验证服务 | 跑 3 项 curl 测试 | 1 分钟 | 0 次 (本地命令) |
| 合计 | 5 分钟 | 6 次 KG 调用 |
3.2 与传统部署对比
| 维度 | 传统人工 | 借力 KG 的 Agent |
|---|---|---|
| 找版本对应表 | 翻 GitHub issues / 论坛, 1-2 小时 | KG Skill 1 次, 1 秒 |
| 处理 nnal/ATB 缺失 | 群里问 / 工单, 半天 | KG 直接给路径, 1 秒 |
| setuptools 降级 | 搜 “vllm pkg_resources”, 30 分钟 | 错误信息 + 常识, 1 秒 |
| 显存利用率 | 翻官方文档, 10 分钟 | 实时算, 1 秒 |
| enforce-eager | 翻 vllm 文档, 20 分钟 | 错误信息反向定位, 1 秒 |
| 总耗时 | 半天-1 天 | 5 分钟 |
3.3 关键收获
- 版本对齐是核心: torch / vllm / vllm-ascend / CANN / nnal-ATB 五者必须版本对齐, 这套版本三元组 (torch 2.9.0 + CANN 8.5.0 + ATB) 是 KG Skill 沉淀的"已知正确"组合
- nnal/ATB 库可能不在标准路径: 默认
/usr/local/Ascend/nnal/是空的, 真实 ATB 库在/home/pkg/CANN-x.x.x/nnal/atb/..., 必须 export LD_LIBRARY_PATH - 0.5 显存利用率够用: Qwen3-0.6B 仅 1.4GB, 默认 0.8 容易触发 NPU 显存分配失败
- enforce-eager 兜底: NPU 8.5.0 + ATB 的 ACL Graph 编译有 bug, 跳过 graph 模式保稳
3.4 一句话经验
“给 Agent 一句话任务 + 一个能调 KG 的工具, 它能在 5 分钟内完成工程师半天的工作量。”
四、参考资源
| 资源 | 链接 |
|---|---|
| Agent 接入 KG 教程 (CSDN) | https://blog.csdn.net/zjl1991309/article/details/162064464?spm=1001.2014.3001.5501 |
| 昇腾 KG 服务 | http://47.110.229.78 |
| vLLM-Ascend 官方仓 | https://gitee.com/ascend/vllm-ascend |
| 昇腾官方文档 | https://www.hiascend.com/document |
附录: 4 张截图速查
| 截图 | 阶段 | 关键事件 |
|---|---|---|
| 图 1 | 环境检查 | 加载 4 个 Skill, 输出推荐版本三元组 |
| 图 2 | 解决兼容 | 处理 nnal/ATB + setuptools 2 个版本问题 |
| 图 3 | 启动服务 | 调显存到 0.5, vLLM 服务起来 |
| 图 4 | 服务验证 | 跑通 /v1/models + chat completion |
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)