关于大模型(5)预填充(Prefill)与解码(Decode)
5.1 预填充阶段Prefill——完整上下文并行计算、KV 初始化当用户输入一段 Prompt 给大模型时模型不会逐字计算而是一次性将整个 Prompt 所有 Token 送入网络完成一次完整的 Transformer 前向传播。这个阶段就是预填充阶段Prefill。之所以叫“预填充”是因为提前计算并缓存所有 Prompt Token 的 Key、Value为后续无限循环的解码阶段消除重复计算。Prefill 是自回归生成的“初始化阶段”。Prefill 核心执行特征输入形状[batch_size, prompt_len, hidden_dim]整段序列完全并行计算。注意力计算完整的L × L自注意力矩阵所有 Token 两两交互计算量是标准的O(L²)。层内运算大量大尺寸矩阵乘法GEMM、大规模Softmax、大规模加权求和、完整FFN运算。GPU的Tensor Core、FP16/FP8算力被充分利用。阶段瓶颈计算密集型FLOPS Bound。GPU 利用率极高通常可达 80%~100%显卡满载、功耗高、温度高。对应指标TTFTTime to First Token首token延迟TTFT 定义从请求抵达服务端 → 模型返回第一个生成 Token 的耗时。核心结论TTFT 几乎完全由 Prefill 耗时决定。Prompt 越长O(L²)计算量爆炸越明显首字越卡。这就是为什么几万字长文档问答首响应会明显延迟的根本原因。Prefill 阶段唯一输出整段序列所有层的 KV 张量写入显存缓存KV Cache序列最后一个位置的 hidden_state通过 LM Head 预测第一个生成 Token。关键Prefill 只会用最后一个位置 logits 做生成前面所有位置 logits 直接丢弃不参与解码。5.2 解码阶段Decode——单Token串行迭代、KV复用Prefill 完成、吐出第一个 Token 后模型正式进入解码阶段Decode这是大模型生成内容的主体阶段。自回归生成的天然约束第 N 个 Token 依赖第 N-1 个 Token 的结果无法并行、必须串行迭代。Decode 严谨计算流程每一步解码输入不再是完整序列仅输入最新的 1 个新 Token输入形状[batch_size, 1, hidden_dim]对当前新 Token 单独计算 Q、单步 K、单步 V从显存读取历史所有 Prompt 已生成 Token 的 KV Cache用单步 Query 与全局历史 KV 做注意力注意力矩阵尺寸为1 × L加权 V、过 FFN、层归一化、残差新 Token 的 KV 追加写入 KV Cache预测下一个 Token循环往复直到 EOS / max_new_tokens。Decode 阶段核心特征Prefill 是“算得多、搬得少”Decode 是“算得极少、搬得多”。Decode 单步计算量极低几乎没有FLOPS压力但每一步迭代都需要遍历读取整层、全序列的 KV Cache 读取全部模型权重。Decode 真实瓶颈显存带宽瓶颈Memory BoundGPU 计算单元大量空闲一直在等待数据从显存搬运到计算核心因此 GPU 利用率极低常为20%~40%。对应业务指标TPOTTime Per Output Token单token生成耗时TPOT 决定用户观感的「打字流畅度」。TPOT 越低逐字输出越丝滑TPOT 越高输出越卡顿、断断续续。生产环境中长生成场景 90% 总耗时都消耗在 Decode 阶段。5.3 两阶段核心差异对照表工业标准完整版维度Prefill 预填充阶段Decode 解码阶段输入序列长度完整 Prompt 长度 L每步仅 1 个 Token注意力矩阵尺寸L × L1 × L单步计算复杂度O(L²)O(L)总累计复杂度生成长度 NO(L²)仅一次∑O(Lt) ≈ O(N·L N²)核心瓶颈算力FLOPS 受限显存带宽访存受限GPU 算力利用率极高80%~100%极低20%~40%关键性能指标TTFT首 Token 延迟TPOT / ITL单 Token 耗时主要优化方向FlashAttention、大 Batch、矩阵加速KV Cache 优化、量化、PagedAttention、连续批处理KV Cache 增长趋势一次性分配固定 KV 显存L随生成长度线性递增追加L→LN瞬时显存峰值隐藏陷阱极高注意力分数 L×L 矩阵瞬时尖峰较低仅逐 Token 增量追加关键现象Prefill 阶段 GPU 满载、温度高Decode 阶段 GPU 空闲、带宽跑满、温度回落。这是完全正常的硬件特征算力密集型任务发热高于访存密集型任务哪怕带宽跑满算力单元空载也会降低功耗与温度。5.4 Batch1 完整逐行推理流程以 LLaMA-7B32层、hidden_dim4096、head_dim128为例Prompt「今天天气」4 Tokenmax_new_tokens3。1. Prefill 阶段完整流程文本分词得到 4 个 Token IDEmbedding 查表得到张量形状[1, 4, 4096]送入32层 Transformer 并行计算每层一次性计算4个Token的QKV每层生成尺寸为[4, 4]的注意力分数矩阵全局交互每层计算完成后保存该层 KVKV 形状[num_layers, 2, 4, head_num, head_dim]输出隐藏态 [1,4,4096]仅取最后一个位置 [1,4096] 送入 LM Head输出 logits、Softmax、采样得到第一个生成 Token「真」。至此 Prefill 结束KV Cache 初始化完成。2. Decode 阶段迭代流程第一次解码第5个Token输入仅新 Token「真」嵌入维度 [1,1,4096]仅计算当前Token的 Q、K、V从显存读取历史4个Token的KV拼接得到全局5序列KV注意力尺寸变为 1×5极快完成加权求和新 KV 追加进缓存KV 长度更新为5预测下一个 Token「好」。后续每一步解码逻辑完全一致KV 长度线性递增6→7→8……直到生成 Token 数量达到 max_new_tokens 或命中 EOS生成终止。5.5 复杂度真相与核心误区推理策略单步峰值复杂度最后一步总体累计复杂度全程无 KV Cache朴素自回归O((LN)²)∑(Lt)² ≈O(N·(LN)²)当 N ≈ L 时退化为O(N³)立方级爆炸有 KV Cache现代引擎O(LN)即 1 × L 扁平矩阵∑(Lt) ≈O(N·L N²)当 N ≈ L 时约为O(N²)平方级可落地常见错误将“单步峰值 O(L²)”误写为“整体推理复杂度 O(L²)”忽略了序列长度动态增长的累加效应。没有 KV Cache 时总体累计计算量实际是O(N³)立方级而非 O(N²) 或 O(L²)。结论没有 KV Cache 的推理复杂度是 O(N²)完全不可用每生成一个字重算整段上下文长文本推理算力爆炸、延迟爆炸。有 KV Cache 的推理复杂度Prefill O(N²)Decode O(L)工业界所有大模型服务全部依赖这一优化才得以落地。两阶段优化天然冲突Prefill 要大 Batch、大并行、榨干算力Decode 要小访存、高缓存命中、省显存。vLLM、TensorRT-LLM、PagedAttention、连续批处理本质都是调和两阶段优化冲突。5.6 工程实操补充生产必备1.KV Cache 不会自动释放原生 HuggingFace 推理循环如果不手动管理会持续 Append、显存泄漏越跑越卡2.多请求并发独立管理:每个请求拥有独立 KV Cache长度各不相同是动态显存管理如 PagedAttention的最大难点3.指标分布规律Prompt 越长TTFT 越高但 TPOT 基本不变生成越长TPOT 缓慢上升、TTFT 不变4.优化侧重量化、KV 压缩、GQA、PagedAttention 全部优先优化 Decode 阶段因为 Decode 占总耗时 90%。5.⚠️Prefill 瞬时显存尖峰极易被忽略的 OOM 元凶)在 Prefill 阶段注意力分数矩阵 ( L \times L ) 是瞬时分配的。以 L10000 为例该矩阵在 FP16 下占用约 200MB虽在该层结束后立即释放但瞬时峰值显存远大于 Decode 阶段的稳态占用。这意味着即使 KV Cache 总量加上模型权重并未超过 GPU 显存上限长 Prompt 的 Prefill 仍可能因这张临时“方阵”触发 OOM。这是生产环境中极容易被误判为“显存不足”但实际是“显存尖峰”的经典陷阱。5.7 高级延伸分块预填充Chunked Prefill——打破两阶段界限在传统的两阶段认知中Prefill 必须一次性计算完整个长 Prompt 才能进入 Decode。但这一逻辑在长文本 10k tokens场景下存在严重的队头阻塞Head-of-Line Blocking问题一个超长 Prompt 的 Prefill 会长时间独占 GPU 算力导致后续所有短请求的 Decode 步骤被迫排队等待GPU 在 Prefill 计算期间无法处理任何 Decode 请求。工业界解法vLLM 0.6.0 / SGLang 核心特性核心思想将超长 Prompt 的 Prefill 计算切分为多个 Chunk块不再一次性完成全部 Prefill。调度策略每完成一个 Chunk 的 Prefill 计算并生成该 Chunk 对应的 KV Cache调度器立即穿插执行其他请求的 Decode 步骤。最终效果Prefill 与 Decode 从“串行独占”变为微交错并行有效消除了长尾请求对短请求的阻塞大幅提升整体吞吐量和 P99 延迟稳定性。工程结论Chunked Prefill 实质上模糊了 Prefill 与 Decode 的传统物理边界是当代高并发推理引擎区别于早期 Hugging Face 朴素实现的标志性进化。本章总结Prefill 是计算密集、全局并行、O(L²)决定首字延迟 TTFT需警惕注意力分数矩阵 ( L \times L ) 带来的瞬时显存尖峰。Decode 是访存密集、串行迭代、O(L)决定流畅度 TPOT是推理耗时与显存占用的绝对主体90%KV Cache 是两阶段的桥梁Prefill 建缓存、Decode 增量复用缓存将总累计复杂度从 O(N³) 暴力拉回 两个阶段瓶颈完全不同优化策略完全不同Prefill 优化靠FlashAttention 和算力榨取Decode 优化靠量化、PagedAttention 和连续批处理。现代推理引擎vLLM、SGLang通过 Chunked Prefill 和 Continuous Batching进一步打破两阶段界限在微观时间片上交错执行 Prefill 与 Decode榨干 GPU 每一寸算力和带宽。所有长文本推理、显存优化、吞吐优化的工程实践全部建立在以上两阶段原理的物理认知之上。

