当前位置: 首页 > article >正文

大模型推理中Prefill与Decode、KV Cache三者说明

大语言模型推理基于自回归生成范式严格分为Prefill预填充与Decode解码两个阶段。二者在计算形态、访存特征、硬件瓶颈上存在本质差异。KV Cache键值缓存是实现两阶段衔接、消除重复计算的核心机制。而PD 分离Prefill-Decode Separation则是针对两阶段异构特性提出的推理调度与架构优化方案。一、大模型推理的Prefill与Decode阶段LLM基于Transformer架构的自回归生成特性决定了其推理过程需分阶段完成。Prefill阶段完成对输入提示词的并行处理与缓存构建Decode阶段则基于缓存进行串行的token生成两个阶段衔接构成完整的推理流程且各自具备鲜明的技术特征。Prefill阶段的理论计算量比较大但在整个推理过程中的耗时占比并不多。ecode阶段的理论计算量比较小但因为是串行计算按顺序生成token整个推理过程中的耗时占比较大。1.1 Prefill预填充阶段Prefill阶段是模型对用户输入的完整Prompt进行一次性编码、计算并生成首个token的批量并行计算阶段也是推理的前置核心步骤。核心流程首先对用户输入的自然语言进行Tokenization分词转换为模型可理解的token序列随后模型对所有输入token进行并行计算逐层完成Transformer的注意力机制与前馈网络FFN计算为每个token生成对应的Key键和Value值向量最后基于这些向量生成推理的首个输出token并将所有输入token的KV向量填充至KV Cache中为Decode阶段做准备。关键特征一次性处理整个Prompt序列所有计算并行完成GPU利用率接近100%属于计算密集型阶段耗时仅由原始Prompt的长度决定与后续生成的token数量无关该阶段指标为TTFTTime To First Token首Token生成时间是用户感知推理延迟的首要指标。计算瓶颈核心计算量集中在注意力机制的O ( n 2 ⋅ d ) O(n^2·d)O(n2⋅d)运算n nn为Prompt长度d dd为特征维度当Prompt序列较长时注意力矩阵的计算会成为主要瓶颈同时带来临时的高显存占用。1.2 Decode解码阶段Decode阶段是模型以Prefill阶段的输出为基础逐一生成后续每一个token的串行迭代计算阶段是自回归生成的核心过程。每一步只生成一个新 token核心流程将上一阶段生成的首个token作为输入模型复用Prefill阶段缓存的KV向量仅计算当前token的Query查询向量并通过注意力机制与历史KV向量交互随后通过LM Head得到下一个token的概率分布采样生成新token同时将新token的KV向量增量追加至KV Cache中重复此过程直至生成终止符或达到最大生成长度最后通过Detokenization将生成的token序列转回自然语言。关键特征串行迭代执行每次仅处理一个token无法并行加速投机解码等优化手段除外GPU利用率极低约1%属于内存带宽受限型阶段总耗时与生成 token 数量成正比反复循环直到遇到 |end of text| 或达到长度上限。核心性能指标为TPOTTime Per Output Token单输出token平均时间和TBTToken By Token连续token生成间隔TBT的稳定性直接决定用户体验的流畅度。计算瓶颈每一步计算量较小但需要加载全部模型参数算术强度计算量/数据传输量极低GPU大部分时间处于等待数据传输的状态内存带宽成为核心瓶颈同时需持续占用显存保存KV Cache显存压力随生成token数量增加而增大。1.3 Prefill与Decode阶段核心差异两个阶段在计算方式、资源需求、优化方向等方面存在本质差异具体对比如下对比维度Prefill预填充阶段Decode解码阶段计算方式批量并行计算一次性处理整个Prompt串行增量计算每次仅处理一个token注意力范围仅针对原始Prompt序列无生成token原始Prompt所有已生成的token资源瓶颈算力FLOPs注意力O ( n 2 ) O(n^2)O(n2)计算内存带宽模型参数与KV Cache访存GPU利用率高接近100%低约1%性能指标TTFT首Token生成时间TPOT单token生成时间、TBTtoken生成间隔显存特征临时高占用处理完Prompt后趋于稳定持续高占用随token生成逐步增加批处理效果优化空间大大批量可提升吞吐量优化空间有限需动态调整任务加速手段Tensor Core加速、FP16/INT8量化、Flash Attention内存访问优化、KV Cache压缩、Continuous Batching二、KV Cache的实现原理与核心作用KV Cache是解决Transformer自回归生成中重复计算问题的关键优化技术通过在推理过程中缓存每一层每一个 token 的 Key 与 Value 向量的显存空间目的是彻底避免自回归生成中的重复计算。在标准Transformer 自注意力中Attention ( Q , K , V ) Softmax ( Q K ⊤ d k ) V \text{Attention}(Q,K,V) \text{Softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)VAttention(Q,K,V)Softmax(dk​​QK⊤​)V每次生成新 token 都要重新计算所有前文的 K、V复杂度为O ( N 2 ) O(N^2)O(N2)。KV Cache 让历史 KV 只算一次、永久复用将 decode 阶段复杂度降至近似O ( N ) O(N)O(N)。2.1 KV Cache的实现原理KV Cache的实现围绕Prefill和Decode两个阶段的不同需求设计核心是首次构建、增量追加的缓存机制2.2 无KV Cache与有KV Cache的推理对比在未引入KV Cache的朴素推理流程中每生成一个新token模型都需要对所有历史序列包括原始Prompt和已生成的token重新计算KV向量导致大量的重复计算推理效率随序列长度增加呈指数级下降。引入KV Cache后推理过程被拆分为Prefill和Decode阶段实现了计算量的大幅缩减Prefill阶段一次性完成原始Prompt的KV计算与缓存Decode阶段仅需完成新token的增量计算与缓存追加所有历史KV向量均通过缓存复用从“全量重复计算”变为“增量计算缓存复用”显著降低了推理的时间与显存开销。2.3 KV Cache的核心作用三、PD分离推理的优化策略PDPrefill Decode分离推理是针对Prefill和Decode阶段特性差异与传统一体化推理资源竞争问题提出的创新优化架构核心是将两阶段从逻辑和物理上解耦针对各自的资源需求进行专门化的硬件部署与优化实现推理效率与资源利用率的双重提升。3.1 传统一体化推理的核心问题传统大模型推理架构将Prefill和Decode阶段部署在同一硬件设备上导致两大核心问题Prefill 是计算密集Decode 是带宽密集同硬件无法同时最优高算力 GPU 在 Decode 阶段大量闲置。新请求的 Prefill 会抢占正在生成的 Decode 任务资源导致TBT 抖动、卡顿3.2 PD分离推理的核心原理PD分离推理的核心思想是解耦与专门化通过三个维度的设计实现两阶段的独立优化3.3 具体实现方案PD分离推理的实现分为物理分离和逻辑分离两种形式可根据实际部署规模与资源条件选择核心是实现两阶段的独立调度与KV Cache的高效传输物理分离部署Prefill集群部署在高算力GPU如A100、H100上充分利用其强大的并行计算能力和Tensor Core加速特性专注于快速处理输入Prompt优化TTFT采用大批量处理策略提升Prefill阶段的吞吐量结合Flash Attention、张量并行等技术解决长Prompt的计算瓶颈。Decode集群部署在大显存、高内存带宽的硬件如大内存L40 GPU、专用推理芯片上专注于高效的token生成和KV Cache管理采用Continuous Batching技术提升并发处理能力通过KV Cache压缩、内存访问优化缓解内存带宽瓶颈。高速网络互连两个集群通过NVLink、RDMA等高速网络实现KV Cache数据的高效传输确保Prefill阶段生成的缓存能够快速、低延迟地传递至Decode阶段减少数据传输的额外开销。逻辑分离调度在同一GPU设备上通过调度算法将Prefill和Decode请求分开处理为两阶段分配独立的计算资源与显存空间。Prefill请求采用大Batch Size调度充分利用GPU的计算能力Decode请求采用Continuous Batching调度提升串行生成的并发效率避免两类请求的资源抢占。3.4 关键技术突破PD分离推理的落地需要解决数据传输、任务调度、状态一致性等核心技术挑战目前主流的PD分离系统如DistServe、Mooncake已通过以下技术实现了突破四、总结与展望Prefill 阶段对输入 Prompt 并行编码一次性构建KV Cache属于计算密集型任务。Decode 阶段逐 token 迭代生成复用KV Cache避免重复计算属于显存带宽密集型任务。KV Cache是自回归推理的核心基石用显存换时间实现两阶段衔接与高效生成。PD 分离通过任务解耦、异构硬件、异步调度、独立批处理解决传统一体化推理的资源冲突与利用率低下问题是当前云端大模型推理服务的主流工程优化方向。

