《互联网产品的 AI 架构·推理性能与成本工程》4.3 生成长度的非线性成本
会话摘要的 P50 是 805 token,P99 却到 1193 token,前 5% 的长请求吃掉两成输出预算。本节用 200 条确定性样本说明长度分布、分位数与长尾占比怎么算,给出延迟与期望成本曲线、按能力设长度目标和截断上限的收益试算,并用 node --test 的真实输出验证每一个数字。
tag
会话摘要的 P50 是 805 token,P99 却到 1193 token,前 5% 的长请求吃掉两成输出预算。本节用 200 条确定性样本说明长度分布、分位数与长尾占比怎么算,给出延迟与期望成本曲线、按能力设长度目标和截断上限的收益试算,并用 node --test 的真实输出验证每一个数字。
用户在第 1.2 秒切走私信页,模型也可能在答案已经足够确定时继续生成。本节区分用户取消、置信度停止与预算耗尽三种提前终止,给出期望成本、盈亏平衡置信度与首帧后不重试的决策代码,并用 node --test 与 200 条示例样本的真实运行结果说明省下的 token 与赔掉的重问成本。
「回声」客服的工单建议在 max_tokens 边界被截成半截 JSON,另一个能力又因上限过大把长回复的成本推高。本节把输出预算拆成目标、余量与闭包三段,给出 max_tokens 计算、跨增量块的停止序列扫描与截断分类的 TypeScript 实现,并用 node --test 的真实输出验证每一种截断的可用性与重试判断。
卷四附录 C:一份可直接投影使用的多端架构评审清单,按承诺边界、设计系统、插件动态化、性能、稳定性、交付、可观测性、安全合规、国际化无障碍、治理迁移十组展开;每题要求填写现状、证据、缺口与 owner;另附快速十问、评审记录模板、常见分歧的处理方式与评审边界,可直接投影或导入工单系统使用。
21 条检索、历史与工具片段压缩到 9 条,输入 token 从 767 降到 415,但一次去掉保护标记的实验丢掉了退款单号、金额与时效三个事实。本节给出压缩流水线、逐步丢弃原因与事实探针验收,说明怎样在省钱的同时证明关键信息没有丢。文中数字均为示例样本运行结果。
卷四附录 B:按十类症状组织多端排查手册,包括功能在某端不可用、同一笔订单状态不同、组件样式漂移、发布后白屏、性能退化、线上问题无法定位、第三方 SDK 隐私风险、区域格式错误、读屏不可用与迁移卡住;每类给出先查什么、常见根因、验证方式与预防动作。
同样的提示内容只调整块顺序,可缓存前缀从 594 token 变成 1,354 token,百次请求的输入成本从 29,300 微元降到 12,200 微元。本节说明前缀缓存的命中条件、失效边界与“可缓存形状”,并给出可运行的前缀分析模块与示例样本运行结果。
卷四附录 A:把承诺、边界、能力、性能、稳定性、交付、可观测性、安全、国际化、无障碍、治理与迁移十二组核心术语与判据压缩成速查表,每项给出定义、判断条件、常见误用与对应章节;另附一页纸十二问与中英术语对照,便于架构评审、跨团队对齐与新人上手时直接引用。
从「回声」一次账单翻三倍的扩容说起,拆解输入 token 的四类来源、历史每轮重发带来的近似二次增长,以及上下文长度对成本与首字延迟的不同曲线;文中给出可运行的 TypeScript 统计模块、示例样本上的运行结果,并说明它与卷一上下文预算的分工。
四卷一百八十节讲完,真正要留下的是一个能自查的承诺模型,而不是一份读完的目录。本节把四卷的核心问题整理成十五项收官检查表,用覆盖率与未关闭项生成下一步建议,并给出继续演进、转入巩固与冻结架构三类停止条件,帮助读者判断什么时候该停下来、什么时候只需维护。
从「回声」大客户挤占小客户容量的投诉出发,讨论多租户共享推理容量时的加权公平队列、饥饿防护、租户配额与突发额度。文中给出可运行的 TypeScript WFQ 与令牌桶模块,并在三租户确定性样本上给出无防护与 200ms 防护两种配置的真实运行结果,说明公平份额与最坏等待之间的取舍。
从一次「把并发调大就好了」的线上误判出发,说明并发上限如何用 Little 定律与目标利用率推导、信号量如何限制在途请求、背压如何向上游传播,以及降级与拒绝的本质区别。文中给出可运行的 TypeScript 信号量与压力决策模块,并在 240 条固定样本上对比无界队列、有界拒绝与降级三种策略的真实运行结果。
从「回声」早高峰的排队投诉出发,讨论有界队列、优先级老化与准入判据:为什么无限排队会把过载伪装成延迟,为什么纯优先级会让批量任务饿死,以及怎样用预估等待时间在入口直接拒绝。文中给出可运行的 TypeScript 队列与准入模块,并在 90 条确定性样本上比较 FIFO、优先级与老化三种顺序的真实运行结果。
三份来自不同团队的压测报告往往无法比较,因为负载模型不同。本文用确定性 mock 推理器构造稳定、突发、长尾三种负载,产出一份不含时间戳、带指纹、可逐字段比对的基线报告,并给出把它当回归门禁的阈值与取舍;所有数字均为示例样本上的运行结果,不是生产实测。
平台化不是把组件数量堆上去,而是让承诺、组件、交付、观测、安全与治理六个维度都能拿出证据。本节用成熟度矩阵给每个条目打分,按缺口排名生成改进顺序,再用维度均值、单项底线、证据要求与加权总分四道门槛完成验收,并说明为什么平均分与权重都不能代替单项底线。
看板写着 40 QPS,用户却在超时:吞吐、并发与有效吞吐回答的是三个不同问题。本文给出 goodput 的 SLO 与窗口口径,用确定性批调度器展示并发饱和、批处理对 p95 的影响,以及吞吐几乎不变而 goodput 从 100% 跌到 28% 的取舍。
同一笔已支付订单在 Web、iOS、Android、小程序和桌面回放,金额、状态与文案只要有一处不同,用户就会怀疑这笔钱去了哪里。本节用可运行的 TypeScript 场景脚本收集五端观测,把差异归为呈现、环境、契约与未知四类,并给出阻断、警告与放行的发布判据。
从用户只看到「转圈很久」的投诉出发,把流式推理拆成首字、单 token 与端到端三段:排队、冷启动、预填充各占多少,TTFT、ITL、TPOT 与 E2E 如何互相约束,预算为什么必须逐项签而不是取平均;附可逐条断言的 TypeScript 时间线模块与示例样本上的运行结果。
卷二《推理性能与成本工程》全目录:13 章 39 节,从延迟与吞吐的度量出发,经调度、上下文、输出、缓存、压缩替代、离线批处理、容量、归因、对照实验,走到质量联合优化、规模化稳定性与收口;附三条阅读路径、章节产出物与读完应能回答的十二个问题。
迁移的终点不是新路径上线,而是旧路径被安全删除。本节给出流量、错误、数据一致与观察期四类退出判据,把回滚资产检查、宣布结束、宽限期与旧路径删除写成状态机函数,并说明每条判据的边界与反例:指标刚好达标算不算过,回滚资产存在但过期算不算就绪,以及删除后无法回滚的代价。