相关新闻

git更换用户账号并提交代码

git更换用户账号并提交代码

前任走后没有权限从其电脑的git提交代码1.在 VSCode 终端 里执行以下命令&#xff0c;把最新的一次提交的作者改成自己的信息&#xff1a;git commit --amend --author"你的姓名 <你的绑定邮箱>" --no-edit2.清除旧缓存&#xff08;linux下&#xff09;git con…

2026/9/1 20:09:41 阅读更多 →
个人微信API接口使用价值分析:让微信能力融入开发项目的5个关键

个人微信API接口使用价值分析:让微信能力融入开发项目的5个关键

做了十几个微信相关项目后&#xff0c;我有个挺深的感受&#xff1a;API用得好不好&#xff0c;不在于接口有多少&#xff0c;而在于你怎么把它"融"进业务里。 有些团队接了一堆接口&#xff0c;结果还停留在"发个消息通知"的阶段&#xff1b;有些团队就用…

2026/9/1 3:15:55 阅读更多 →
时间紧迫自救!亲测这6款AI写作辅助软件,从大纲到终稿全程开挂

时间紧迫自救!亲测这6款AI写作辅助软件,从大纲到终稿全程开挂

从开题到降重&#xff0c;AI工具链10分钟搞定文献综述&#xff0c;知网查重率直降&#xff01;解放双手专注核心论点&#xff0c;这才是学术价值的真正突破。 1.千笔 AI&#xff1a;开题报告 & 文献综述「闪电战专家」实测场景&#xff1a;经济学开题报告从空白到导师通过 …

