vLLM 是目前业界广泛使用的大模型推理服务框架,其吞吐量远超传统方案。但很多用户在 Ubuntu 22.04 上部署时,往往忽略了关键调优参数,导致显存利用不足或延迟偏高。本文将从原理到实战,手把手带你掌握 vLLM调优 的核心技巧,实现 大模型推理优化 的极致性能。
vLLM 基于 PagedAttention 技术,将KV缓存分页管理,大幅减少显存碎片。但默认参数不一定适合你的硬件和模型。理解以下概念是 vLLM性能优化 的基础:
max_num_batched_tokens 控制单次前向传递的最大token数,直接影响吞吐。gpu_memory_utilization 决定预留多少显存给KV缓存,过高可能导致OOM。block_size 影响显存分配粒度,默认为16,小模型可适当减小。在开始 Ubuntu 22.04部署vLLM 前,请确保系统满足以下要求:
# 更新系统sudo apt update && sudo apt upgrade -y# 安装CUDA 11.8+ (以11.8为例)wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.runsudo sh cuda_11.8.0_520.61.05_linux.run --toolkit --silent --override# 配置环境变量echo "export PATH=/usr/local/cuda-11.8/bin:$PATH" >> ~/.bashrcecho "export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH" >> ~/.bashrcsource ~/.bashrc# 安装Python 3.10+ (Ubuntu 22.04自带3.10)sudo apt install python3-pip -y
为了获得最佳性能,推荐从源码编译vLLM,可以针对你的GPU架构优化。但新手也可直接使用pip安装:
# pip安装(快速但可能非最优)pip install vllm# 源码编译(推荐调优)git clone https://github.com/vllm-project/vllm.gitcd vllmpip install -e . # 自动编译CUDA内核
编译时可以通过设置 TORCH_CUDA_ARCH_LIST 指定GPU架构,例如 export TORCH_CUDA_ARCH_LIST="8.0;8.6;8.9" 以提升性能。
下面我们通过一个实际例子,演示如何在Ubuntu 22.04上调优vLLM服务。假设使用 meta-llama/Llama-2-7b-chat-hf 模型,GPU为A100 80G。
gpu_memory_utilization 默认0.9,即预留90%显存给KV缓存。若你的模型权重较大,可适当降低,避免OOM。但过低会降低并发能力。建议从0.85开始测试。
python -m vllm.entrypoints.openai.api_server \n --model meta-llama/Llama-2-7b-chat-hf \n --gpu-memory-utilization 0.85 \n --max-num-batched-tokens 4096
max_num_batched_tokens 决定一次推理合并的最大token数。对于7B模型,可以尝试8192甚至16384,观察显存占用和吞吐。配合 max_num_seqs 控制最大并发序列数。
python -m vllm.entrypoints.openai.api_server \n --model meta-llama/Llama-2-7b-chat-hf \n --max-num-batched-tokens 8192 \n --max-num-seqs 256
block_size 默认16,若处理长序列(如2048+),增大块大小(如32或64)可减少管理开销,但可能增加内部碎片。短任务适合小块。
python -m vllm.entrypoints.openai.api_server \n --model meta-llama/Llama-2-7b-chat-hf \n --block-size 32
对于长提示词,启用 --enable-chunked-prefill 可将prefill阶段拆分为小块,避免阻塞decode,提升整体吞吐。
调优后,使用 nvidia-smi 监控显存使用,或用 vllm 自带的benchmark脚本测量吞吐:
python benchmarks/benchmark_throughput.py --model meta-llama/Llama-2-7b-chat-hf --input-len 1024 --output-len 512 --num-prompts 1000
下图展示了不同参数下的吞吐对比(实验数据示意):
gpu_memory_utilization 或 max_num_batched_tokens。--tensor-parallel-size),或块大小不合理。--max-model-len 匹配模型最大长度。通过本文,你不仅理解了vLLM的底层原理,还掌握了在Ubuntu 22.04上从安装到调优的全流程。记住,vLLM调优 没有万能参数,必须结合硬件负载反复试验。建议每次只调整一个变量,记录性能变化。最后,欢迎在评论区交流你的调优经验!
—— 让 大模型推理优化 不再困难
本文由主机测评网于2026-03-15发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20260331424.html