你的方案预算砍一半,先砍什么?

Q8-09场景设计 · 成本约束追问常见场景设计成本三刀降本九步边际收益取舍压力追问

谁在问:三面 / 技术负责人 / 业务负责人;通常紧跟在一道场景设计题之后,作为压力追问出现

口语化问法

  • 你刚才这套方案,预算只给一半,你砍什么?
  • 老板说这个项目太贵了,要降一半成本,你怎么办?
  • 如果只能留一样,你留哪个?

考察意图

这道题几乎总是紧跟在场景设计题之后出现,它考的不是省钱技巧,是三件事:

  1. 你知不知道自己的钱花在哪。答不出成本结构的人,砍起来只能凭感觉。
  2. 你有没有给每个组件估过边际收益。一个方案里通常有一两样贡献了大部分效果,其余是锦上添花;能不能指出来,是「设计过」和「堆过」的分界。
  3. 你敢不敢砍功能。技术人本能地想在技术里找省法,而很多时候最大的一刀是「这个功能本来就没人用」。

还有一层隐含考察:你会不会问清「砍的是什么钱」。多数人默认是推理费用,但预算里往往还有人力、基础设施和时间。

参考答案

图 2 · 60 分与 90 分差在哪:代价、演进、怎么验证

60

60 分答案(及格线)

先看成本主要花在哪儿。一般是模型调用最贵,可以换更便宜的模型、加缓存、把不需要复杂推理的请求路由到小模型。检索侧可以降低召回数和重排数量。如果还不够,就砍掉一些非核心功能,比如多轮追问、复杂的图检索这些。

思路没错,及格。但它是从「有哪些省法」出发的,不是从「我的钱花在哪」出发的——顺序反了。而且「换更便宜的模型」放在第一位,是最常见的错误起手。

90

90 分答案(有生产经验的回答)

① 先澄清:砍的是哪一笔钱。 推理费用、人力投入、基础设施、还是交付时间?如果砍的是人力和时间,答案完全不同——那时候第一刀应该砍范围,而不是砍单价。假设砍的是推理费用。

② 回到基线:先量化每个组件的边际收益。 我不会直接开始砍,第一步是把方案拆成组件,各自回答两个问题:它花了多少钱、去掉它掉多少分。这一步靠消融实验——把每个加挂逐个关掉跑一遍评测集。经验上结果几乎总是同一个形状:一两样贡献了大部分效果,剩下的一堆各自贡献很小但成本不低。没做过这一步的人,砍的时候只能砍自己最不心疼的,而不是收益最低的。

③ 归因用成本三刀,然后按降本九步的顺序砍。

第一刀  切输入侧 / 输出侧    输出比输入贵 5–6 倍,且思考 token 计在输出侧
第二刀  切各侧内部          输入侧看缓存命中与重复注入;输出侧看轮次、档位、有没有话痨
第三刀  才是单价            且只有降两档才有意义

顺序的逻辑是从「不影响正确性」走到「影响正确性」

1 精确缓存   2 前缀缓存   3 批处理   4 削工具结果   5 降 effort 档位
6 修检索命中率   7 模型路由   8 语义缓存   9 减功能

前四步基本不动效果;第五步开始有代价;后面越来越贵。我会把 1–4 全做完再考虑第 5 步。

④ 每一刀的代价我都要说清

  • 前缀缓存是性价比最高的一刀,但要注意什么会打穿它:静态前缀里放时间戳、工具顺序不确定、中途换模型或改 effort 档位。很多团队以为自己有缓存,实际命中率个位数。
  • 批处理在离线场景是白捡的——价格通常是标准价的一半,代价只是延迟。先看有没有任务其实不需要实时。
  • 削工具结果常被低估:工具返回的内容默认是上下文的永久居民,成本按剩余轮次复利。截断和摘要工具结果,往往比换模型省得多。
  • 降 effort 档位要小心:它降的不只是思考长度,还会减少工具调用次数,可能导致一次做不对、返工反而更贵。要按任务类型分档降,不要全局降。
  • 语义缓存排在第八不是因为它省得少,而是因为它的正确性责任完全转移到你——阈值买的是命中率不是准确率,误命中是结构性的。省钱和答错之间,这一刀的风险最高。
  • 减功能排最后,但它经常是最正确的一刀。先看使用数据:哪些功能的使用率低到可以直接下线。砍一个没人用的功能,是唯一一刀零代价的省法。

⑤ 怎么验证砍对了、什么时候加回来:砍完必须跑同一套评测集并过统计关——n=100、基线 80% 时 95% 置信区间约 ±7.8 个百分点,掉三个点说明不了问题,掉十个点就要回退。线上盯零成本信号:转人工率、重问率、拒答率。加回来的触发条件要事先写好——比如「转人工率连续两周高于某值」就恢复某个组件。

还有一个 2026 年的新陷阱要说:有的新模型换了 tokenizer,同样文本的 token 数会明显变多。单价降三成、token 涨三成,账单没降——比价必须比「每次请求的实际花费」,不能比单价