相关文章:

大模型推理中Prefill与Decode、KV Cache三者说明

大语言模型推理基于自回归生成范式,严格分为 Prefill(预填充) 与 Decode(解码) 两个阶段。二者在计算形态、访存特征、硬件瓶颈上存在本质差异。KV Cache(键值缓存) 是实现两阶段衔接、消除重复…...

云手机 流畅稳定 操作简单

云手机依托云端服务器集群,配备企业级 GPU和高性能 CPU,通过资源池化技术,将物理算力切割成多个独立安卓实例,每个云手机实例可独占或动态共享强大资源,算力远超本地旗舰手机,能轻松运行大型 3D 游戏等高性…...

Windows性能优化:任务管理器深度使用指南

Windows性能优化:任务管理器深度使用指南Windows系统运行缓慢、卡顿?系统自带的任务管理器是诊断和解决性能瓶颈的强大工具。本文将带你深度挖掘Windows任务管理器的各项功能,重点介绍如何利用它进行进程管理、性能监控、启动项优化等操作&am…...

UE4蓝图插件推荐:这5款免费工具让你的开发效率翻倍(附详细使用技巧)

UE4蓝图插件推荐:5款免费工具解锁高效开发新姿势 第一次在虚幻引擎中搭建复杂交互逻辑时,我盯着满屏纠缠的连线发呆了半小时——这简直比解毛线团还令人崩溃。直到发现那些藏在社区角落的蓝图效率神器,才意识到原来80%的重复劳动都可以交给插…...

