LLaMA-Factory 中 vLLM 安装与推理速度实测
在大模型落地的工程实践中,一个常被低估却至关重要的问题浮出水面:为什么训练好的模型一上线就'卡成幻灯片'?
我们见过太多这样的场景——本地测试时响应流畅,可一旦接入真实用户请求,系统立刻陷入高延迟、频繁 OOM(显存溢出)的窘境。究其根源,并非模型本身的问题,而是推理后端扛不住压力。
HuggingFace Transformers 固然强大,但它的默认推理模式为每个请求分配固定长度的 KV Cache,批处理也依赖静态 batching,面对变长输入和突发流量时显得力不从心。尤其在单卡部署、资源受限的边缘环境中,这种低效尤为致命。
有没有一种方式,能让 7B 级别的模型在消费级显卡上跑出'类服务级'的吞吐表现?答案是:vLLM + LLaMA-Factory 的组合拳。
为什么 vLLM 能破局?
传统推理引擎的瓶颈,本质上是显存管理和计算调度的双重失效。而 vLLM 的设计思路很像现代操作系统的内存管理——它把 KV Cache 当作虚拟内存页来处理。
这就是 PagedAttention 的核心思想:不再为每个序列一次性预分配完整的 attention 缓存,而是将其切分为多个'页面',按需加载、动态拼接。这样一来,即使两个请求的上下文长度相差十倍,它们也能共享同一块物理显存空间,极大提升了利用率。
更进一步,vLLM 实现了真正的 连续批处理(Continuous Batching)。想象一下,传统批处理就像公交车发车——必须等满员才启动;而 vLLM 则像是地铁,乘客随时上下,列车持续运行。哪怕某个长文本还在逐字生成,新来的短请求也能立即插入并开始推理,GPU 几乎没有空转时间。
官方宣称'5~10 倍吞吐提升'听起来夸张,但在合适场景下完全可期。我们的目标很明确:用真实微调模型,在 RTX 4090 上验证这一性能跃迁是否成立。
环境配置:别让依赖毁了你的实验
实验平台如下:
| 组件 | 版本 |
|---|---|
| GPU | NVIDIA RTX 4090 (24GB) |
| CUDA | 12.6 |
| Python | 3.10 |
| PyTorch | 2.3.1+cu126 |
| LLaMA-Factory | main 分支(2024Q4 版) |
安装 vLLM:避开版本陷阱
vLLM 对环境极其敏感,尤其是 CUDA 和 Python 的匹配。直接 pip install vllm 往往会触发源码编译,失败率极高。建议走'预编译 wheel 包'路线。
前往 vLLM Releases 页面,选择对应版本:
wget https://github.com/vllm-project/vllm/releases/download/v0.4.3/vllm-0.4.3+cu126-cp310-cp310-manylinux1_x86_64.whl
使用国内镜像加速安装:
pip install ./vllm-0.4.3+cu126-cp310-cp310-manylinux1_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
如果遇到:
RuntimeError: Failed to find C compiler. Please specify via CC environment variable.
说明缺少构建工具链。补上即可:
sudo apt-get update && apt-get install --no-upgrade -y build-essential

