适用场景:没有 GPU、只有 CPU 的开发环境(如轻量云服务器、老旧笔记本),想低成本体验大语言模型。

通义千问 Qwen1.5-0.5B 是目前 Qwen 系列中最轻量的稠密模型(约 5 亿参数),非常适合在资源受限设备上本地部署。本文记录了我在Windows 11 环境下通过 CPU 完成完整部署与推理的全过程。


🛠️ 环境准备

1. 创建 Python 虚拟环境

1
2
conda create -n qwen python=3.10 -y
conda activate qwen

2. 安装依赖(使用清华镜像加速)

⚠️ 注意:近期清华源对大文件下载有限流策略,若遇到 403 或阻断提示,可临时切换为阿里云源。

1
pip install -i https://mirrors.aliyun.com/pypi/simple/ ...

✅ 上述命令确保安装的是 CPU 版本的 PyTorch,避免因 CUDA 依赖导致兼容问题。

1
2
3
4
5
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ \
torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ \
modelscope transformers accelerate sentencepiece numpy

📥 下载模型(使用 ModelScope)

Qwen 官方模型托管在 ModelScope(阿里魔搭),国内访问更快,无需翻墙。

创建 downModel.py,仅用于触发模型缓存:

1
2
3
4
5
6
7
from modelscope import AutoTokenizer, AutoModelForCausalLM

model_id = "qwen/Qwen1.5-0.5B"
print("正在下载/加载模型...")
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="cpu", trust_remote_code=True)
print("✅ 模型已缓存至本地")

首次运行会自动下载模型(约 1–2 GB)到指定目录。

后续加载将直接读取本地缓存,不再联网。


▶️ 本地推理测试

创建 main.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from modelscope import AutoTokenizer, AutoModelForCausalLM

model_id = "qwen/Qwen1.5-0.5B"

print("正在加载 tokenizer...")
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)

print("正在加载模型(CPU 模式)...")
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cpu",
trust_remote_code=True
)

# 设置模型为评估模式
model.eval()

# 准备输入
prompt = "你好,介绍一下你自己。"
inputs = tokenizer(prompt, return_tensors="pt")

# 生成回复
print("\n🤖 模型回复:")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=100,
temperature=0.7,
do_sample=True
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response[len(prompt):]) # 只显示生成的回复部分

运行:python main.py
输出示例:

你好!我是通义千问,阿里巴巴集团旗下的超大规模语言模型……

运行后可以看到模型成功在 CPU 环境下运行并生成回复。

💡 注意:虽然输出可能略显重复(因 0.5B 模型能力有限),但已证明 纯 CPU 环境下成功运行大模型


📊 性能说明

硬件要求参考

  • 内存:至少 4GB RAM(推荐 8GB+)
  • 磁盘:至少 2GB 可用空间
  • CPU:四核及以上现代处理器

推理速度

  • 首次加载时间:约 30-60 秒
  • 生成速度:约 3-10 tokens/秒(取决于CPU性能)

🔧 常见问题

1. 下载中断怎么办?

1
2
3
4
5
6
# 方法1:使用阿里云镜像
set HF_ENDPOINT=https://mirrors.aliyun.com/hugging-face

# 方法2:设置代理(如果有)
set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890

2. 内存不足?

1
2
3
4
5
6
7
8
9
# 在代码中添加内存优化
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cpu",
torch_dtype=torch.float32, # 使用32位浮点数
low_cpu_mem_usage=True, # 低内存模式
offload_folder="./offload", # 临时卸载文件夹
trust_remote_code=True
)

3. 想提高回复质量?

1
2
3
4
5
6
7
8
9
# 调整生成参数
outputs = model.generate(
**inputs,
max_new_tokens=200,
temperature=0.8, # 更高的温度增加多样性
top_p=0.9, # 核采样
repetition_penalty=1.2, # 减少重复
do_sample=True
)

4. “DLL load failed” 或 torch 导入错误

  • 安装 Visual C++ Redistributable: 下载 VC_redist.x64.exe
  • 重新安装 PyTorch:
    1
    2
    pip uninstall torch torchvision torchaudio
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

🎯 总结

Qwen1.5-0.5B 作为入门级大模型,在 CPU 上部署简单、资源占用低,适合:

  • ✅ 学习大模型部署流程
  • ✅ 本地离线测试
  • ✅ 资源受限环境体验
  • ❌ 不适合生产环境或复杂任务

随着 Qwen 系列不断更新,未来会有更多轻量级模型适合本地部署,让我们拭目以待!