PvZ Toolkit:突破植物大战僵尸限制的终极修改器

PvZ Toolkit:突破植物大战僵尸限制的终极修改器 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 副标题:面向全阶段玩家的游戏体验增强工具,让每一场攻防战尽在掌…...

告别官方镜像!手把手教你将自编译Android系统刷入AVD(基于Android Studio 4.2+)

告别官方镜像!手把手教你将自编译Android系统刷入AVD(基于Android Studio 4.2) 在Android开发领域,模拟器(AVD)一直是开发者调试和测试应用的重要工具。然而,大多数开发者仅限于使用Google提供的…...

手把手教你恢复误删的xfce4面板(附备份还原完整流程)

深度解析XFCE4面板管理:从误删恢复到高效备份的全方位指南 XFCE4作为Linux桌面环境中轻量高效的代名词,其面板系统却常常成为用户操作的"高危区域"。我曾亲眼见证一位开发者同事在演示前夕误删所有面板,手忙脚乱地尝试各种恢复方法…...

3大突破!开源RGB控制终极指南:从多软件混战到统一灯光管理

3大突破!开源RGB控制终极指南:从多软件混战到统一灯光管理 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/…...

为什么越来越多的STM32项目转向HAL库?从寄存器封装层次看开发效率提升

为什么STM32开发者纷纷拥抱HAL库?深度解析现代嵌入式开发效率革命 在嵌入式开发领域,STM32系列单片机凭借其出色的性能和丰富的生态,已成为工程师们的首选平台。然而,随着产品迭代速度的不断加快,开发效率成为衡量技术…...

