FlexKV 已于 2026 年 3 月 17 日正式合并进入 vLLM 官方主干(PR #34328)。
从 vLLM v0.17.2rc0(commit 8cb24d3)起,FlexKVConnectorV1 已内置于 vLLM,无需再手动打 patch。
推荐做法:直接安装 vLLM >= v0.17.2 正式版(或当前 main 分支),不再需要使用
examples/vllm_adaption/下的 patch 文件。
旧版 patch 仍保留于examples/vllm_adaption/目录,供需要使用 vLLM < 0.17.2 的用户参考。
在 commit 0290841dce65ae9b036a23d733cf94e47e814934,我们更新了一个重要功能:
FlexKV 从 client-server 模式,变为推理加速引擎(如 vLLM)可直接调用的库函数,以减少进程间消息传递的开销。
这一变更引发了较大的 API 调整。因此,请注意:
- 版本 >=
1.0.0:应使用 当前版本 API。 - 版本 ==
0.1.0:仅支持 Legacy 版本 API, vLLM patch位于examples/vllm_adaption_legacy/。
- FlexKV >=
1.0.0 - vLLM >=
0.17.2(推荐):内置 FlexKVConnectorV1,无需打 patch,直接使用 - vLLM
0.10.1~0.17.1:需手动 apply patch,参见使用旧版 vLLM(需 patch)
使用32GB的CPU内存作为二级缓存。
unset FLEXKV_CONFIG_PATH
export FLEXKV_CPU_CACHE_GB=32使用32GB的CPU内存和1T的SSD存储分别作为二级和三级缓存。(假设机器有两个SSD,并分别挂载在/data0和/data1两个路径上。)
# generate config
cat <<EOF > ./flexkv_config.yml
cpu_cache_gb: 32
ssd_cache_gb: 1024
ssd_cache_dir: /data0/flexkv_ssd/;/data1/flexkv_ssd/
enable_gds: false
EOF
export FLEXKV_CONFIG_PATH="./flexkv_config.yml"注:
flexkv_config.yml配置仅为简单示例,选项请参考docs/flexkv_config_reference/README_zh.md
- 安装 vLLM(>= 0.17.2 正式版,或从官方 main 分支源码安装)
pip install vllm>=0.17.2
# 或从源码安装最新 main 分支:
# git clone https://github.com/vllm-project/vllm.git && cd vllm && pip install -e .- 安装 FlexKV
pip install flexkv # 或从源码编译:./build.sh- offline test
# 参考 VLLM_DIR/examples/offline_inference/prefix_caching_flexkv.py
python examples/offline_inference/prefix_caching_flexkv.py- online serving
VLLM_USE_V1=1 python -m vllm.entrypoints.cli.main serve Qwen3/Qwen3-32B \
--tensor-parallel-size 8 \
--trust-remote-code \
--port 30001 \
--max-num-seqs 128 \
--max-num-batched-tokens 8192 \
--max_model_len 8192 \
--max-seq-len-to-capture 8192 \
--gpu-memory-utilization 0.8 \
--enable-chunked-prefill \
--enable-prefix-caching \
--kv-transfer-config \
'{"kv_connector":"FlexKVConnectorV1","kv_role":"kv_both"}'如需在 vLLM < 0.17.2 上使用 FlexKV,请手动 apply 对应版本的 patch:
| vLLM 版本 | patch 文件 |
|---|---|
| 0.10.1.1 | examples/vllm_adaption/vllm_0_10_1_1-flexkv-connector.patch |
| 0.14.1+ | examples/vllm_adaption/vllm_up_0_14_1-flexkv-connector.patch |
| 0.16.0 | examples/vllm_adaption/vllm_0_16_0-flexkv-connector.patch |
cd vllm
git apply FLEXKV_DIR/examples/vllm_adaption/<对应patch文件>
pip install -e .- FlexKV <=
0.1.0
旧版本配置方式如下
# generate config
cat <<EOF > ./flexkv_config.json
{
"server_recv_port": "ipc:///tmp/flexkv_test",
"cache_config": {
"enable_cpu": true,
"num_cpu_blocks": 10240
},
"num_log_interval_requests": 200
}
EOF
export FLEXKV_CONFIG_PATH="./flexkv_config.json"在 vLLM 0.8.4 版本中应用patch examples/vllm_adaption_legacy/flexkv_vllm_0_8_4.patch,分别启动 FlexKV、vLLM 和测试脚本:
# 启动 FlexKV 作为服务端
bash benchmarks/flexkv_benchmark/run_flexkv_server.sh
# 启动 vLLM 作为客户端
bash benchmarks/flexkv_benchmark/serving_vllm.sh
# 启动性能测试
bash benchmarks/flexkv_benchmark/multiturn_benchmark.sh在 vLLM 0.10.0 版本中应用patch examples/vllm_adaption_legacy/flexkv_vllm_0_10_0.patch,测试方法同上。