【vLLM 学习】Prefix Caching

vLLM关键参数解析:如何通过enable-prefix-caching提升推理性能 本文深入解析了vLLM推理引擎中的关键参数`--enable-prefix-caching`。通过实际案例与性能测试,揭示了该参数如何通过复用公共提示词前缀的KV Cache,将Prefill阶段处理速度提升近5倍,并显著降低显存占用,从而整体提升大模型推理性能达30%以上。文章还提供了详细的启用方法与配置调优指南。 阅读详情

vLLM 是一款专为大语言模型推理加速而设计的框架,实现了 KV 缓存内存几乎零浪费,解决了内存管理瓶颈问题。

更多 vLLM 中文文档及教程可访问 →vllm.hyper.ai/

*在线运行 vLLM 入门教程:零基础分步指南

源码 examples/offline_inference/prefix_caching.py

# SPDX-License-Identifier: Apache-2.0

from vllm import LLM, SamplingParams
from vllm.distributed import cleanup_dist_env_and_memory

# 注意:这只是一个正在运行的示例。用于基准测试,
# 请参阅基准 benchmarks/benchmark_prefix_caching.py

# 常见前缀。
prefix = (
 "You are an expert school principal, skilled in effectively managing "
 "faculty and staff. Draft 10-15 questions for a potential first grade "
 "Head Teacher for my K-12, all-girls', independent school that emphasizes "
 "community, joyful discovery, and life-long learning. The candidate is "
 "coming in for a first-round panel interview for a 8th grade Math "
 "teaching role. They have 5 years of previous teaching experience "
 "as an assistant teacher at a co-ed, public school with experience "
 "in middle school math teaching. Based on these information, fulfill "
 "the following paragraph: ")

# 样本提示。
prompts = [
 "Hello, my name is",
 "The president of the United States is",
 "The capital of France is",
 "The future of AI is",
]

generating_prompts = [prefix + prompt for prompt in prompts]

# 创建一个采样参数对象。
sampling_params = SamplingParams(temperature=0.0)

# 创建一个没有前缀缓存的 LLM 作为基线。
regular_llm = LLM(model="facebook/opt-125m", gpu_memory_utilization=0.4)

print("Results without `enable_prefix_caching`")

# 从提示中生成文本。输出是 RequestOutput 对象的包含提示,生成的文本和其他信息的对象列表。
outputs = regular_llm.generate(generating_prompts, sampling_params)

regular_generated_texts = []
# 打印输出。
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    regular_generated_texts.append(generated_text)
 print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

print("-" * 80)

# 破坏 LLM 对象并释放 GPU 内存。
del regular_llm
cleanup_dist_env_and_memory()

# 使用启用前缀缓存创建一个 LLM。
prefix_cached_llm = LLM(model="facebook/opt-125m",
                        enable_prefix_caching=True,
                        gpu_memory_utilization=0.4)

# 预热,以便计算共享的提示 KV 缓存。
prefix_cached_llm.generate(generating_prompts[0], sampling_params)

# 使用前缀缓存生成。
outputs = prefix_cached_llm.generate(generating_prompts, sampling_params)

print("Results with `enable_prefix_caching`")

cached_generated_texts = []
# 打印输出。您应该看到与以前相同的输出。
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    cached_generated_texts.append(generated_text)
 print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

print("-" * 80)

# 比较结果并显示加速
generated_same = all([
    regular_generated_texts[i] == cached_generated_texts[i]
 for i in range(len(prompts))
])
print(f"Generated answers are the same: {generated_same}")
Prefix Caching 详解:实现 KV Cache 的跨请求高效复用 前缀缓存(Prefix Caching)是一种大语言模型推理优化技术,它的核心思想是缓存历史对话中的 KV Cache,以便后续请求能直接重用这些中间结果。这样可以显著降低首 token 延迟,提升整体推理效率。Prefix Caching 尤其适用于多轮对话、长文档问答等高前缀复用场景。Few-shot learning(少样本学习):多个请求都包含相同的 few-shot 示例部分,只是最后的问题不同。 阅读详情

相关推荐

vllm 参数介绍

