尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Chunked Prefill:切的是调度预算,不是跨 query 复用 Softmax
长 prompt 会占用一次较大的 prefill 工作交互请求的 decode 则更在意连续输出间隔。Chunked Prefill 的目标是把长 prefill 分成可调度的小块与 decode 共享批次预算。它没有允许不同 query 沿用同一个 Softmax 归一化状态。vLLM 的优化文档说明 V1 在可用时启用 chunked prefill并优先安排 decode剩余 token 预算再填 prefill。预算大小影响 TTFT、ITL 与吞吐具体折中仍需按工作负载测量。decode 优先使用预算长 prefill 通过后续批次逐段继续。from collections import deque def schedule(decode_ids,prefills,budget): if budget0: raise ValueError(positive budget required) if len(decode_ids)budget: raise ValueError(toy policy requires decodes to fit) chosen[(decode,x,1) for x in decode_ids] leftbudget-len(decode_ids) while prefills and left: request,remainingprefills.popleft() if remaining0: raise ValueError(positive prompt remainder) takemin(left,remaining) chosen.append((prefill,request,take));left-take if takeremaining: prefills.appendleft((request,remaining-take)) return chosen qdeque([(long,9)]) aschedule([d1,d2],q,6) assert a[(decode,d1,1),(decode,d2,1),(prefill,long,4)] assert list(q)[(long,5)] bschedule([],q,6) assert b[(prefill,long,5)] and not q print(token-budget accounting and prompt continuation passed)这段调度模型只扣 token 预算没做 Attention也未建模设备耗时。它把 decode 必须先全部装下作为简化前提真实系统还要处理 decode 过载、公平性与准入不能让等待 prompt 永远饥饿。一个 query 的 KV 分块和多 query 分块不是一回事在线 Softmax 可以合并同一 query 面对不同 KV 块的统计量。下一个 query 的分数变了最大值与分母也要重新计算。把上一个 query 的状态带过去得到的已经不是标准 Attention。切分 prefill 时因果位置、前序 KV 可见性和块边界都要保留。缓存分配可能在块间增长取消请求还需清理尚未执行的部分。调度计数正确只是第一步。预算守恒之外还有请求进展示例先安排两个 decode再从长 prompt 取四个 token因此剩余 prompt 从九变成五。下一轮没有 decode 时五个 token 全部进入 prefill。这个过程检查的是已经调度量与剩余量相加仍等于原始需求不涉及设备一轮能多快完成。若把 token 数直接乘一个固定耗时便额外引入了未经测量的性能模型。真实调度器还要检查每个请求是否在前进。持续有 decode 到来时prefill 可能一直得不到预算持续有长 prompt 时已有 decode 的输出间隔又可能变差。可以采用准入、等待时间或其他公平性策略但需要明确目标并在负载变化时检查不存在一个适用于所有服务的固定预算。请求取消会影响队列里的剩余量。某个 prefill 已被切出但尚未提交时取消可以直接移除已经提交后则需要等待实际完成或按设备能力处理。不能把剩余计数清零就假定相应 KV 与工作区已经空闲。调度状态和执行完成是两份不同信息。形状 bucket 又会引入额外工作。一个批次的有效 token 数与实际填充后的执行形状未必相等调度日志最好同时记录这两者便于解释小批次为什么没有按预期降低成本。调预算之前先观察真实分布通常比凭一个平均 prompt 长度选择参数更可靠。预算单位必须统一。decode 请求通常贡献本轮需要处理的新 tokenprefill 请求贡献本轮选中的 prompt token不能在一个字段里混用请求数与 token 数。多模态输入还可能引入不同的展开或计算成本简单 token 预算不应被当成完备成本模型。调度器可以逐步增加更准确的估计但每次增加规则都应保留预算不超限、请求不重复调度和取消后不再提交等基本检查。明确这些不变量才能让性能参数调整具有稳定边界。调度记录应同时保存请求身份与有效 token 数才能复查一次请求是否被遗漏、重复或过早移出队列。2026 年 10 月的 SGLang TPU 后端说明还介绍了按形状 bucket 缓存编译程序。预算、padding 与编译形状会相互影响不能只把 chunk 大小调得越小越好。本文没有测 GPU、TPU 或服务延迟输出只证明示例中的预算守恒。
RELATED

