今天記錄一下,在 Ubuntu 22.04.5 LTS 上使用 Conda 虛擬環境安裝 vLLM 框架來布署本地模型。
顯卡是NVIDIA GeForce RTX 4090,操作系統為Ubuntu 22.04.5 LTS
執行nvidia-smi驗證顯卡驅動已安裝最高支持12.2版本
執行nvcc -V驗證cuda已安裝12.1
執行conda --version驗證conda 25.5.1已安裝
配置 Conda 鏡像倉庫(國內源)??添加阿里鏡像頻道??:
逐條執行以下命令來添加常用的頻道(包括主頻道、free、r、msys2以及對于深度學習非常重要的 conda-forge 和 PyTorch 專屬頻道):
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main/ conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free/ conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/r/ conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/msys2/ conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/pytorch/
檢查一下你當前的Conda通道配置:conda config --show channels
Conda虛擬環境的創建
創建一個名為vllm_numpy_pytorch的虛擬環境,并指定 Python 版本(推薦 3.9-3.12):
conda create -n vllm_numpy_pytorch python=3.10 numpy=1.26.4 pytorch=2.1.0 torchvision=0.16.0 cudatoolkit=12.1 conda activate vllm_numpy_pytorch #激活,激活后,終端前綴會顯示 (vllm_numpy_pytorch),表示環境已啟用。
若已經存在舊環境,先退出刪除重建
conda deactivate 退出
conda remove -n vllm_env --all 刪除
安裝vLLM依賴的關鍵庫
conda install pytorch torchvision torchaudio cudatoolkit=12.1
若cudatoolkit=12.1安裝失敗,改用pip安裝
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
PyTorch的驗證
#驗證PyTorch是否能正確識別GPU
python -c "import torch; print('PyTorch版本:', torch.__version__); print('CUDA可用:', torch.cuda.is_available()); print('CUDA版本:', torch.version.cuda); print('GPU設備:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"

#檢查當前PyTorch的構建配置 在Python環境中運行以下命令,查看當前PyTorch的構建配置:
python -c "import torch;print(torch.__config__.show())"
vllm的安裝
若 PyTorch能正確識別GPU,vLLM依賴的關鍵庫已經安裝好了,準備安裝vllm。
驗證vllm版本號:
python -c "import vllm; print(vllm.__version__)"
若執行報錯,就是未安裝好
這里使用pip安裝,適用于大多數場景,vLLM會自動選擇與你的CUDA 和PyTorch 兼容的版本
pip install vllm==0.9.0 # 已知穩定版本
再次驗證vllm版本號。
下載小模型
這里從魔搭社區下載Qwen2.5-0.5B用來測試
modelscope download --model Qwen/Qwen2.5-0.5B-Instruct
默認下載到: /home/admin1/.cache/modelscope/hub/models/Qwen/Qwen2.5-0.5B-Instruct
加載模型
vllm serve /home/admin1/.cache/modelscope/hub/models/Qwen/Qwen2.5-0.5B-Instruct --port 8000 --gpu-memory-utilization 0.3

#若遇到報錯,根據具體情況修復依賴庫。
#若遇到報錯transformers版本不兼容
Qwen3模型要求transformers>=4.51.0, vllm>=0.8.5,你可以嘗試升級或降級Transformers:
嘗試降級transformers到 4.51.0 但注意可能引入新的不兼容
pip install "transformers==4.51.0" --upgrade
確認模型是否成功加載:
curl http://localhost:8000/v1/models
用curl調用測試模型問答:
curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "model": "/home/admin1/.cache/modelscope/hub/models/Qwen/Qwen2.5-0.5B-Instruct", "messages": [{"role": "user", "content": "介紹下杭州"}] }'

其它多模態模型
vllm serve /home/admin1/.cache/modelscope/hub/models/Qwen/Qwen2.5-VL-32B-Instruct \ --port 8001 \ --tensor-parallel-size 8 \ --gpu-memory-utilization 0.7 \ --swap-space 16
將vLLM服務啟動命令修改為提供標準 OpenAI API 接口的形式
python3 -m vllm.entrypoints.openai.api_server \ --model /home/admin1/.cache/modelscope/hub/models/Qwen/Qwen2.5-VL-32B-Instruct \ --port 8001 \ --tensor-parallel-size 8 \ --gpu-memory-utilization 0.7 \ --swap-space 16 \ --served-model-name Qwen2.5-VL-32B-Instruct \ --host 0.0.0.0 \ --trust-remote-code \ --max-model-len 8192
curl -X POST "http://localhost:8001/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "model": "Qwen2.5-VL-32B-Instruct", "messages": [{"role": "user", "content": "介紹下杭州"}] }'
浙公網安備 33010602011771號