一个重要参数enable-prefix-caching 特殊场景会提高很大性能。详细建视频:https://www.toutiao.com/video/7355331984845734435/?channel=&source=search_tabBelow, you can find an explanation of every engine argument for vLLM:--model Name or path of the huggingface mode

张伟的专栏 7478

vllm 里的 Automatic Prefix Caching 是什么意思,详细讲解下这个概念

vLLM 的 Automatic Prefix Caching 本质上是智能复用共享前缀的 KV Cache,以避免重复计算,提升推理效率、吞吐量和显存利用率。它与 Huggingface、Triton 的区别;实现细节中的 PagedAttention;是否支持 Streaming;我可以继续深入解释。需要吗?Q: 多并发场景中 prompt 都不同,Automatic Prefix Caching 还有意义吗?A: 有!因为在实际应用中,并发请求往往存在前缀重复或相似结构。

weixin_40548182的博客 2048

vLLM实战:如何用Prefix Caching加速多轮对话推理(附性能对比)

本文深入探讨了如何利用vLLM的Prefix Caching技术优化多轮对话推理性能。通过复用不同请求间共享的提示词前缀对应的KV Cache,可显著减少重复计算,有效降低首Token延迟。文章提供了详细的配置教程、性能对比数据及原理分析,并介绍了分布式场景下的Prefix Cache Aware Routing策略,为提升大模型服务效率提供了实用方案。

milk5的博客 978

图解大模型计算加速系列:vLLM源码解析3,Prefix Caching

当一个物理块没有任何逻辑块引用时(例如一个seq刚做完整个推理),这时它理应被释放。

python1234567_的博客 2122

vLLM关键参数解析:如何通过enable-prefix-caching提升KV Cache性能

本文深入解析vLLM中的enable-prefix-caching参数,探讨如何通过KV Cache机制提升大语言模型推理性能。详细介绍了该参数的优化原理、适用场景及配置建议,并结合实测数据展示其在高相似请求场景下可带来5倍以上的性能提升,为开发者提供实用的性能优化方案。

weixin_29045001的博客 546

VLLM专题(三十九)—自动前缀缓存(二)

前缀缓存(Prefix Caching)是一种在LLM推理中广泛使用的优化技术,旨在避免冗余的提示词(prompt)计算。其核心思想很简单——我们缓存已处理请求的键值缓存(kv-cache)块,并在新请求的前缀与之前请求相同时重用这些块。由于前缀缓存几乎是一种“免费的午餐”,并且不会改变模型输出,因此它已被许多公共端点(例如OpenAI、Anthropic等)和大多数开源LLM推理框架(例如SGLang)广泛采用。尽管实现前缀缓存的方法有很多,但vLLM选择了一种基于哈希的方法。

1218

高级特性:Prefix Caching和Chunked Prefill技术详解

vLLM除了基础的高性能推理能力外,还提供了许多高级特性,如Prefix Caching(前缀缓存)和Chunked Prefill(分块预填充)等,这些特性进一步提升了系统的性能和资源利用率。本文将深入探讨这些高级特性的技术原理、实现机制和应用场景,通过详细的代码示例和性能分析,帮助读者全面掌握如何在实际项目中有效利用这些特性来优化系统性能。随着大语言模型在各种应用场景中的深入使用,用户对系统性能的要求也越来越高。vLLM在提供基础高性能推理能力的同时,还实现了一系列高级特性来进一步优化性能。其中,Pre

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1457

Hifiasm参数调优实战:当N50不理想时的7个排查方向与解决方案

本文详细解析了Hifiasm参数调优实战,针对基因组组装中N50不理想的7个排查方向与解决方案。通过调整--hom-cov、-D、-N等核心参数,结合HiFi数据和参考基因组分析,有效提升组装质量。文章以猪毛菜基因组为例,展示了从2.1MB到4.3MB的N50优化过程,为生物信息学研究者提供实用指南。

weixin_30642561的博客 426

RAG系统工程师的日常——从数据合成到推理部署的全链路

RAG系统工程师日常全链路拆解:从数据合成脚本、Embedding与Reranker选型训练,到vLLM推理部署与TTFT压测,附401、local proxy failed等报错排查清单。用TaoToken统一Key与API通道串联模型调用,官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 可注册获取。

weixin_30205153的博客 167

