Automatic Prefix Caching

APC技术,遇到新prompt和老prompt前缀完全相等的,则复用老prompt的KV cache,避免重新计算。

VLLM代码实例:

# set enable_prefix_caching=True to enable APC
llm = LLM(
    model='lmsys/longchat-13b-16k',
    enable_prefix_caching=True
)

 应用场景:

1. 长文档问答。给1个长文档,变换不同的query。则把长文档放到前面,可以复用KV cache。

2. 多轮聊天。多轮对话聊天历史,放到前面,可以复用KV cache。

我的实验:

1. fetch_count>1时,不管是否打开enable_prefix_caching,prompt的KV cache都会被复用。

2. prefill公共前缀较长,且decode output较短时,KV cache复用的威力才能发挥出来。

3. 只要前面有1个字符不同,后面完全相同的部分,也不能被视为公共前缀。因为2个prompt这部分的KV值不相等了。

### vLLM端口配置及相关说明 vLLM 是一种高效的大规模语言模型推理引擎,支持多种部署方式和性能优化技术。关于其端口配置以及使用方法的信息如下: #### 默认端口设置 当通过命令 `python -m vllm.entrypoints.openai_server --model lmsys/vicuna-7b-v1.3 --server-kind local` 启动 vLLM 服务时,默认情况下会监听 HTTP 请求并绑定到本地主机上的特定端口号[^1]。默认的 HTTP 端口通常是 **8000**。 如果需要更改此端口,可以通过添加参数 `--port <自定义端口号>` 来实现。例如: ```bash python -m vllm.entrypoints.openai_server --model lmsys/vicuna-7b-v1.3 --server-kind local --port 9000 ``` 上述命令将使服务器运行于指定的端口(此处为 9000),而非默认端口。 #### 配置文件选项 除了通过命令行传递参数外,还可以利用 JSON 格式的配置文件来管理更复杂的设置。创建一个名为 `config.json` 的文件,并在其中定义所需的参数,包括但不限于端口、模型路径和其他高级选项。以下是示例配置文件的内容: ```json { "model": "lmsys/vicuna-7b-v1.3", "server_kind": "local", "port": 9000, "memory_optimization": { "prefetch_size": 4, "use_prefix_cache": true } } ``` 随后可以执行以下命令加载该配置文件: ```bash python -m vllm.entrypoints.openai_server --config config.json ``` 这种做法特别适合生产环境下的复杂场景需求[^2]。 #### 性能调优中的内存共享机制 为了提高多线程或多 GPU 场景下资源利用率,vLLM 提供了自动前缀缓存功能 (Automatic prefix caching),这有助于减少重复计算带来的开销。启用这一特性可通过配置项 `"use_prefix_cache"` 设置为 `true` 实现,具体参见前述配置文件实例。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值