鲲鹏服务器在仅CPU情况下使用VLLM推理框架推理的操作指导
发表于 2025/08/18
0
本文档主要为在鲲鹏服务器,仅有 CPU 情况下部署运行推理服务 参考资料:CPU — vLLM
环境
| 软件 | 版本 | 
|---|---|
| OS | openEuler 22.03 sp 4 | 
| anaconda | python 3.12 | 
| gcc | 12 | 
| cmake | 3.26 | 
操作步骤
下载并安装 Anaconda 软件包
wget -k https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-aarch64.sh 
# 安装Anaconda
bash Anaconda3-2022.05-Linux-aarch64.sh  
source /root/anaconda3/etc/profile.d/conda.sh  
# 创建环境并激活环境
conda create --name vllm python=3.12 -y  
conda activate vllm
更新 cmake 版本
cd /home
wget https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3-linux-aarch64.sh
sh cmake-3.26.3-linux-aarch64.sh
# 选择y统一安装
# 设置临时变量,将新下载的作为cmake路径
export PATH=/home/cmake-3.26.3-linux-aarch64/bin:$PATH
下载大模型(可选)
这里可以不下,因为之后推理服务中可以指定模型进行推理,此时会自动下载
pip install modelscope
# 下载整个模型repo(到默认/root/.cache地址)
modelscope download --model Qwen/Qwen3-0.6B
# 下载整个模型repo到指定目录
mkdir -p /home/model
modelscope download --model Qwen/Qwen3-0.6B --local_dir /home/model
编译和安装 vllm
运行 vllm(CPU)benchmark 测试可用性
git clone https://github.com/vllm-project/vllm.git vllm_source
cd vllm_source
pip install --upgrade pip
pip install "cmake>=3.26" wheel packaging ninja "setuptools-scm>=8" numpy
pip install -v -r requirements/cpu.txt --extra-index-url https://download.pytorch.org/whl/cpu
# 构建和安装vllm
VLLM_TARGET_DEVICE=cpu python setup.py install
运行 vllm(CPU)benchmark 测试可用性
VLLM_CPU_KVCACHE_SPACE=64 python3 benchmarks/benchmark_throughput.py   --model Qwen/Qwen3-0.6B   --dataset-name sonnet   --dataset
正确应显示如下:

验证推理服务
命令行运行
服务器窗口 A 下运行
# 部署推理服务
VLLM_CPU_KVCACHE_SPACE=64  vllm serve Qwen/Qwen3-0.6B  --dtype float16 -tp=1 --distributed-executor-backend mp --host 127.0.0.1 --port 8000
在服务器窗口 B 下运行
curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "Qwen/Qwen3-0.6B",
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "天空为什么是蓝色的?"}
  ],
  "temperature": 0.7,
  "top_p": 0.8,
  "repetition_penalty": 1.05,
  "max_tokens": 512
}'
脚本运行
服务器窗口 A 下运行
# 一端开启本地服务
VLLM_CPU_KVCACHE_SPACE=64  vllm serve Qwen/Qwen3-0.6B  --dtype float16 -tp=1 --distributed-executor-backend mp --host 127.0.0.1 --port 8000
在服务器窗口 B 下运行
编辑 py 文件
vim test_vllm.py
输入以下内容
# Qwen2-vLLM-Local.py
import os
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
# 设置环境变量
os.environ['VLLM_TARGET_DEVICE'] = 'cpu'
os.environ['VLLM_CPU_KVCACHE_SPACE'] = '64'
# 模型ID:我们下载的模型权重文件目录
model_dir = '/root/.cache/modelscope/hub/models/Qwen/Qwen3-0___6B/' # 更换为具体的模型文件!!!!
# Tokenizer初始化
tokenizer = AutoTokenizer.from_pretrained(
    model_dir,
    local_files_only=True,
)
# Prompt提示词
messages = [
    {'role': 'system', 'content': 'You are a helpful assistant.'},
    {'role': 'user', 'content': '天空为什么是蓝色的?'}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
# 初始化大语言模型
llm = LLM(
    model=model_dir,
    tensor_parallel_size=1,  # CPU无需张量并行
    device='cpu',
    dtype='float16'
)
# 超参数:最多512个Token
sampling_params = SamplingParams(temperature=0.7, top_p=0.8, repetition_penalty=1.05, max_tokens=512)
# 模型推理输出
outputs = llm.generate([text], sampling_params)
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f'Prompt提示词: {prompt!r}, 大模型推理输出: {generated_text!r}')
执行脚本
python3 test_vllm.py
显示如下:

卸载框架
# 首先进入自己的conda环境
conda env list # 查看当前环境
# 如我的环境为 /home/test/llm/envs/vllm
conda activate /home/test/llm/envs/vllm
# 进入完成后
pip uninstall vllm
其他
解决模型下载环境设置问题
Python 下载网站内容时遇到 urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed
home/test/llm/envs/vllm/lib/python3.11/site-packages/requests/sessions.py
:set nu			# 设置行号
:500  			# 跳转到500行
i 				# 修改文件信息
:wq  			# 保存修改并退出
大概在500行左右的位置,找到 request 函数,将传参 verify 的默认值由 None 改为 False,保存。