告别轮询!手把手教你用S32K3的FlexCAN Enhanced FIFO+DMA实现高效CAN FD数据接收

本文详细介绍了如何利用S32K3芯片的FlexCAN Enhanced FIFO与DMA组合方案,实现高效CAN FD数据接收,彻底告别传统轮询和中断模式。通过深度缓冲、智能过滤和DMA联动技术,该方案在5Mbps高负载场景下将CPU占用率从42%降至3%以下,显著提升系统实时性和吞吐量。

weixin_30906185的博客 502

Wireshark抓包实战:5个CTF比赛中高频出现的流量分析技巧(附真实案例)

本文分享了Wireshark在CTF比赛和实战渗透中的五个核心流量分析技巧。内容涵盖从宏观统计概览锁定可疑目标、深度解析ICMP与HTTP等协议、追踪重组完整会话流,到利用字符串搜索和命令行工具进行自动化分析。掌握这些高阶技巧能显著提升分析海量网络流量的效率与精准度。

rrr55的博客 261

vLLM Prefix Caching 深度解析:将大模型首 Token 延迟砍半的工程实践

Prefix Caching 是 vLLM 推理引擎中最具性价比的性能优化手段之一。通过一个参数,即可在多轮对话、批量推理等场景中实现 50% 以上的首 Token 延迟降低和吞吐量提升。分析业务请求中的 Prefix 重复率,评估命中率预期;在预发环境开启,设置作为起点;使用 vLLM 自带的观测 Cache Hit Rate;依据实际命中率调整 Block 大小和显存分配策略。

iymei4986533030的博客 1036

hfss仿真软件入门教程

hfss仿真软件入门教程 1.模型建立 1.1在project种选择insert hfss design 1.2.在hfss-》solution type 中选择modal 1.3.在moderler-》中选择units 设置单温为mm 1.4进行画图操作,这里为提高效率直接导入一个已经画好的cad图。使用modeler-》import 2.设置端口 2.1在更改模型中的材料 选择需要更改材料...

xunshui2007的博客 3万+

vllm prefix-caching实现原理

前缀缓存(Prefix Caching)是一种大语言模型推理优化技术,它的核心思想是缓存历史对话中的 KV Cache,以便后续请求能直接重用这些中间结果。这样可以显著降低首 token 延迟,提升整体推理效率。Prefix Caching 尤其适用于多轮对话、长文档问答等高前缀复用场景。Few-shot learning(少样本学习):多个请求都包含相同的 few-shot 示例部分,只是最后的问题不同。

qq_31000153的博客 258

【图像去噪】论文精读:Restormer: Efficient Transformer for High-Resolution Image Restoration

论文题目:Restormer: Efficient Transformer for High-Resolution Image Restoration —— Restormer:用于高分辨率图像恢复的高效变压器高效Transformer模型用于图像恢复!由于卷积神经网络 (CNN) 在从大规模数据中学习可泛化的图像先验方面表现良好,因此这些模型已广泛应用于图像恢复和相关任务。最近,另一类神经架构 Transformer 在自然语言和高级视觉任务中显示出显着的性能提升。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1526

Simulink仿真模块 -Scope

如果您将 Scope 模块放在具有锁定链接的库或者锁定的库中,当尝试打开示波器窗口时,Simulink 会显示错误。要显示某个库模块中的内部数据,请为库模块添加一个输出端口,然后将此端口连接到您模型中的 Scope 模块。当您在示波器内可视化多个基于帧的信号时,部分帧大小为 1 的信号采样可能不会显示。当在示波器内可视化多个基于帧的信号时,部分帧大小为 1 的信号采样可能不会显示。如果在仿真开始时波形视图关闭,则当在仿真后打开波形视图时,波形视图将显示附加的输入信号的仿真结果。

jk_101的博客 3791

vLLM-v0.17.1配置指南:如何启用Prefix Caching加速重复请求

本文介绍了如何在星图GPU平台上自动化部署vLLM-v0.17.1镜像,并启用Prefix Caching功能以加速重复请求处理。该技术特别适用于客服系统和标准化报告生成等场景,能显著降低延迟、提高吞吐量并节省GPU资源。通过简单的配置步骤,用户可快速优化大语言模型的推理性能。

