大模型部署指南之 vLLM 篇:基于PagedAttention的工业级推理方案

一、vLLM 是什么?

vLLM 是一个快速且易于使用的库,用于 LLM 推理和服务。

1.1 核心优势

  1. vLLM 速度很快,因为它具有:
    • 最先进的服务吞吐量
    • 使用 PagedAttention 对注意力键和值内存进行高效管理
    • 对传入请求进行连续批处理
    • 使用 CUDA/HIP 图进行快速模型执行
    • 量化:GPTQAWQINT4INT8FP8
    • 优化的 CUDA 内核,包括与 FlashAttentionFlashInfer 的集成。
    • 推测解码
    • 分块预填充
  2. vLLM 灵活且易于使用,因为它具有:
    • 与流行的 HuggingFace 模型无缝集成
    • 使用各种解码算法(包括 并行采样束搜索 等)进行高吞吐量服务
    • 支持分布式推理的 张量并行管道并行
    • 流式输出
    • OpenAI 兼容的 API 服务器
    • 支持 NVIDIA GPU、AMD CPU 和 GPU、Intel CPU 和 GPU、PowerPC CPU、TPU 和 AWS Neuron。
    • 支持前缀缓存
    • 支持多 LoRA

二、快速开始

2.1 安装

conda create -n vllm python=3.10 -y && conda activate vllm
pip install vllm

2.2 验证

vllm --version  # 查看版本

2.3 默认仓库

vLLM 默认从 HuggingFace 上面下载模型
如果需要从 ModelScope 上面下载模型,设置以下环境变量:

export VLLM_USE_MODELSCOPE=True

三、高级命令说明

3.1 调用在线模型chat示例

vllm chat \
--model-name glm-4-plus \                                       # 模型名称
--url https://open.bigmodel.cn/api/paas/v4/ \                   # 模型地址
--api-key api_key \                                             # API 密钥
--system-prompt "你是一个AI助手"                                  # 系统提示

3.2 调用在线模型complete示例

vllm complete \
--model-name glm-4-plus \                                       # 模型名称
--url https://open.bigmodel.cn/api/paas/v4/chat \               # 模型地址
--api-key api_key                                               # API 密钥

3.3 启动服务

参数说明
--host设置服务绑定的主机地址(默认127.0.0.1,公网访问需设为0.0.0.0)
--port设置服务端口(默认8000)
--api-key设置OpenAI兼容API的访问密钥(可选)
--block-sizePagedAttention 的块大小(默认16,影响显存效率)
--max-num-seqs控制请求调度和吞吐量
--max-num-batched-tokens批处理的最大 token 数(影响吞吐量)
--gpu-memory-utilizationGPU内存利用率(0-1)
--cpu-offload-gb将部分模型权重卸载到CPU内存(默认0,禁用)
--max-model-len设置最大序列长度(默认由模型决定)
--quantization启用量化(如gptq、awq)
--tensor-parallel-size设置Tensor并行规模(多GPU分布式推理)
--trust-remote-code允许加载Hugging Face模型时执行远程代码(安全风险提示)
--enforce-eager禁用 CUDA 图优化(提升兼容性,可能降低性能)
--log-level设置日志输出级别(如info、debug)
--设置配置文件(yaml格式)

示例:

vllm serve \
/path/to/model \
--gpu-memory-utilization 0.95 \
--max-model-len 1024 \
--block-size 16 \
--max-num-seqs 4 \
--tensor-parallel-size 1

3.4 基准测试工具

用于评估大语言模型推理的 性能指标(如吞吐量、延迟、显存占用等)

参数说明
--model模型路径
--tokenizer可选的独立tokenizer路径
--num-promptsAPI 密钥
--max-num-seqs测试使用的prompt数量
--seed随机种子
vllm bench serve \
--model /path/to/model

四、API调用

4.1 REST API

curl http://localhost:8000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "model_name",
        "messages": [{"role": "user", "content": "你好"}]
    }'

五、高级功能

5.1 对接可视化界面

搭配 OpenWebUI

export OPENAI_API_BASE_URL=http://localhost:8000/v1
open-webui serve

5.2 分布式推理核心机制

  1. 张量并行:通过 --tensor-parallel-size 参数指定GPU数量,支持多卡协同计算。
  2. PagedAttention:将注意力机制的键值(KV)缓存分块存储,减少显存碎片,提升利用率。
  3. 连续批处理:动态合并不同长度的请求,减少CPU空闲时间。
    注意:
  • 通过访问 http://localhost:8080 使用Web界面。
  • 不设置 OPENAI_API_BASE_URL 环境变量
    1. 可以通过在 web 界面配置中手动设置 API 地址(头像 -> 设置 -> 外部连接 -> + -> URL -> 密匙 -> 保存)
    2. web 界面左上角选择对应模型即可

六、总结

vLLM 是 生产级大模型推理的终极解决方案,尤其适合:

  • 🚀 高并发场景:每秒处理数百请求
  • 💾 显存敏感环境:PagedAttention 实现零浪费
  • 🔌 快速集成:完全兼容 OpenAI API

资源推荐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeSilence

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值