级联省钱:官方 sde_cascade 的贵便宜分工
先说结论
- 官方 sde_cascade 的核心不是“便宜模型替代贵模型”,而是“便宜模型先提取,拿不准再升级”;其英文概述是“a cascade gets most of the quality at a fraction of the cost”。
- 两种“级联”要分清:同一模型内按置信度分档,对应官方 Confidence-gated routing;便宜模型与贵模型之间升级,才是 sde_cascade 涉及的跨模型级联。
- 官方给出的价格是:mini 为 $0.75/$4.50 每百万 tokens,reasoning 为 $5.00/$30.00 每百万 tokens;$5/$30 是 gpt-5.5 的输入/输出单价,不是单次调用成本。
- 按 20% 升级率、自设 token 量的例子,我推算级联比全线用 reasoning 便宜约 64.8%;这是自己推算,不是官方数字。
- 调用量小、升级率高、延迟要求极严时,级联可能不划算,应该先小流量验证。
证据与过程
官方 cookbook 的思路:mini → verify → reasoning
TypeSafe 官方 SDE cascade cookbook 开头就给出了这个 cookbook 的定位:
Uses a 2-stage structured-data-extraction cascade (mini → verify → reasoning) to get most of the quality of a big reasoning model at a fraction of the cost.
它不是只说“小模型不行就换大模型”,而是把流程拆成三步:第一步用便宜小模型提取;第二步用 TypeSafe 的 Noul 做逐字段验证;第三步如果验证信号触发,才升级到昂贵推理模型。官方原文对算法的描述是:
Extract with a cheap/small model. Verify with TypeSafe primitives: a per-field yes/no (“Noul question”) question … Escalate to an expensive reasoning model if a verifier signal fires; otherwise keep the cheap answer.
这跟我第一反应里的“直接对比两个模型的 confidence”不一样。官方 cookbook 的升级信号不是同一模型的置信度,而是另一套专用验证模型给出的“这个字段可能出错”信号。所以要先分清概念,否则很容易把两种级联写混。
$5/$30 是什么,不是什么
这段也是审稿中最容易出错的地方。官方 cookbook 的价格原文是:
rung 0 (mini): gpt-5.4-mini at $0.75 / $4.50
rung 1 (reasoning): gpt-5.5 at $5.00 / $30.00 (roughly 7x the mini)
verifier: TypeSafe jev-1.12 at $0.042 / $0.00 (output tokens are free; published Jev pricing)
这里的单位官方写得很清楚:$ per 1M tokens, input / output; standard rates checked September 15, 2026。
所以 $5/$30 是 gpt-5.5 的输入/输出单价,单位是美元/百万 tokens,而不是“每次调用 5 美元”或“每次调用 30 美元”。对应地,mini 的输入单价是 $0.75/百万 tokens,输出单价是 $4.50/百万 tokens。官方说 reasoning 约有 7 倍于 mini 的单价;我用 $5.00/$0.75 和 $30.00/$4.50 算下来都是约 6.67 倍,官方这里的“roughly 7x”是一个概数,这是官方数据。
另一个容易混的点是 verifier 的价格。官方 cookbook 写的是 $0.042 / $0.00,即输入每百万 tokens $0.042,输出价格为 0。这个数字与 TypeSafe 官方首页 上的 Jev.Cost $42 Per Billion input tokens. 是等价的:$0.042/百万 tokens = $42/十亿 tokens,这是我自己做的单位换算。官方首页还称这个输入价格比某个对照模型低 238 倍,但这句不是本次级联讨论的重点,而且我没有在官方 cookbook 里看到它被直接用于级联账本,所以这里只把它当价格旁证。
两种级联,不要混
第一种级联是“同一模型内分档”。官方 Confidence-gated routing 页面的标题句是:
Use confidence as a second axis. The answer tells you what; confidence tells you whether to act.
它的做法是:同一个模型返回一个 Choice,附带有 confidence,代码根据 confidence 和风险大小决定是自动执行、人工确认还是转人工。官方示例里出现了 action.choice 和 action.confidence。这种路由没有换模型,只是把低置信度样本从“自动”降级到“人工”。这是很多工控、金融、客服流程里常见的设计。
第二种级联才是 sde_cascade 里演示的跨模型升级:先用便宜模型 gpt-5.4-mini,再调 TypeSafe 的 Noul 验证每个字段,只有验证信号触发才换到更强的 gpt-5.5。它不是靠 action.confidence 一个标量,而是靠 Noul 返回的“这个字段可能有问题”的概率值来决定。
这里还有一个字段形状上的差异,写代码时必须遵守。官方 Confidence 文档 明确说明:
All Score and Choice answers from TypeSafe include a probabilities property … The answer’s confidence property collapses that shape into a single number from 0 to 1 … (Noul answers don’t carry one.)
也就是说:
Choice答案有choice、probabilities、confidence;Score答案有score、legend、probabilities、confidence;Noul只返回一个Noul值(0~1),没有confidence,也没有probabilities。
所以不能把 confidence-routing 里的 action.confidence < 0.6 直接套到 Noul 字段上。sde_cascade 官方 cookbook 用的是 Noul,不是 Choice 的 confidence。
20% 升级率的账,要这么算
光看“reasoning 约 7x mini”还不够,真正决定总成本的是升级率和两段调用各自的 token 量。这里我用一个可复算的示例来算账,假设条件如下——这些 token 量是我自己假设的,不是官方数据:
- 每个样本先走 mini:输入 3000 tokens,输出 200 tokens(假设值,仅用于本次推算);
- 每个样本若升级,再走 reasoning:输入 3000 tokens,输出 200 tokens(同上,假设值);
- 每个样本都要做 Noul 验证:输入 1000 tokens,输出按官方定价为 0;
- 升级率为 20%。
先算各段成本,单位为美元/每百万 tokens:
- mini 段:
3000/1e6 * 0.75 + 200/1e6 * 4.50 = 0.00225 + 0.0009 = 0.00315 - reasoning 段:
3000/1e6 * 5.00 + 200/1e6 * 30.00 = 0.015 + 0.006 = 0.021 - verifier 段:
1000/1e6 * 0.042 = 0.000042
因为每个样本都走 mini 和 verifier,只有 20% 样本升级到 reasoning,所以单样本期望成本为:
E = mini + verifier + 升级率 × reasoning
E = 0.00315 + 0.000042 + 0.2 × 0.021
E = 0.003192 + 0.0042 = 0.007392 美元/样本
如果全部样本直接用 reasoning,成本是 0.021 美元/样本。节省幅度为:
(0.021 – 0.007392) / 0.021 ≈ 0.648,即约 64.8%
这个 64.8% 是我自己推算的结果,不是官方 cookbook 里的数字。 官方 cookbook 说它“shows the tradeoff across 100 prompts”,但它没有在链接正文里把完整的 100 prompt 升级率或节省比例写进我这次抓到的摘录;所以上面这个 20% 升级率的示例只是我用来演示公式的假设。实际升级率、实际 token 量、实际字段数量一变,结果会差很多。
什么时候级联不划算
这是本文自己的判断,不是官方给出的结论。官方 cookbook 的主旨是“big reasoning models extract structured data well, but are slow and expensive; small models are cheap, but make mistakes”,因此级联是在质量与成本之间做折中。但折中不是免费的,以下三种情况我建议谨慎。
第一,调用量很小。级联要维护两套模型、一套验证逻辑和升级日志,如果每天只有几十次调用,省下的 API 钱可能覆盖不了工程时间和运维复杂度。
第二,升级率很高。如果便宜模型在大多数样本上都过不了验证,那说明便宜模型在这个任务上基本不可用,级联反而多付了 mini 和 verifier 的成本。此时不如直接全线用贵模型,或者重新审视便宜模型的提示词和 schema。
第三,延迟要求极严。级联多了一跳 verifier,可能触发升级后再多一跳 reasoning,端到端延迟比单模型更长。如果超时比成本更致命,强行级联就不合适。
自己的判断/清单
我判断这个 cookbook 最值得带走的不是“mini + reasoning”这两个模型名,而是三个工程动作:先便宜提取,再逐字段验证,再按验证信号升级。模型可以换,验证的字段可以按业务改,但升级率必须记录。
下面是一个可改的级联骨架。注意它是工程上的实现方式,不是官方推荐架构;字段名只用到了已经核实的 choice、confidence、noul 概念,FIRE_T 来自官方 sde_cascade cookbook 示例变量。
# 伪代码:便宜模型先答,低置信度先升级,Noul 验证再兜底,最后记录升级率
FIRE_T = 0.7 # sde_cascade cookbook 示例里出现的升级触发变量
total = 0
upgraded = 0
for sample in samples:
total += 1
cheap = run_mini(sample)
# 同一模型内 confidence 分档:Choice 会返回 choice/probabilities/confidence
action = quick_choice(cheap)
if action.confidence < 0.5:
final = run_reasoning(sample)
upgraded += 1
continue
# 跨模型升级:对每个字段跑 Noul 验证;Noul 只返回一个 0~1 值
wrong_signals = []
for field in schema_fields:
signal = verify_field_with_noul(cheap, field)
wrong_signals.append(signal)
if max(wrong_signals) > FIRE_T:
final = run_reasoning(sample)
upgraded += 1
else:
final = cheap
upgrade_rate = upgraded / total
record_metric("upgrade_rate", upgrade_rate)
落地的检查清单:
- 先统计升级率,再看总 token 量;不要只看单价。
- 把 mini、verifier、reasoning 三段成本分开记录,否则无法定位是在哪一段多花了钱。
- Noul 和 confidence 不要混用:用 Noul 时只拿 0~1 的
noul值;用 Choice 时才看confidence或probabilities。 - 阈值从保守开始。官方 Confidence 文档里有一句适合所有阈值调参场景的话:
Start with conservative thresholds, test with your own data, and adjust as you observe results.
这句虽然是官方 Confidence 文档针对 confidence 阈值说的,但我认为它对级联验证阈值同样适用。它不是官方针对 sde_cascade 的特定建议,只作为工程判断参考。
这次没核实的
- 官方 cookbook 完整 100 prompts 实验的升级率、漏判率、端到端成本和具体节省比例,本次来源摘录未完整拿到,未能核实。
gpt-5.4-mini和gpt-5.5是否属于公开模型命名体系,以及它们在未来是否仍有同样的 API 价格,未能核实;我只能按官方页面在 2026 年 9 月 15 日标注的标准费率转述。- 官方 cookbook 说“roughly 7x the mini”,我按输入/输出单价分别算出来是约 6.67 倍;官方为何写 7x,是否使用了混合比例或四舍五入,未能核实。
参考来源
评论区
登录后可评论。