DCU BW1000 环境下的模型推理尝试
在 DCU BW1000 计算卡上部署大模型时,环境配置往往比预期复杂。这次尝试使用 llama.cpp 和 Transformers 分别加载 Qwen3-Coder-30B-A3B-Instruct-AWQ 模型,过程中遇到了一些典型的依赖和兼容性问题。
模型资源分析
在动手之前,先用 llmfit 评估一下模型的实际需求,避免盲目下载后才发现跑不动。
llmfit info stelterlab/Qwen3-Coder-30B-A3B-Instruct-AWQ
输出显示这是一个 MoE 架构模型,激活专家数较少,但上下文长度支持很高。关键指标如下:
- 量化格式:默认 Q4_K_M,推荐 Q8_0
- 显存占用:最小 2.4 GB(实际运行需考虑 Offloading)
- 预计速度:约 17.2 tok/s
- 架构提示:显存不足以完全卸载专家层,会回退到系统内存,性能会有损耗
这些信息提醒我们,虽然理论显存需求不高,但在实际推理中要注意内存交换带来的延迟。
编译 llama.cpp
环境里通常没有预装最新的 llama.cpp,需要自行编译。这里有个坑,直接编译完不设置环境变量,命令行工具是找不到的。
git clone https://gitcode.com/GitHub_Trending/ll/llama.cpp
cd llama.cpp
cmake -B build cmake --build build --config Release
编译完成后,如果直接运行 llama-cli 可能会报共享库找不到错误,比如 libmtmd.so.0 或 libggml-base.so.0。这通常是因为构建目录的 bin 路径没加入环境变量。
export PATH=/root/llama.cpp/build/bin:$PATH
或者直接使用 make install 安装到系统路径。这一步修好后,命令行工具才能正常调用。
模型获取与下载
通过 ModelScope 拉取模型文件比较方便,注意区分不同的仓库源。本次尝试的目标模型路径为 tclf90/Qwen3-Coder-30B-A3B-Instruct-AWQ。
from modelscope import snapshot_download
snapshot_download('tclf90/Qwen3-Coder-30B-A3B-Instruct-AWQ', cache_dir="models")
这里发现一个细节,有些模型在魔搭社区可能没有对应版本,或者路径不一致,导致后续加载失败。确保下载的 GGUF 文件路径正确且完整。
推理测试与报错分析
方案一:llama-cli
直接用命令行工具加载模型:
llama-cli -m models/tclf90/Qwen3-Coder-30B-A3B-Instruct-AWQ
报错信息指向了文件读取失败:
Loading model... |gguf_init_from_file_impl: failed to read magic
llama_model_load: loading model: ... failed load model ...
Failed load the model

