vLLM 简介
vLLM 是一个高性能的大语言模型推理引擎,使用 PagedAttention 技术实现高效的显存管理和请求批处理。它提供 OpenAI 兼容的 API 服务器,可以直接对接 OpenClaw,实现完全自托管的 AI 助手方案。
前置要求
- NVIDIA GPU(推荐 RTX 3090/4090 或 A100)
- CUDA 12.1+
- Python 3.9+
- 足够的磁盘空间存放模型文件
安装 vLLM
pip install vllm
使用 Docker 安装(推荐):
docker pull vllm/vllm-openai:latest
启动 vLLM 服务
以 Llama 3.1 8B 为例:
vllm serve meta-llama/Llama-3.1-8B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--api-key "vllm-local-key" \
--max-model-len 8192
Docker 方式:
docker run -d \
--name vllm \
--gpus all \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
vllm/vllm-openai:latest \
--model meta-llama/Llama-3.1-8B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--api-key "vllm-local-key"
在 OpenClaw 中配置
{
"providers": {
"vllm": {
"type": "openai",
"baseUrl": "http://localhost:8000/v1",
"apiKey": "vllm-local-key",
"models": ["meta-llama/Llama-3.1-8B-Instruct"]
}
},
"models": {
"local-llama": {
"provider": "vllm",
"model": "meta-llama/Llama-3.1-8B-Instruct",
"temperature": 0.7,
"maxTokens": 4096
}
}
}
性能调优
量化加速
使用 AWQ 量化模型减少显存占用:
vllm serve TheBloke/Llama-3.1-8B-Instruct-AWQ \
--quantization awq \
--max-model-len 8192 \
--gpu-memory-utilization 0.9
张量并行(多 GPU)
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--tensor-parallel-size 4 \
--max-model-len 8192
批处理优化
vllm serve meta-llama/Llama-3.1-8B-Instruct \
--max-num-batched-tokens 8192 \
--max-num-seqs 64 \
--gpu-memory-utilization 0.9
常用模型配置参考
Qwen 2.5(中文优化)
vllm serve Qwen/Qwen2.5-14B-Instruct \
--max-model-len 16384 \
--gpu-memory-utilization 0.9
Mistral(通用)
vllm serve mistralai/Mistral-7B-Instruct-v0.3 \
--max-model-len 8192
使用自定义模型
如果你有微调过的模型,可以直接加载本地路径:
vllm serve /path/to/your/finetuned-model \
--max-model-len 4096
在 OpenClaw 中配置时使用模型路径名:
{
"providers": {
"vllm": {
"type": "openai",
"baseUrl": "http://localhost:8000/v1",
"apiKey": "vllm-local-key",
"models": ["/path/to/your/finetuned-model"]
}
}
}
健康检查
验证 vLLM 服务状态:
curl http://localhost:8000/health
curl http://localhost:8000/v1/models
在 OpenClaw 中验证:
openclaw doctor --provider vllm
生产部署建议
- 使用 systemd 管理服务:确保 vLLM 开机自启
[Unit]
Description=vLLM Inference Server
After=network.target
[Service]
ExecStart=/usr/local/bin/vllm serve meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 8000
Restart=always
[Install]
WantedBy=multi-user.target
- 使用 Nginx 反向代理:添加 SSL 和访问控制
- 监控 GPU 使用:定期检查
nvidia-smi确保显存充足 - 设置日志轮转:避免日志占满磁盘
常见问题
Q: 显存不足怎么办?
使用量化模型(AWQ/GPTQ),或减小 max-model-len 和 gpu-memory-utilization。
Q: 首次启动很慢?
首次需要下载模型文件,后续启动会使用缓存。可以提前使用 huggingface-cli download 下载。
Q: 如何支持多个模型? 启动多个 vLLM 实例,使用不同端口,在 OpenClaw 中配置多个 provider。
总结
vLLM 是自托管 AI 推理的首选引擎,性能优异且 API 完全兼容 OpenAI 格式。配合 OpenClaw 使用,可以实现完全私有化部署,数据不出服务器,适合对隐私有严格要求的场景。