在上一篇帖子里说了如何安装显卡驱动
现在我们来通过VLLM来部署自己的大模型把
首先是各种模型的获取,哪种类型的任务适合的模型都不同,这里需要大家自己做做功课啦
大名鼎鼎的ollama就不多介绍啦
阿里百炼
https://bailian.console.aliyun.com/?tab=model#/model-market
huggingface懂的都懂
魔搭社区
全部过程基于 Ubuntu 22.04 + RTX 3090 + Python 环境。
第 1 步:准备 Python 环境
建议使用 虚拟环境 来避免污染系统 Python,你也可以使用conda,具体看你:
sudo apt install -y python3-venv python3-pip python3 -m venv vllm_env source vllm_env/bin/activate
确认 Python:
python --version # 建议 Python ≥ 3.10
第 2 步:安装 VLLM
直接安装最新版(包含 CUDA 支持):
pip install --upgrade pip pip install vllm
建议换清华源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple vllm
安装完成后,你可以检查版本:
python -m vllm.entrypoints.api_server --help
第 3 步:选择并下载一个模型
你可以先从 Hugging Face 上选一个小模型测试,比如:
- “facebook/opt-1.3b”(小,容易跑)
- “meta-llama/Llama-2-7b-chat-hf”(3090 也能跑)
- “Qwen/Qwen2-7B-Instruct”(国产模型)
- “mistralai/Mistral-7B-Instruct-v0.2”
VLLM 支持直接从 Hugging Face 自动下载。
第 4 步:启动 VLLM 服务(API 模式)
比如我们用 Qwen2-7B-Instruct:
python -m vllm.entrypoints.api_server \ --model Qwen/Qwen2-7B-Instruct \ --host 0.0.0.0 \ --port 8000
输出类似:
INFO vllm.engine: Initializing model: Qwen/Qwen2-7B-Instruct INFO vllm.api_server: Starting server at http://0.0.0.0:8000
说明启动成功
VLLM 会自动加载权重(第一次启动会下载模型到 ~/.cache/huggingface)。
第 5 步:测试 API 是否正常
打开另一个终端(或用 curl 测试):
curl http://localhost:8000/generate \
-H "Content-Type: application/json" \
-d '{"prompt": "写一首关于秋天的诗", "max_tokens": 100}'
输出类似:
{"text": "秋风起,落叶黄,山河远,思故乡。"}
说明推理成功
第 6 步:Python 内部调用(可选)
如果你想直接在 Python 中使用:
from vllm import LLM, SamplingParams
llm = LLM(model="Qwen/Qwen2-7B-Instruct")
params = SamplingParams(temperature=0.7, max_tokens=128)
outputs = llm.generate(["你好,请介绍一下你自己。"], params)
for o in outputs:
print(o.outputs[0].text)
第 7 步(可选):性能优化建议
3090 只有 24G 显存,两张卡可以利用以下方式:
- 启动多实例 VLLM,每张卡分配不同的模型;
- 或用参数 –tensor-parallel-size 2 跨卡分布加载模型:
python -m vllm.entrypoints.api_server \ --model Qwen/Qwen2-7B-Instruct \ --tensor-parallel-size 2
第 8 步:管理与监控
实时查看显卡占用:
watch -n 1 nvidia-smi
如果你想后台运行服务,可用:
nohup python -m vllm.entrypoints.api_server --model Qwen/Qwen2-7B-Instruct --port 8000 > vllm.log 2>&1 &
总结命令速查表
| 任务 | 命令 |
|---|---|
| 创建环境 | python3 -m venv vllm_env && source vllm_env/bin/activate |
| 安装 VLLM | pip install vllm |
| 启动服务 | python -m vllm.entrypoints.api_server –model Qwen/Qwen2-7B-Instruct –port 8000 |
| 测试接口 | curl -X POST http://localhost:8000/generate -d ‘{“prompt”:”你好”}’ |
| 监控显卡 | watch -n 1 nvidia-smi |