功能越来越多,但 IT 系统却越来越难用了

在很多企业的信息化建设过程中,一个明显趋势是: 系统功能在不断增加。从最初的基础功能,到后来的审批流、自动化、报表分析,再到各种集成功能,系统看起来越来越强大,也越来越“全面”。按理说,功…...

流程越来越规范,但员工体验却越来越差

在很多企业推进 IT 管理规范化的过程中,流程建设往往是重点。 审批流程更加清晰,操作步骤更加标准,所有请求都可以通过系统统一管理。从管理角度来看,这是明显的进步。 流程可控、操作可追溯、风险也更容易管理。但从员工的实际体…...

别再复制粘贴官方文档了!用Python调用通义千问API的3个实战项目(含完整代码)

用Python玩转通义千问API:3个实战项目带你进阶 在掌握了基础API调用后,很多开发者会陷入"文档复制粘贴"的困境——知道怎么调用接口,却不知道如何将其融入实际项目。本文将带你突破这一瓶颈,通过三个完整的实战项目&…...

别再只盯着PID了!用STM32 HAL库的PWM差速,让你的5路红外寻迹小车先跑起来

别再只盯着PID了!用STM32 HAL库的PWM差速,让你的5路红外寻迹小车先跑起来 第一次做红外寻迹小车时,我也被各种PID教程绕得晕头转向。直到有天深夜调试时,我突然意识到——为什么非要一开始就用复杂的PID算法?对于简单…...

高等数学实战解析:定积分换元法与分部积分法的核心技巧

1. 定积分换元法的实战技巧 第一次接触定积分换元法时,我完全被那些符号变换绕晕了。直到后来在物理实验中遇到一个弹簧振子的能量计算问题,才真正明白这个方法的精妙之处。想象你手里拿着一根橡皮筋,想要测量拉伸它需要的总能量——这就是定…...

菊水PBZ40可编程电源RS232C通信协议实战指南

1. 认识菊水PBZ40可编程电源 如果你正在实验室里捣鼓自动化测试系统,大概率会遇到需要精确控制电源输出的场景。菊水PBZ40就是这样一款专业选手,它不仅能提供稳定的直流输出,还能模拟各种交流波形信号。我第一次接触这台设备时,就…...

Java网络编程实战:从零实现一个支持视频通话的聊天室

最近在学习Java网络编程,恰好之前写过一个基于TCP的多人聊天室,一直想给它加上视频通话功能。经过几天的折腾,终于把UDP视频流和TCP信令成功整合到了一起。这篇文章会完整记录开发过程、踩过的坑以及最终的代码实现 一、项目背景与目标 原有…...

Wireshark抓Android包,选对网卡是关键!教你一眼识别哪个是手机流量(附避坑指南)

Wireshark抓取Android流量的精准定位指南 在移动应用开发、网络调试或安全分析过程中,经常需要抓取Android设备的网络流量进行分析。Wireshark作为业界标准的网络协议分析工具,能够帮助我们深入理解数据流动的细节。然而,当电脑连接了多个网络…...

SAP EWM RF手持设备开发实战:从SPRO配置到屏幕绘制的完整流程

SAP EWM RF手持设备开发实战:从SPRO配置到屏幕绘制的完整流程 在仓储物流领域,SAP EWM(Extended Warehouse Management)系统的RF(Radio Frequency)手持设备开发一直是技术难点与业务痛点的交汇处。不同于传…...

VMware环境部,如何确认VM是安装成功

查看虚拟网卡安装完成VM,创建好虚拟机之后,在主页面,选择编辑--虚拟网络编辑器--查看子网地址查看windows网络信息打开windows命令行窗口,输入ipconfig查看是否 有VMnet1 和 VM net8,且IPV4地址跟VM平台上的子网地址前…...

Shell脚本实战指南:从零基础到自动化高手

