跳到主要内容

现在,推理速度已经快过你的数据库了

· 阅读需 12 分钟
Tian Pan
Software Engineer

打开任何 2024 年时代的 AI 功能链路追踪 (trace),模型调用就像是一头巨鲸。八百毫秒的生成时间,包裹在检索、鉴权和数据库查询组成的薄壳中,后者的时间几乎可以忽略不计。那一年的每一个架构决策——缓存、预取、流式 UX——都是为了隐藏那头“巨鲸”。

现在,查看运行在 2026 年推理栈上的相同功能的链路追踪。那头巨鲸已经变成了一只海豚。缓存后的预填充 (prefill) 在 180ms 内返回第一个 token。解码 (decode) 以每秒 120 个 token 的速度流式传输。模型不再是慢节点。你自己的基础设施才是,而且大部分基础设施还没有意识到这一点。

这种顺序重排是今年最重要的性能转变,也是各团队一直反应不足的一个。现在,AI 请求的 p99 底限是由特征存储 (feature store) 调用、鉴权中间件以及那些一直都很慢的 Postgres 查询决定的——在模型占据九成预算时,没人关心这些。

顺序是如何反转的

在过去的 18 个月里,三种力量共同作用,其中任何一种都能产生显著影响。它们共同作用,使大多数交互式工作负载的端到端延迟中模型的占比缩减了一半以上。

提示词缓存 (Prompt caching) 成为主流。 与冷推理相比,缓存预填充将首个 token 响应时间 (TTFT) 降低了高达 80%。在冷路径上需要 4.3 秒才能完成预填充的 10,000 token 提示词,现在只需 600ms 即可返回第一个 token。供应商侧的缓存已成为准入门槛;每一个主要的推理栈——vLLM、SGLang、TensorRT-LLM——都支持前缀缓存 (prefix-cache),而 llm-d 风格的分布式 KV 缓存正在将这些收益带入多副本部署中。

投机采样 (Speculative decoding) 从论文走向生产。 草稿模型投机采样现在作为 vLLM 的默认功能发布,在通用工作负载上能提供 1.4–1.6 倍的加速,在特定领域的工作负载上提升更多。在 gpt-oss 级别的模型上,投机采样在基准测试中将每个 token 的延迟降低了约 40%;专门的代码合并模型速度可达每秒 10,000+ token。解码,这个曾经无法逃避的串行瓶颈,现在已经变成了一个在以前产出一个 token 的时间内可以产出三个 token 的赛道。

API 价格崩盘,供应商在延迟上展开竞争。 API 价格在 2024 年到 2026 年间下降了约 80%。供应商不再仅仅在模型质量上竞争,而是开始在 TTFT 上竞争。如今在主要供应商中,同类模型在类似条件下的 TTFT 差异可达 3–5 倍——这意味着在不改动任何代码的情况下,更换供应商就能将用户可见的底限延迟缩减整整一秒。

实际结果是:对于缓存的交互式工作负载,LLM 调用在链路追踪中的占比已从端到端延迟的 70–90% 缩减到了更接近 30–50% 的水平。而其他一切都保持原样。

新的长尾效应

查看当今实际交互式 AI 功能的延迟栈,其构成与去年基础设施团队仪表板上的截图截然不同。

针对托管检索器的向量搜索会为响应流水线增加 50–300ms。针对已配置的 DynamoDB 表的特征存储查询,在 p50 时每个特征运行 15–40ms,而在限流情况下 p99 可能飙升至数百毫秒。由于产品层面要求反规范化输出而连接了三张表的 Postgres 查询,其 p50 延迟可能为 80ms,p99 延迟为 600ms。鉴权中间件——那种验证 JWT、检查会话缓存并刷新个人资料的中间件——如果缓存未命中,会增加 50–150ms。然后模型才开始运行。

这些组件都没有变慢。它们保持不变,而模型在它们周围缩小了。这些组件所处的架构在设计时假设模型是最昂贵的部分,并将其他一切视为“免费”的。这个假设不再成立,每一个体现这一假设的地方——串行顺序、缺乏并行性、为旧概况设置的资源池——现在都是一个延迟漏洞。

这种失效模式既是技术上的,也是文化上的。仪表板仍然显示“模型:90%”,因为它们是基于三个架构版本前构建的,而且没人重新进行过分析。当 p99 警报触发时,值班工程师仍然习惯性地将“模型变慢了”作为默认假设。团队负责人仍然会说“我们无法让它更快,模型就是这样”——而模型正是栈中今年变快了 2 倍的那一部分。

当模型缩小,并行化的障碍是什么

这种转变最重要的架构后果是,许多 AI 功能的延迟图 (latency graph) 在拓扑结构上对旧模型是正确的,但对新模型来说已经坏掉了。

这是经典的形状:请求进入;鉴权和会话查找串行发生;针对向量库运行检索步骤;检索到的上下文被组装成提示词;模型调用触发;响应流式回传。那个 DAG(有向无环图)是合法的,但效率不高。当模型占据 80% 的执行时间时,它是高效的,因为并行化一个占比 20% 的片段并不能显著改变现状——阿姆达尔定律(Amdahl)胜出,没人费那劲,生活照旧。

将模型的占比翻转到 30%,计算方式就变了。将鉴权和检索相互并行化(对于大多数查询,两者都独立于用户的消息),可以在模型仅耗时 400ms 的请求中削减 100–300ms。基于上一个助手回合预取检索,使其在用户发送下一条消息时已经处于热状态,可以再赢得 100–300ms。将频繁读取的上下文提升到提示词缓存边界,使缓存预填充在各回合之间保持热状态,将原本的冷路径惩罚变成了稳态下的“免费午餐”。

加载中…
References:Let's stay in touch and Follow me for more thoughts and updates