鲲鹏社区首页
中文
注册
鲲鹏服务器在仅CPU情况下使用VLLM推理框架推理的操作指导

鲲鹏服务器在仅CPU情况下使用VLLM推理框架推理的操作指导

分布式存储

发表于 2025/08/18

0

本文档主要为在鲲鹏服务器仅有 CPU 情况下部署运行推理服务 参考资料:CPU — vLLM

环境

软件版本
OSopenEuler 22.03 sp 4
anacondapython 3.12
gcc12
cmake3.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,保存。















本页内容