使用 OpenVINO 安装#
由 OpenVINO 提供支持的 vLLM 支持来自 vLLM 支持的模型列表 的所有 LLM 模型,并且可以在所有至少支持 AVX2 的 x86-64 CPU 上执行最佳模型服务。OpenVINO vLLM 后端支持以下高级 vLLM 功能:
前缀缓存 (
--enable-prefix-caching
)分块预填充 (
--enable-chunked-prefill
)
目录:
要求#
操作系统:Linux
指令集体系结构 (ISA) 要求:至少为 AVX2。
使用 Dockerfile 快速入门#
$ docker build -f Dockerfile.openvino -t vllm-openvino-env .
$ docker run -it --rm vllm-openvino-env
从源代码安装#
首先,安装 Python。例如,在 Ubuntu 22.04 上,你可以运行:
$ sudo apt-get update -y $ sudo apt-get install python3
其次,安装 vLLM OpenVINO 后端安装的先决条件:
$ pip install --upgrade pip $ pip install -r requirements-build.txt --extra-index-url https://download.pytorch.org/whl/cpu
最后,使用 OpenVINO 后端安装 vLLM:
$ PIP_EXTRA_INDEX_URL="https://download.pytorch.org/whl/cpu" VLLM_TARGET_DEVICE=openvino python -m pip install -v .
性能提示#
vLLM OpenVINO 后端使用以下环境变量来控制行为:
VLLM_OPENVINO_KVCACHE_SPACE
用于指定 KV 缓存大小(例如,VLLM_OPENVINO_KVCACHE_SPACE=40
表示 KV 缓存占用 40 GB 空间),设置更大的值将允许 vLLM 并行运行更多请求。此参数应根据用户的硬件配置和内存管理模式进行设置。VLLM_OPENVINO_CPU_KV_CACHE_PRECISION=u8
用于控制 KV 缓存精度。默认情况下,根据平台使用 FP16 / BF16。VLLM_OPENVINO_ENABLE_QUANTIZED_WEIGHTS=ON
用于在模型加载阶段启用 U8 权重压缩。默认情况下,压缩处于关闭状态。你也可以使用 optimum-cli 导出具有不同压缩技术的模型,并将导出的文件夹作为 <model_id> 传递。
为了获得更好的 TPOT / TTFT 延迟,你可以使用 vLLM 的分块预填充功能 (--enable-chunked-prefill
)。根据实验结果,推荐的批次大小为 256
(--max-num-batched-tokens
)。
OpenVINO 最佳已知配置为:
$ VLLM_OPENVINO_KVCACHE_SPACE=100 VLLM_OPENVINO_CPU_KV_CACHE_PRECISION=u8 VLLM_OPENVINO_ENABLE_QUANTIZED_WEIGHTS=ON \
python3 vllm/benchmarks/benchmark_throughput.py --model meta-llama/Llama-2-7b-chat-hf --dataset vllm/benchmarks/ShareGPT_V3_unfiltered_cleaned_split.json --enable-chunked-prefill --max-num-batched-tokens 256
限制#
不支持 LoRA 服务。
目前仅支持 LLM 模型。LLaVa 和编码器-解码器模型目前在 vLLM OpenVINO 集成中不可用。
张量和流水线并行目前在 vLLM 集成中不可用。