本文档提供了vLLM 0.7.3的Miniconda安装教程,适合需要快速部署大模型的开发者参考。

vLLM 0.7.3 Miniconda 安装教程

第一步:安装 Miniconda

如果尚未安装 Miniconda,请先安装:

1
2
3
4
5
6
7
8
# 下载 Miniconda 安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 安装 Miniconda
bash Miniconda3-latest-Linux-x86_64.sh

# 重新加载 shell 配置
source ~/.bashrc

如果需要安装特定版本的 Miniconda(比如为了兼容性或稳定性考虑):

查看可用版本:访问 Miniconda 历史版本页面 查看所有可用版本。

例如,Python 3.11 版本 (2023年发布):

1
2
3
# Miniconda3 py311_23.11.0-2
wget https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-2-Linux-x86_64.sh
bash Miniconda3-py311_23.11.0-2-Linux-x86_64.sh

安装选项说明:在运行安装脚本时会出现以下选项

1
2
3
4
5
6
7
8
# 安装过程中的选项:
# 1. 接受许可协议: yes
# 2. 安装路径: 默认 ~/miniconda3 或自定义路径
# 3. 初始化 conda: yes (推荐)

# 静默安装示例
bash Miniconda3-latest-Linux-x86_64.sh -b -p ~/miniconda3
~/miniconda3/bin/conda init

验证安装:

1
2
3
4
5
6
7
8
9
# 重新加载 shell 配置
source ~/.bashrc

# 验证 conda 安装
conda --version
conda info

# 查看 Python 版本
python --version

第二步:创建 Python 环境

1
2
3
4
5
# 创建新的 conda 环境 (推荐使用 Python 3.12)
conda create -n vllm python=3.12 -y

# 激活环境
conda activate vllm

第三步:安装 vLLM

安装特定版本的 vLLM(0.7.3):

1
2
# 安装 vLLM 0.7.3 版本
pip install vllm==0.7.3 -i https://mirrors.aliyun.com/pypi/simple

验证安装:创建一个测试脚本来验证安装

1
2
3
4
5
6
7
8
9
10
11
# test_vllm.py
import vllm

# 检查版本
print(f"vLLM version: {vllm.__version__}")

# 简单的 API 测试
from vllm import LLM

# 检查是否能正常导入和初始化
print("vLLM installation successful!")

运行测试:

1
python test_vllm.py

卸载和清理:

1
2
3
4
5
6
7
8
9
# 卸载 vLLM
pip uninstall vllm -y

# 清理缓存
pip cache purge

# 删除环境 (可选)
conda deactivate
conda remove -n vllm --all

第四步:从 ModelScope 下载模型

启动 vLLM 服务

以下是启动 DeepSeek-R1 模型的完整配置示例:

1
2
3
4
5
6
7
8
9
10
11
nohup vllm serve /models/deepssek-r1-32b/ \
--served-model-name deepseek-r1:32b \
--tensor-parallel-size 4 \
--gpu_memory_utilization 0.95 \
--max-model-len 32768 \
--host 0.0.0.0 \
--port 14600 \
--api-key token.vllm.ds \
--enable-reasoning \
--reasoning-parser deepseek_r1 \
> vllm.log 2>&1 &

参数详细说明

模型配置参数

  • --served-model-name deepseek-r1:32b: 对外提供的模型名称,客户端调用时使用
  • --max-model-len 32768: 最大序列长度(32K tokens),支持长文本处理
  • --dtype=half: 使用半精度浮点数(FP16)节省显存

硬件优化参数

  • --tensor-parallel-size 8: 使用8个GPU进行张量并行处理,提高推理速度
  • --gpu_memory_utilization 0.95: 使用95%的GPU显存,最大化资源利用

网络服务参数

  • --host 0.0.0.0: 监听所有网络接口,允许外部访问

  • --port 14600: 服务监听端口号

  • --api-key token.vllm.ds: API访问密钥,用于身份验证

其它参数

  • --enable-reasoning: 启用推理模式,支持思维链推理

  • --reasoning-parser deepseek_r1: 使用DeepSeek-R1特定的推理解析器

重启服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 停止现有服务
pkill -f "vllm serve"

# 等待进程完全终止
sleep 5

# 重新启动服务
nohup vllm serve \
/home/model/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \
--served-model-name deepseek-r1:32b \
--tensor-parallel-size 8 \
--gpu_memory_utilization 0.95 \
--dtype=half \
--max-model-len 32768 \
--host 0.0.0.0 \
--port 14600 \
--api-key token.vllm.ds \
--enable-reasoning \
--reasoning-parser deepseek_r1 \
> vllm.log 2>&1 &

测试服务连接

1
2
3
# 查看模型信息
curl http://localhost:14600/v1/models \
-H "Authorization: Bearer token.vllm.ds"

测试推理 API

1
2
3
4
5
6
7
8
9
10
11
12
# 发送测试请求
curl http://localhost:14600/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token.vllm.ds" \
-d '{
"model": "deepseek-r1:32b",
"messages": [
{"role": "user", "content": "你好,请介绍一下你自己"}
],
"max_tokens": 1000,
"temperature": 0.7
}'

显存优化

1
2
3
4
5
6
7
8
# 如果显存不足,可以降低显存使用率
--gpu_memory_utilization 0.85 # 降至85%

# 或者启用CPU卸载
--enable-cpu-offload

# 启用分页注意力(PagedAttention)
--enable-paged-attention

并发优化

1
2
3
# 调整并发请求数
--max-num-seqs 256 # 最大并发序列数
--max-num-batched-tokens 8192 # 最大批处理token数

生产环境部署建议

创建服务文件:/etc/systemd/system/vllm.service

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
[Unit]
Description=vLLM DeepSeek-R1 Service
After=network.target

[Service]
Type=simple
User=your-username
WorkingDirectory=/home/your-username
ExecStart=/home/your-username/miniconda3/envs/vllm/bin/vllm serve \
/home/model/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \
--served-model-name deepseek-r1:32b \
--tensor-parallel-size 8 \
--gpu_memory_utilization 0.95 \
--dtype=half \
--max-model-len 32768 \
--host 0.0.0.0 \
--port 14600 \
--api-key token.vllm.ds \
--enable-reasoning \
--reasoning-parser deepseek_r1
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

启动和管理服务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 启用服务
sudo systemctl enable vllm.service

# 启动服务
sudo systemctl start vllm.service

# 查看服务状态
sudo systemctl status vllm.service

# 查看服务日志
sudo journalctl -u vllm.service -f