本文档提供了vLLM 0.7.3的Miniconda安装教程,适合需要快速部署大模型的开发者参考。
vLLM 0.7.3 Miniconda 安装教程
第一步:安装 Miniconda
如果尚未安装 Miniconda,请先安装:
1 2 3 4 5 6 7 8
| wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
|
如果需要安装特定版本的 Miniconda(比如为了兼容性或稳定性考虑):
查看可用版本:访问 Miniconda 历史版本页面 查看所有可用版本。
例如,Python 3.11 版本 (2023年发布):
1 2 3
| 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
|
bash Miniconda3-latest-Linux-x86_64.sh -b -p ~/miniconda3 ~/miniconda3/bin/conda init
|
验证安装:
1 2 3 4 5 6 7 8 9
| source ~/.bashrc
conda --version conda info
python --version
|
第二步:创建 Python 环境
1 2 3 4 5
| conda create -n vllm python=3.12 -y
conda activate vllm
|
第三步:安装 vLLM
安装特定版本的 vLLM(0.7.3):
1 2
| pip install vllm==0.7.3 -i https://mirrors.aliyun.com/pypi/simple
|
验证安装:创建一个测试脚本来验证安装
1 2 3 4 5 6 7 8 9 10 11
| import vllm
print(f"vLLM version: {vllm.__version__}")
from vllm import LLM
print("vLLM installation successful!")
|
运行测试:
卸载和清理:
1 2 3 4 5 6 7 8 9
| 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显存,最大化资源利用
网络服务参数
其它参数
重启服务
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
--enable-cpu-offload
--enable-paged-attention
|
并发优化
1 2 3
| --max-num-seqs 256 --max-num-batched-tokens 8192
|
生产环境部署建议
创建服务文件:/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
| 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
|