追问链

图 1 · 五层追问树:面试官会往哪儿挖
不考省钱技巧,考的是哪一刀先落、每一刀赔上什么

  1. 你第一步先算什么?

    期望先切输入侧 / 输出侧,不比单价 —— 两侧差 5–6 倍且思考 token 计在输出侧,结构不同省法不同。输入侧偏高 → 查缓存命中、整块内容反复注入、工具结果赖在上下文;输出侧偏高 → 查轮次失控、effort 档位被调高、大段没人看的解释。加分:按请求类型分桶,总账掩盖结构
    信号先说「看单价对比」→ 没做过归因;先说「切输入输出」并说得出为什么 → 用的是标准结构
  2. 降 effort 档位到底省不省?

    期望省,但分档降不能全局降:① effort 管的是全部输出 token,含工具调用次数,低档倾向合并操作、少发调用;② 降档拉低一次做对的概率,返工以更贵的方式回来,多轮 agent 尤甚;③ 判据清晰的降档,需多步推理试探的不降。会话内切 effort 会击穿提示缓存,开场定死
    信号说得出「effort 影响工具调用次数」和「中途改会击穿缓存」→ 读过官方口径;只说「少想一会儿」→ 理解得浅
  3. 语义缓存能省很多钱,为什么排在第八?

    期望九步里唯一改变正确性责任归属的一刀:精确/前缀缓存零风险,命中同一段内容;语义缓存靠相似度判「两个问题算不算一个」,判断从供应商转到你。阈值调高只降命中率不提准确率,误命中是结构性的。只用于容忍度高的场景,不碰个性化、时效、权限、金额;权限场景缓存键须含身份,否则就是越权通道
    信号说得出「正确性责任转移到你」→ 口径准确;只说「可能会答错」→ 没抓住责任归属这层
  4. 砍功能怎么砍?总不能随便下线。

    期望三条判据:① 使用率 —— 低使用率是第一候选,唯一零代价的一刀;② 边际收益 —— 消融看去掉它掉多少分,掉不到统计显著就该砍;③ 代价不对称 —— 涉及钱、权限、安全兜底的不砍,哪怕使用率低,它们的价值在「没发生的事」。路径渐进:灰度关 → 看指标 → 全量下线,留恢复开关
    信号提出「安全兜底类即使低使用率也不能砍」→ 理解了代价不对称;只按使用率排序 → 会砍掉护栏
  5. 砍完效果掉了,业务方要求恢复但不给预算,怎么办?

    期望① 确认「掉了」是真的:评测集加线上信号过统计关再下结论,也可能是流量或上游变了 → ② 按九步逆序逐刀回滚定位,通常在第 5 步之后,前四刀不影响效果 → ③ 同预算内置换而不是要钱:加回这一刀,同时下线低使用率功能、非实时转批处理、某类请求走小模型 → ④ 置换不出来就把「恢复成本」与「不恢复的代价」摆同表让业务方选 → ⑤ 影响真的小就诚实说不该恢复
    信号提「同预算内置换」和「先验证掉了是不是真的」→ 真管过项目;只会「不加预算效果就保证不了」→ 缺协作能力
跟在场景设计题后面的追命一问:前三层考成本结构与每一刀的代价,第 4、5 层才见真章 —— 敢不敢砍功能,以及敢不敢说「有些效果本来就不该花那个钱」。

评分要点

  1. 先澄清砍的是哪一笔钱(推理 / 人力 / 基础设施 / 时间)
  2. 砍之前先做消融,量化每个组件的边际收益
  3. 归因走成本三刀,先切输入输出结构,不先比单价
  4. 降本九步的顺序砍,逻辑是从不影响正确性到影响正确性
  5. 说得清前缀缓存被打穿的常见原因
  6. 知道削工具结果的复利效应(工具结果是上下文永久居民)
  7. 知道降 effort 会减少工具调用次数,且中途改会击穿缓存
  8. 知道语义缓存的正确性责任转移,所以排在后面
  9. 敢砍功能,且对安全兜底类功能给出例外判据
  10. 砍完要过统计关验证,并事先写好加回来的触发条件
  11. 知道 tokenizer 变化会吃掉降价,比价要比每次请求实际花费

常见错误

第一句就是「换个便宜模型」没做成本归因,起手就是最后一刀
不问「砍的是什么钱」默认只有推理费用,漏掉人力与时间
没做消融就开始砍砍的是最不心疼的,不是收益最低的
把语义缓存排在很前面忽略正确性责任转移,风险最高的一刀被当成首选
全局降 effort 档位返工以更贵的方式回来
只按使用率砍功能会砍掉安全兜底类的「价值在没发生的事」的功能
砍完不做评测验证无法判断掉的是噪声还是真回退
比价只比单价tokenizer 差异会让降价落空
面对恢复要求只会要预算没有同预算置换的思路

关联学习