1. 在DCU BW1000上部署Qwen3-Coder-30B模型的尝试与问题分析
最近在openi启智社区的DCU BW1000计算卡上尝试部署stelterlab/Qwen3-Coder-30B-A3B-Instruct-AWQ模型进行推理,整个过程遇到了不少问题,最终未能成功。本文将详细记录整个过程,分析遇到的问题,并分享一些经验教训。
DCU BW1000是openi启智社区新推出的计算卡,最大的优势是不消耗积分,可以自由使用。不过目前只提供了一个基础镜像,使用起来确实不太方便。我原本计划在这个环境上测试Qwen3-Coder-30B模型的代码生成能力,但遇到了从模型获取到推理部署的一系列问题。
1.1 模型基本情况分析
首先,我使用llmfit工具查看了stelterlab/Qwen3-Coder-30B-A3B-Instruct-AWQ模型的基本信息:
code复制llmfit info stelterlab/Qwen3-Coder-30B-A3B-Instruct-AWQ
从输出信息可以看出,这是一个专门用于代码生成和补全的模型,采用MoE(混合专家)架构,有8个活跃专家和128个总专家。模型参数量为4.6B,使用Q4_K_M量化,最佳量化方式是Q8_0。上下文长度达到了262144 tokens,这在代码生成场景中非常有用。
资源需求方面,最小需要2.4GB显存,系统内存最少需要2.6GB(CPU推理),推荐配置是4.3GB内存。在DCU BW1000上,内存利用率显示只有0.6%(2.6/405.5GB),看起来资源是足够的。
不过输出中也提示了几个重要问题:
- 显存不足以支持专家卸载(expert offloading)
- 整个模型会被溢出到系统内存
- 性能会显著降低
- 预估速度只有17.2 tokens/秒
这些信息对后续的部署尝试非常重要,特别是关于显存和性能的提示,实际上已经预示了可能遇到的问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与llama.cpp安装
2.1 获取和编译llama.cpp
为了在DCU BW1000上运行这个模型,我首先尝试使用llama.cpp。llama.cpp是一个流行的推理框架,特别适合在资源受限的环境中运行大型语言模型。
下载llama.cpp源代码:
bash复制git clone https://gitcode.com/GitHub_Trending/ll/llama.cpp
然后进行编译:
bash复制cd llama.cpp
cmake -B build
cmake --build build --config Release
编译过程顺利完成,没有报错。接下来,我将编译好的二进制文件加入PATH环境变量:
bash复制e
