想把开源大模型接入自己的应用,或者给团队搭建一个共用的代码助手,可以在GPU服务器上部署vLLM。它能加载兼容的大模型,并提供OpenAI兼容接口,方便程序调用。
下面以Qwen2.5-Coder-7B-Instruct为例,介绍从环境准备到接口测试的基本步骤。这个模型偏向代码生成,适合用来测试编程问答和代码辅助功能。
一、准备GPU服务器
部署前先看显存。这个模型约有76亿参数,按BF16精度计算,仅模型权重就需要约15.2GB空间,运行时还要为缓存和其他开销预留显存。
RakSmart美国硅谷GPU服务器月付169美元起,提供GTX 750、GTX 1050、GTX 1080和AMD Radeon Pro WX 7100显卡方案,搭配32GB或64GB内存、1TB HDD或SSD及1个IP,DDoS防御可选。这几款采用较早期显卡,可供旧版GPU程序、部分图形处理和渲染项目比较,购买前需要确认显存、驱动及软件兼容性,不宜直接用于前文的vLLM部署Qwen 7B方案。具体带宽、升级选项和优惠以订单页面为准,更多配置可查看RakSmart美国GPU服务器介绍:点击直达RakSmart官网>>>
本教程建议使用Ubuntu 24.04 LTS,并选择已经安装好NVIDIA驱动的GPU镜像。磁盘需要同时容纳模型、Python依赖和缓存,建议预留至少60GB可用空间。
二、连接服务器,检查GPU
通过SSH登录服务器后,执行:
nvidia-smi
正常情况下,会显示显卡型号、驱动版本、显存总量和当前占用。
如果提示命令不存在或无法连接驱动,先处理GPU驱动问题。nvidia-smi中的CUDA版本表示驱动支持的CUDA版本,不等于已经安装了相同版本的CUDA Toolkit。
接着安装Python虚拟环境工具和tmux。
sudo apt update
sudo apt install -y python3-venv python3-pip tmux curl
三、安装vLLM
创建独立目录与Python环境,避免和其他应用的依赖混在一起。
mkdir -p ~/vllm-demo
cd ~/vllm-demo
python3 -m venv .venv
source .venv/bin/activate
安装vLLM。
python -m pip install --upgrade pip
python -m pip install vllm
这条命令安装当前软件源中可用的版本。vLLM、PyTorch和NVIDIA驱动需要兼容,如果安装或启动时报CUDA错误,应核对该版本的驱动要求。
检查安装结果。
vllm --version
python -c "import torch; print('CUDA available:', torch.cuda.is_available()); print('GPU:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'none')"
出现CUDA available: True并正确显示GPU名称后,再加载模型。部署成功后,可以保存依赖版本,便于以后重建环境。
python -m pip freeze > requirements-installed.txt
四、启动Qwen模型
为了让SSH断开后程序继续运行,先创建tmux会话。
tmux new -s vllm
在会话中激活环境,并输入自己设置的API密钥。建议使用密码管理工具生成较长的随机密钥,并保存好。
cd ~/vllm-demo
source .venv/bin/activate
read -r -s -p "请输入API密钥:" VLLM_API_KEY
printf '\n'
export VLLM_API_KEY
启动模型。
vllm serve Qwen/Qwen2.5-Coder-7B-Instruct \
--host 127.0.0.1 \
--port 8000 \
--dtype auto \
--max-model-len 4096 \
--max-num-seqs 2 \
--gpu-memory-utilization 0.85 \
--api-key "$VLLM_API_KEY"
这组参数用于先跑通服务。
--max-model-len 4096限制单次请求的上下文长度,输入和输出需要共同计入。--max-num-seqs 2限制同时处理的序列数量。--gpu-memory-utilization 0.85将显存使用目标设为85%,不代表一定不会显存不足。--host 127.0.0.1让接口只监听服务器本机。
首次启动需要下载模型,耗时取决于服务器网络和下载源。等日志显示服务启动完成后,按Ctrl+B,松开后再按D,即可退出tmux界面,保留程序运行。
重新查看运行界面可以执行:
tmux attach -t vllm
tmux适合初次部署和测试,但不会在服务器重启后自动恢复服务。准备长期使用时,再配置systemd或容器管理。
五、通过SSH调用API
在自己电脑上打开一个终端,建立SSH。将用户名、IP和端口替换为实际信息。
ssh -N -o ExitOnForwardFailure=yes \
-L 8000:127.0.0.1:8000 \
-p 22 用户名@服务器IP
保持这个窗口开启。本机的8000端口会通过SSH连接到服务器上的vLLM接口,无需开放公网8000端口。
再打开一个本地终端。以下测试命令使用Bash,Windows用户可以在WSL中执行。
输入刚才保存的API密钥。
read -r -s -p "请输入API密钥:" VLLM_API_KEY
printf '\n'
发送一条中文请求。
curl -sS -w '\nHTTP %{http_code}\n' \
http://127.0.0.1:8000/v1/chat/completions \
-H "Authorization: Bearer $VLLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-Coder-7B-Instruct",
"messages": [
{
"role": "user",
"content": "请写一个Python函数,判断输入的整数是否为偶数。"
}
],
"temperature": 0,
"max_tokens": 256
}'
返回HTTP 200,并在choices中看到生成内容,说明接口已经可以调用。
还可以检查未携带密钥的请求是否被拒绝。
curl -sS -o /dev/null -w 'HTTP %{http_code}\n' \
http://127.0.0.1:8000/v1/models
预期返回HTTP 401。如果无需密钥也能访问,应先检查鉴权设置。
支持自定义OpenAI兼容接口的客户端,可以填写以下信息:
| 配置项 | 内容 |
|---|---|
| API地址 | http://127.0.0.1:8000/v1 |
| API Key | 自己设置的密钥 |
| 模型名称 | Qwen/Qwen2.5-Coder-7B-Instruct |
这里的地址适用于运行SSH的电脑。其他设备或容器中的127.0.0.1指向它们自己,不能直接照填。
常见问题
启动时提示显存不足怎么办?
先用nvidia-smi检查是否有其他程序占用GPU,再尝试缩短上下文、降低并发。如果模型权重本身已经接近显存上限,就需要更大显存,或选择兼容的量化模型。
vLLM和Ollama选哪个?
个人试用、经常切换模型,可以先考虑Ollama。准备为多个用户或应用提供统一推理接口,可以考虑vLLM。具体吞吐仍取决于模型、GPU、输入长度和并发设置。
为什么没有直接开放8000端口?
初次部署使用SSH,方便控制访问范围。之后需要公开提供API时,再配置HTTPS、身份认证和访问限制。
24GB显存够不够?
对于本教程的7B模型,可以作为低并发、受限上下文的尝试起点,但不保证所有版本和参数组合都能运行。需要较长上下文或多人使用时,48GB显存会有更多调整空间。
模型跑通后,先用实际问题观察回答质量、响应时间和显存占用,再决定是否增加并发。GPU选型也应结合这些数据,避免只看显卡型号购买过高配置。
-
广告合作
-
QQ群号:4114653




