[ PROMPT_NODE_22484 ]
serving-llms-vllm
[ SKILL_DOCUMENTATION ]
# vLLM - 高性能 LLM 推理服务
## 快速开始
vLLM 通过 PagedAttention(基于块的 KV 缓存)和连续批处理(混合预填充/解码请求)技术,实现了比标准 transformers 高 24 倍的吞吐量。
**安装**:
bash
pip install vllm
**基础离线推理**:
python
from vllm import LLM, SamplingParams
llm = LLM(model="meta-llama/Llama-3-8B-Instruct")
sampling = SamplingParams(temperature=0.7, max_tokens=256)
outputs = llm.generate(["Explain quantum computing"], sampling)
print(outputs[0].outputs[0].text)
**OpenAI 兼容服务器**:
bash
vllm serve meta-llama/Llama-3-8B-Instruct
# 使用 OpenAI SDK 查询
python -c "
from openai import OpenAI
client = OpenAI(base_url='http://localhost:8000/v1', api_key='EMPTY')
print(client.chat.completions.create(
model='meta-llama/Llama-3-8B-Instruct',
messages=[{'role': 'user', 'content': 'Hello!'}]
).choices[0].message.content)
"
## 常见工作流
### 工作流 1: 生产 API 部署
复制此清单并跟踪进度:
部署进度:
- [ ] 第 1 步: 配置服务器设置
- [ ] 第 2 步: 进行小流量测试
- [ ] 第 3 步: 启用监控
- [ ] 第 4 步: 部署到生产环境
- [ ] 第 5 步: 验证性能指标
**第 1 步: 配置服务器设置**
根据模型大小选择配置:
bash
# 针对单 GPU 上的 7B-13B 模型
vllm serve meta-llama/Llama-3-8B-Instruct
--gpu-memory-utilization 0.9
--max-model-len 8192
--port 8000
# 针对使用张量并行的 30B-70B 模型
vllm serve meta-llama/Llama-2-70b-hf
--tensor-parallel-size 4
--gpu-memory-utilization 0.9
--quantization awq
--port 8000
# 针对带有缓存和指标的生产环境
vllm serve meta-llama/Llama-3-8B-Instruct
--gpu-memory-utilization 0.9
--enable-prefix-caching
--enable-metrics
--metrics-port 9090
--port 8000
--host 0.0.0.0
**第 2 步: 进行小流量测试**
在生产前运行负载测试:
bash
# 安装负载测试工具
pip install locust
# 创建 test_load.py 并包含示例请求
# 运行: locust -f test_load.py --host http://localhost:8000
验证 TTFT(首字延迟) 100 req/sec。
**第 3 步: 启用监控**
vLLM 在 9090 端口暴露 Prometheus 指标:
bash
curl http://localhost:9090/metrics | grep vllm
关键监控指标:
- `vllm:time_to_first_token_seconds` - 延迟
- `vllm:num_requests_running` - 活动请求数
- `vl