2026/8/19 16:46:58 阅读更多 →

最新新闻

第27章 投资者沟通与资本市场策略

第27章 投资者沟通与资本市场策略

某快消品上市公司发布年报&#xff0c;首次披露数据资产2.3亿元。财报发布后的分析师电话会议上&#xff0c;第一个接入的提问者没有问估值方法&#xff0c;没有问摊销政策&#xff0c;而是直接抛出一个问题&#xff1a;“你们是不是为了美化报表才入表的&#xff1f;”CFO努力…

2026/9/2 7:44:23 阅读更多 →
开源智能体框架TrueForge:快速构建AI应用的全栈解决方案

开源智能体框架TrueForge:快速构建AI应用的全栈解决方案

这次我们来看一个开源智能体框架——TrueForge。如果你正在寻找一个能帮你快速构建、测试和部署AI智能体的工具&#xff0c;并且希望它能处理复杂任务、支持多模型调用、提供可视化编排&#xff0c;同时还能一键部署到云上&#xff0c;那这个项目值得你花十分钟了解一下。TrueF…

2026/9/2 7:44:23 阅读更多 →
Python模拟网易云音乐客户端:构建稳定API封装库的架构设计与实践

Python模拟网易云音乐客户端:构建稳定API封装库的架构设计与实践

简介&#xff1a;本资源是一套基于Python实现的网易云音乐第三方API服务源码&#xff0c;面向Python后端开发者、Web全栈学习者及音乐平台二次开发爱好者&#xff0c;解决官方未开放完整接口时的数据获取与服务集成需求。压缩包共89个文件&#xff0c;含65个Python脚本&#xf…

2026/9/2 7:44:23 阅读更多 →
第29章 行业标准与最佳实践共建​​

第29章 行业标准与最佳实践共建​​

在快消品行业协会的数据资产化研讨会上&#xff0c;三家头部企业的数据负责人各执一词。一家饮料巨头的CDO说&#xff1a;“经销商数据是快消品最重要的数据资产。我们覆盖全国3000家经销商&#xff0c;每一家经销商的进销存数据都是市场脉搏的实时反映。估值应该以经销商数据为…

