我孤身走在路上, 石子在雾中发亮,夜很安静,荒原面对太空,星星互诉衷肠
Ubuntu通过VLLM部署模型
Ubuntu通过VLLM部署模型

Ubuntu通过VLLM部署模型

在上一篇帖子里说了如何安装显卡驱动

现在我们来通过VLLM来部署自己的大模型把

首先是各种模型的获取,哪种类型的任务适合的模型都不同,这里需要大家自己做做功课啦

大名鼎鼎的ollama就不多介绍啦

https://ollama.com/library

阿里百炼

https://bailian.console.aliyun.com/?tab=model#/model-market

huggingface懂的都懂

https://huggingface.co/models

魔搭社区

https://modelscope.cn/home

全部过程基于 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
安装 VLLMpip 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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

25 − 22 =