相关推荐

手写 EVEX 字节前,先建立汇编与反汇编的闭环

手写 EVEX 字节前,先建立汇编与反汇编的闭环

JIT 示例最危险的一行,有时是根本没有执行的函数调用,后面却打印“安全返回”。另一个常见问题是复制一串 EVEX 前缀后不验证 map、操作码与寄存器字段。机器码不会根据注释猜作者想写哪条指令。 Intel 指令手册第二卷给出了 VFMADD213PS 等指令的编码与…

📅 2026/10/28 21:52:29
Linux下Redis 5.0到7.0无损升级实战指南

Linux下Redis 5.0到7.0无损升级实战指南

1. Linux环境下Redis升级全指南 作为一款高性能的内存数据库,Redis在企业级应用中扮演着越来越重要的角色。我在最近一次生产环境升级中,完整走通了从Redis 5.0到7.0的升级流程,过程中积累了不少实战经验。不同于简单的版本替换,…

📅 2026/10/28 21:47:29
地形测绘中三角网构建技术与精度控制

地形测绘中三角网构建技术与精度控制

1. 地形图绘制中的三角网核心价值解析在地理信息系统和测绘工程领域,三角网构建是数字高程模型(DEM)生成的基础环节。我从业十五年间处理过上百个地形测绘项目,90%的高程数据异常问题都源于三角网处理不当。三角网就像地形表达的骨…

📅 2026/10/28 21:47:29
MORE NEWS

更多资讯

📰

OpenClaw Agent架构设计与多Agent协同开发实战

1. OpenClaw Agent架构设计思路解析OpenClaw作为当前热门的开源Agent框架,其核心设计理念值得每一位Agent开发者深入研究。我花了三周时间完整分析了其v0.5.3版本的源码,发现其架构设计有三大关键创新点:首先是模块化的技能(Skill)管理系统。…

📰

t3code:基于Electron的macOS/iOS风格桌面应用CLI工具链

1. 项目概述:t3code 是什么,它解决的到底是什么问题?t3code 这个名字乍一看像某个开源工具、CLI 命令、甚至可能是某款小众开发框架的代号,但结合当前全网搜索热度中反复出现的关键词组合——t3code、CLI、Electron、web app、iOS…

📰

Claude客户端记忆管理:轻量级结构化记忆代理实现

1. 项目概述:这不是一个官方产品,而是一次对Claude记忆机制的逆向工程式探索“claude-mem”这个名称一出现,很多人第一反应是:Anthropic又出了新模型?是不是Claude 4带了原生长期记忆功能?其实完全不是。我…

📰

AI搜索优化实战:Agent企业如何打造被动曝光与多引擎收录

1. AI搜索正在改写流量规则:为什么“被动曝光”成了企业服务的必修课做了这么多年流量运营,我最大的感受是:规则变了,而且变得比想象中快。以前大家做SEO,核心逻辑是“关键词排名”——你投钱、铺内容、堆外链&#xf…

📰

构建高效一对一导师系统:实现2 Sigma效应的技术实践

1. 项目背景与核心价值"2 Sigma问题"这个概念最早由教育心理学家Benjamin Bloom在1984年提出。他通过研究发现,接受一对一辅导的学生,其学习效果比传统课堂教育高出两个标准差(约合98%的百分位数)。这个惊人的数据差异&…

📰

深度学习教父Hinton的学术传承与商业转化

1. 项目概述:Hinton的亿万富豪博士生现象解析在人工智能领域,Geoffrey Hinton的名字几乎与深度学习革命划上等号。这位被誉为"深度学习教父"的多伦多大学教授,不仅推动了反向传播算法的关键突破,更培养了一批改变AI产业…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