2026/9/2 7:44:23 阅读更多 →
Android连连看游戏开发:MVC架构、连通算法与自定义View实战

Android连连看游戏开发:MVC架构、连通算法与自定义View实战

简介&#xff1a;本资源是一套完整的Android平台连连看游戏开发源码及配套实验报告&#xff0c;面向Android初学者与课程设计学生&#xff0c;解决移动游戏开发中图形绘制、事件响应、游戏逻辑封装与资源管理等核心实践问题。压缩包共121个文件&#xff0c;包含16个Java源文件&…

2026/9/2 7:44:23 阅读更多 →
电赛H题自动行驶小车:Keil嵌入式实时控制实战解析

电赛H题自动行驶小车:Keil嵌入式实时控制实战解析

简介&#xff1a;本资源是2024年全国大学生电子设计竞赛H题‘自动行驶小车’的完整工程实现方案&#xff0c;面向嵌入式开发初学者、电赛备赛学生及STM32实践者&#xff0c;聚焦路径识别、电机闭环控制、无线通信与多传感器融合等核心难点。压缩包共610个文件&#xff0c;以201…

2026/9/2 7:43:23 阅读更多 →

日新闻

QEMU为什么能模拟不同CPU?从ISA、CPU模型到指令翻译讲起

QEMU为什么能模拟不同CPU?从ISA、CPU模型到指令翻译讲起

1. 引言&#xff1a;一个软件为何能“伪装”成不同CPUQEMU 是一款广为人知的开源模拟器&#xff0c;它既能在一台 x86 电脑上运行 ARM 系统&#xff0c;也能在 ARM 开发板上启动 x86 的 Linux 发行版。很多人第一次接触 QEMU 时都会好奇&#xff1a;一个纯软件程序&#xff0c;…

2026/9/2 0:00:30 阅读更多 →
单片机计算机毕设之基于 STM32 或 51 单片机的感知式智能垃圾桶硬件控制系统设计 基于 STM32 或 51 单片机的安全防护型智能垃圾桶装置设计(025005)

单片机计算机毕设之基于 STM32 或 51 单片机的感知式智能垃圾桶硬件控制系统设计 基于 STM32 或 51 单片机的安全防护型智能垃圾桶装置设计(025005)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机&#xff0c;Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:00:30 阅读更多 →
单片机计算机毕设之基于 ESP8266 的智能垃圾分类桶 APP 监控系统设计与实现 基于单片机的超声波满溢检测垃圾分类装置设计(025105)

单片机计算机毕设之基于 ESP8266 的智能垃圾分类桶 APP 监控系统设计与实现 基于单片机的超声波满溢检测垃圾分类装置设计(025105)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机&#xff0c;Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:00:30 阅读更多 →

周新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学&#xff0c;看到最多的状态就是&#xff1a;简历上写着“熟悉 MySQL”“了解索引优化”&#xff0c;一碰到数据库管理工程师的笔试卷&#xff0c;却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/9/1 19:44:48 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事&#xff1a;时间参数到底在约束什么你翻过数字电路教材&#xff0c;一定见过这两个词&#xff1a;建立时间&#xff08;Setup Time&#xff09;和保持时间&#xff08;Hold Time&#xff09;。它们常被并列写在触发器&#xff08;Flip-Flop&#xff09…

2026/9/1 18:13:19 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起&#xff1a;从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目&#xff0c;我至今记忆犹新。它没有直接给出一个花哨的名字&#xff0c;而是用“超声波测距机”这个朴实无华的功能描述&#xff0c;精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/9/2 1:01:37 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践&#xff1a;原型怎样变成可用功能分类&#xff1a;[AI/大模型]细分主题&#xff1a;AI 增强型 CI/CD 流水线自动化与 GitOps 实践&#xff1a;Agent 工作流、工具调用与任务拆解&#xff1a;从原型到生产的验收清单很多团队在尝试用大…

2026/9/2 1:06:24 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战&#xff1a;复盘记录怎样真正派上用场分类&#xff1a;[工程技术]细分主题&#xff1a;Kubernetes 生产环境运维与排障实战&#xff1a;可复制的项目复盘模板与决策记录大部分团队的事故复盘报告&#xff0c;最后都变成了躺在 Confluence 或钉…

2026/9/2 1:01:13 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理&#xff1a;核心链路应该先拆哪一步分类&#xff1a;[工程技术]细分主题&#xff1a;Docker 容器化技术与镜像安全管理&#xff1a;核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用&#xff08;包含 Web 接口、后台…

2026/9/2 2:01:56 阅读更多 →