weixin_42506884的博客 944

11、RK3566/3568 Android11切割屏幕 长条屏 显示

在使用 RK3566 平台进行 Android 11 开发时,遇到切割屏(长条屏)显示画面不全。本文将详细介绍如何配置,以及如何修改 HWComposer 来调整显示区域,解决图像缩放问题。我这边屏幕是lvds接口的,分辨率1920 1080实际的屏物理尺寸是1920x463。

qq_39451352的博客 252

vLLM中的enable-prefix-caching和Chunked-Prefill

PagedAttention 架构:vLLM 的核心设计就是围绕 KV Cache,没有 KV Cache,vLLM 就无法进行高效 decode,Decode 阶段必然依赖 KV Cache。enable-prefix-caching参数控制的是:不同请求之间不会共享 KV Cache,多轮聊天中:每一轮都会重新计算前缀的 KV,TTFT 会更高。在 vLLM中:KV Cache 是强制开启的基础能力,不存在“不开 KV Cache 的推理模式”。,而不是一次性把整个 Prompt 算完再开始生成。

NCU_wander的博客 777

YOLOv12超参数智能优化:基于内置Ray Tune的自动化调优实战指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 目标检测模型的性能瓶颈往往源于超参数配置不当。传统手动调优方式不仅耗时耗力,且难以找到全局最优解。YOLOv12集成的Ray Tune框架为解决这一难题提供了完整方案,通过分布式异步优化算法,可实现超参数搜索效率的指数级提升。实际测试表明,采用Ray Tune自动调优的YOLOv12模型,在COCO数据集上mAP指标平均提升3.8%,收敛速度加快2.1倍。在VisDrone无人机数据集上的跨域测试

LXY_LOVE36的博客 119

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Qwen3-0.6B-FP8部署教程:vLLM启用--enable-prefix-caching优化重复提示

本文介绍了如何在星图GPU平台上自动化部署Qwen3-0.6B-FP8镜像,并启用vLLM的--enable-prefix-caching功能以优化重复提示处理。该轻量级模型适用于智能客服、代码助手等文本生成场景,通过缓存公共前缀显著提升多并发请求的响应速度与资源效率。

weixin_42506884的博客 665

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

vLLM Automatic Prefix Caching:KV Cache 前缀复用机制的原理、配置与实战

Automatic Prefix Caching(APC)是 vLLM 中用于消除重复 prompt 计算的核心优化:引擎会缓存已处理请求的 KV cache 块,当新请求与已有请求共享相同前缀时直接复用这些块,跳过共享部分的 prefill 计算。本文基于仓库中的功能文档([docs/features/automatic_prefix_caching.md](https://link.gitco

gitblog_00705的博客 446

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

大模型推理引擎vLLM(12): vLLM Prefix Caching以及eviction的相关问题和代码

大模型推理引擎vLLM(12): vLLM Prefix Caching以及eviction的相关问题和代码

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 910

vLLM 推理引擎高并发显存防爆:Prefix Caching 与 Chunked Prefill 实战

在大促高峰期间,大语言模型推理集群面临的最大系统性风险不是请求排队,而是由于突发的超长上下文请求(Long Prompt)引发的**显存瞬间爆仓(CUDA Out of Memory, OOM)**以及由此导致的引擎崩溃。在传统的推理配置下,当一个 16K 或 32K 的超长 Prompt 涌入时,推理引擎(如 vLLM 或 TGI)会尝试在单次迭代中完成整个长文本的预填充(Prefill)计算。

m0_50889382的博客 1976

Prefix Caching优化秘籍:如何让VLLM的KV Cache复用率提升3倍

本文深入剖析了VLLM中Prefix Caching(前缀缓存)的KV Cache管理机制,通过优化Block Size、哈希计算与缓存分配策略,可显著提升KV Cache的复用率。文章提供了实战优化秘籍,包括提示词工程、关键参数调整及特殊场景处理,旨在帮助开发者在生产环境中将缓存性能提升数倍,实现计算资源的高效利用。

weixin_29094539的博客 388
上一篇: 【Triton 教程】triton_language.view
下一篇: 【TVM 教程】Python 目标参数化
HyperAI超神经
博客等级 码龄7年 8873粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值