1. Shell脚本入门:从Hello World到实战 第一次接触Shell脚本时,我和大多数人一样,被那些神秘的符号和命令搞得一头雾水。直到我意识到,Shell脚本其实就是把平时在终端里手动输入的命令,写进一个文件里自动执行。举个例…...

OpenClaw 生态全景图——AI 助理如何改变工作方式

OpenClaw 生态全景图——AI 助理如何改变工作方式摘要:2026 年,AI 助理从"玩具"变成"工具"。本文带你了解 OpenClaw 生态系统的完整布局,看它如何连接微信、飞书、钉钉等主流平台,以及企业和个人如何利用它提…...

CANopen协议实战指南:从对象字典到PDO映射

1. CANopen协议入门:从零理解工业通信基石 第一次接触CANopen协议时,我被它复杂的术语和抽象的概念搞得晕头转向。直到在某个电机控制项目中被迫深入使用后,才发现这套协议设计得如此精妙。CANopen本质上是一种建立在CAN总线上的应用层协议&a…...

pnpm+turbo迅速搭建monorepo工程

关于monorepo monorepo 并不是一个框架、一个包、一个依赖。而是一种单仓库多包管理模式,也是基于中心化思想的实践产物。 举个例子,假设我们现在有6个项目,传统的项目管理方式(Multirepo)会按照6个代码仓库去管理&a…...

3步精通Calibre电子书转换:从格式兼容到专业排版指南

3步精通Calibre电子书转换:从格式兼容到专业排版指南 【免费下载链接】calibre The official source code repository for the calibre ebook manager 项目地址: https://gitcode.com/GitHub_Trending/ca/calibre 在数字阅读时代,电子书格式碎片化…...

告别论文格式内耗!从标题层级到参考文献,这款工具一键搞定全流程合规排版

在学位论文撰写中,标题层级混乱、页眉页脚错位、参考文献格式不统一、图表排版杂乱是贯穿全文的高频痛点,堪称学术写作的 “格式重灾区”。传统 Word/WPS 依赖手动刷样式、调格式,耗时数小时还易反复出错;LaTeX 门槛高、中文适配差…...

YOLOv12:以注意力机制重塑实时目标检测的精度与速度边界

1. YOLOv12如何重新定义实时目标检测 当你在手机上刷短视频时,那些自动标记出人物、宠物和物品的方框;当你在超市自助结账时,摄像头快速识别商品的过程;当自动驾驶汽车实时判断前方路况时——这些场景背后都有一个共同的技术支撑&…...

Qwen3-TTS开源模型快速上手:5分钟完成中文普通话+粤语+英文三语语音合成

Qwen3-TTS开源模型快速上手:5分钟完成中文普通话粤语英文三语语音合成 想不想让你的应用开口说话?不是那种机械的电子音,而是像真人一样,有感情、有语调,甚至能说方言的语音?今天要聊的Qwen3-TTS&#xff…...

Nacos 2.2.0连接达梦数据库踩坑实录:从驱动版本到SQL脚本的完整避坑指南

Nacos 2.2.0与达梦数据库深度适配实战:从驱动选型到容器化部署的全链路解析 当微服务架构遇上国产数据库,技术适配的每个环节都可能成为关键战场。最近在将Nacos 2.2.0与达梦数据库进行生产级适配时,我经历了从驱动版本冲突到SQL脚本优化的完…...

基于RexUniNLU的Linux系统日志智能分析方案

基于RexUniNLU的Linux系统日志智能分析方案 1. 引言 每天面对海量的Linux系统日志,是不是感觉头大?服务器突然卡顿,排查问题就像大海捞针,一行行翻日志看得眼睛都花了。传统的关键词搜索和正则匹配已经跟不上现代运维的需求&…...

Skills 如何高效地扩展 Claude 的能力

在模块化配置体系中,rules(规则)决定了 Claude 的下限(不能搞砸什么),而 skills(技能)则决定了 Claude 的上限(能多快、多准地完成复杂任务)。高效扩展 Claud…...