基于 vLLM 搭建 OpenAI 兼容 API 服务并接入现有应用

目标 让本地部署的模型可以像调用 OpenAI 官方 API 一样被现有代码无缝调用,只需替换 base_url 和 api_key。 启动服务 vllm serve Qwen/Qwen2.5-7B-Instruct-AWQ \ --quantization awq \ --served-model-name my-local-llm \ --api-key sk-local-demo-key \ --port 8000 --served-model-name 决定客户端请求中 model 字段应填写的值;--api-key 用于简单鉴权。 Python 客户端调用 from openai import OpenAI client = OpenAI( base_url="http://127.0.0.1:8000/v1", api_key="sk-local-demo-key", ) resp = client.chat.completions.create( model="my-local-llm", messages=[{"role": "user", "content": "用一句话解释向量数据库"}], ) print(resp.choices[0].message.content) 使用 systemd 常驻服务 避免通过 nohup 挂起进程,推荐用 systemd 管理: # /etc/systemd/system/vllm.service [Unit] Description=vLLM Inference Server After=network.target [Service] User=vllmuser WorkingDirectory=/opt/vllm ExecStart=/opt/vllm/vllm-env/bin/vllm serve Qwen/Qwen2.5-7B-Instruct-AWQ --port 8000 Restart=always RestartSec=5 [Install] WantedBy=multi-user.target sudo systemctl daemon-reload sudo systemctl enable --now vllm 通过 Nginx 反向代理暴露服务 生产环境不建议直接暴露 8000 端口,应通过 Nginx 做 TLS 终止与限流,具体配置可参考本站《Nginx 反向代理与 HTTPS 配置》一文。 ...

2026-07-27 · 1 min · 109 words · ITNote

vLLM 显存优化与批处理参数调优实战

影响显存占用的关键参数 参数 作用 建议值 --gpu-memory-utilization GPU 显存预留比例 单卡场景 0.85~0.9 --max-model-len 最大上下文长度 按实际业务设置,避免过大浪费 --max-num-seqs 同时处理的最大序列数 根据显存余量调整 --block-size PagedAttention 分页大小 默认 16,一般无需更改 --swap-space CPU 侧交换空间(GB) 显存紧张时可设置 4~8 量化降低显存占用 对 7B 级别模型,FP16 大约需要 14GB 显存用于权重本身,加上 KV Cache 后往往超过消费级显卡容量。使用 AWQ 或 GPTQ 4-bit 量化可将权重显存需求降低到原来的 1/4 左右: vllm serve Qwen/Qwen2.5-7B-Instruct-AWQ --quantization awq 提升吞吐的关键:Continuous Batching vLLM 默认启用连续批处理,无需手动配置。但可以通过 --max-num-batched-tokens 控制单次调度的 token 总量,值越大吞吐越高,但延迟波动也会增加,需要根据 SLA 要求权衡。 多卡场景:张量并行 vllm serve meta-llama/Llama-3-70B-Instruct \ --tensor-parallel-size 4 \ --gpu-memory-utilization 0.9 --tensor-parallel-size 需与实际 GPU 数量匹配,且各卡显存尽量一致,否则会以最小显存的卡为瓶颈。 ...

2026-07-27 · 1 min · 86 words · ITNote

vLLM 入门:轻量级大模型推理引擎原理与部署

为什么选择 vLLM 在自建大模型推理服务时,显存利用率和吞吐量往往是最大的瓶颈。传统的 HuggingFace transformers 推理方式在处理并发请求时,KV Cache 的管理效率较低,容易出现显存碎片化。vLLM 通过 PagedAttention 机制,将 KV Cache 按照固定大小的“页”进行管理,类似操作系统的虚拟内存分页,从而大幅提升显存利用率与并发吞吐能力。 核心特性 PagedAttention:按页管理 KV Cache,减少显存浪费 Continuous Batching:动态批处理,新请求可以在旧请求未完成时插入 OpenAI 兼容 API:可直接替换 OpenAI SDK 的 base_url 多种量化支持:AWQ、GPTQ、FP8 等,降低显存占用 安装 python3 -m venv vllm-env source vllm-env/bin/activate pip install vllm 对于显存有限的轻量环境,建议使用较小参数量模型并结合量化版本,例如 Qwen2.5-7B-Instruct-AWQ。 启动一个推理服务 vllm serve Qwen/Qwen2.5-7B-Instruct-AWQ \ --quantization awq \ --max-model-len 8192 \ --gpu-memory-utilization 0.85 \ --port 8000 启动后即可通过标准 OpenAI 接口调用: curl http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "Qwen/Qwen2.5-7B-Instruct-AWQ", "messages": [{"role": "user", "content": "你好"}] }' 小结 vLLM 的轻量化并不意味着功能阉割,而是在保持高吞吐的同时降低了部署门槛。后续文章将深入探讨显存调优、批处理参数以及生产环境的服务化实践。

2026-07-27 · 1 min · 80 words · ITNote