SuperAPI AI 工具集

serving-llms-vllm

智能体与模型

查看项目

更新于 10-15 08:33

技能介绍

vLLM 是一个高性能大语言模型服务工具,通过 PagedAttention(基于分块的 KV 缓存)和连续批处理(混合 prefill/decode 请求)实现相比标准 transformers 最高 24 倍吞吐量。

用途 适用于部署生产级 LLM API(100+ req/sec)、提供 OpenAI 兼容端点、在 GPU 显存有限时服务大模型、多用户应用(聊天机器人、助手),以及需要低延迟与高吞吐并存的场景。

主要能力

  • 离线批量推理:一次调用处理全部提示,内部自动批处理。
  • OpenAI 兼容服务端:通过 vllm serve 启动,可用 OpenAI SDK 查询。
  • 量化模型服务:支持 AWQ(适合 70B 模型、精度损失小)、GPTQ(模型支持广、压缩好)、FP8(H100 上最快)。
  • 性能优化选项:前缀缓存、分块 prefill、张量并行、投机解码。
  • 监控:在指定端口暴露 Prometheus 指标,如 TTFT、运行请求数、KV 缓存利用率。

使用方式 安装:pip install vllm。 离线推理示例:从 vllm 导入 LLM 与 SamplingParams,初始化 LLM(model="meta-llama/Llama-3-8B-Instruct"),设置 SamplingParams(temperature=0.7, max_tokens=256),调用 llm.generate(["Explain quantum computing"], sampling)。 启动服务端:vllm serve meta-llama/Llama-3-8B-Instruct。 按模型规模配置:7B-13B 单卡;30B-70B 使用张量并行与量化;生产环境可加 --enable-prefix-caching、--enable-metrics。 生产部署流程:配置服务端 → 限量流量测试 → 启用监控 → Docker 部署 → 验证性能指标。 监控指标包括 vllm:time_to_first_token_seconds、vllm:num_requests_running、vllm:gpu_cache_usage_perc。

适用场景与限制 适合生产 LLM API、OpenAI 兼容端点、多用户应用;不适合 CPU/边缘单用户场景(可用 llama.cpp)、研究原型(可用 HuggingFace transformers)、仅 NVIDIA 且追求极致性能(可用 TensorRT-LLM)、已在 HuggingFace 生态内(可用 Text-Generation-Inference)。硬件需求:7B-13B 需 1x A10(24GB) 或 A100(40GB);30B-40B 需 2x A100(40GB) 张量并行;70B+ 需 4x A100(40GB) 或 2x A100(80GB) 并使用 AWQ/GPTQ。支持平台为 NVIDIA(主要)、AMD ROCm、Intel GPU、TPU。

常见问题 显存不足时降低 --gpu-memory-utilization 或使用量化;TTFT 过高可启用 --enable-prefix-caching 与 --enable-chunked-prefill;模型未找到可用 --trust-remote-code;吞吐低可提高 --max-num-seqs;推理慢需确认张量并行使用 2 的幂次 GPU 数量。

官方资源:https://docs.vllm.ai;https://github.com/vllm-project/vllm;论文《Efficient Memory Management for Large Language Model Serving with PagedAttention》(SOSP 2023);社区 https://discuss.vllm.ai。高级主题(服务端部署模式、性能优化、量化指南、故障排查)见对应参考文档。