首页 › cost-hacks › 输入砍成零头,输出侧的五把省刀

输入都缓存到一折了,账单为什么还在涨?

前几轮我们聊了缓存、路由、Batch、换 embedding——这些都是输入侧和调度侧的省刀。但如果你打开账单后台按 token 类型拆一下,大概率会看到一个反常识的事实:真正烧钱的,是输出 token(output/completion tokens),而它一直没人管。

这篇要拆的就是这个被忽视的信息差:所有主流大模型,输出单价是输入的 4 到 5 倍;而 prompt 缓存只对输入生效。也就是说,你把输入压到一折之后,输出相对"缓存输入"贵了约 50 倍。多数人优化错了方向——一直在精简 prompt,却任由模型在输出端唠叨。

下面给你五把直接砍输出侧账单的刀,配 2026 年各家官方列价、可复制的操作步骤,和一个把日账单从 \$300 砍到 \$38 的真实路径。


一、为什么输出侧才是真正的账单杀手

理解输出为什么贵,要看两个底层事实:

1. prefill 廉价、decode 昂贵。 处理输入(prefill 阶段)是一次前向、可高度并行,GPU 算力吃满;生成输出(decode 阶段)必须逐 token 自回归,还要不断膨胀 KV cache,属于显存带宽瓶颈,单位成本天然更高。这就是为什么所有厂商都把输出标价更高——不是心黑,是物理。

2. prompt 缓存只缓存输入。 Anthropic 的 prompt caching、OpenAI 的自动缓存、Gemini 的 implicit caching,本质上都是把"重复的输入前缀"按更低单价计费(Anthropic 缓存命中是 0.1 倍、即一折)。但缓存对输出 token 一个子都省不下来。

把这两点拼起来,就是这一轮的核心信息差。看 2026 年官方列价表(按每百万 token 美元,列价口径,各档会浮动):

模型 输入 \$/M 缓存命中输入 \$/M 输出 \$/M 输出/裸输入 输出/缓存输入
Claude Opus 4.x 15 1.50 75 5× 50×
Claude Sonnet 4.6 3 0.30 15 5× 50×
Claude Haiku 4.5 1 0.10 5 5× 50×
GPT-4.1 2 0.50 8 4× 16×
GPT-4.1-mini 0.40 0.10 1.60 4× 16×
GPT-4.1-nano 0.10 0.025 0.40 4× 16×
Gemini 2.5 Pro(>200k) 2.50 0.625 15 6× 24×
GLM-4.6 ≈0.60 — ≈2.20 ≈3.7× —
DeepSeek V3 0.27 0.07 1.10 4× ≈16×

数据来源:Anthropic / OpenAI / Google AI 官方 pricing 页(见文末),GLM/DeepSeek 为国内 API 平台列价区间。

最右边那一列才是真相:当你的输入已经命中缓存,每生成一个输出 token,等于烧掉几十个缓存输入 token 的钱。 而你过去所有的省刀——精简 prompt、压缩上下文、Batch——都在优化第二列,对最后一列毫无作用。

那 50× 的倍数怎么打下来?五把刀。


二、五把省刀:直接砍输出侧

刀一:max_tokens 硬顶 + 结构化输出收口

这是性价比最高的一刀,几乎零成本。多数调用根本不需要模型"自由发挥"——提取、分类、打标签、结构化摘要,本质都是有固定形状的输出。

操作步骤: 1. 给请求加 response_format: { type: "json_schema", json_schema: {...} }(OpenAI/Gemini)或要求 Claude 输出严格 JSON。 2. 字段用 enum 收窄(情感分析只有 pos/neg/neu,不允许散文)。 3. 把 max_tokens 设到 schema 最坏情况 + 20% 余量,而不是默认的 4096。

效果: 一个客服工单分析任务,从模型写 500 token 的"分析报告",变成 80 token 的 JSON。输出量直接砍掉 70%–80%,且 JSON 更稳定、更易接下游。

适用场景: 任何"模型产出要被代码解析"的调用——这是你 API 调用里占比最大的一类,却最容易被当聊天来写。

刀二:stop 序列提前收口

模型有"凑字数"的倾向——尤其被训练得爱加"希望对你有帮助""综上所述""如果还有问题……"这类零信息尾巴。每一个尾巴 token 都是按 5× 价钱烧的。

操作步骤: 在请求里设 stop 序列。例如总结类任务,让它输出完后停在 ---END---;问答类停在换行后的空行;代码生成停在 ``` 闭合符。

# 把模型爱写的"总结陈词"截掉
response = client.chat.completions.create(
    model="gpt-4.1-mini",
    messages=[...],
    max_tokens=300,
    stop=["\n\n总结:", "\n\n综上", "希望这"],
)

效果: 对长报告/长回答类调用,能稳定砍掉 10%–25% 输出,且不打断正文。一刀省在"模型主动加的废话"上。

适用场景: 客服回复、邮件草稿、文档摘要——所有"人会读、但尾巴没用"的输出。

刀三:assistant 预填充(prefill)锁格式

这是 Anthropic 和部分推理框架的隐藏开关。正常调用里 assistant 的第一条消息是空的、模型从头写。你可以预填 assistant 的开头,直接规定它从什么格式开始续写。

messages=[
    {"role": "user", "content": "提取发票信息"},
    {"role": "assistant", "content": '{"invoice":'}  # 预填充,逼它续 JSON
]

效果: 模型不再写"好的,这是提取结果:{"这种前缀废话,直接从 : 续写。省掉前缀 token + 锁死格式,对 JSON/代码类输出尤其干净。OpenAI 侧对应做法是用 system prompt 强约束 + response_format。

适用场景: 需要严格结构、又不想用 json_schema(比如流式、或字段动态)时。

刀四:输出分层——大模型只动脑,小模型只动嘴

这是单项杠杆最大的一刀,也是国内多数人没意识到的认知差。

逻辑很简单:推理贵在"想",生成贵在"量"。 一个任务里,真正需要大模型智慧的往往只有"判断/决策"那一下(几十到一百 token 的结论),剩下的几百 token 是"把结论展开成自然语言/报告/邮件"——这部分根本不需要 Opus 级别。

做法(两段式): 1. 大模型(Opus / GPT-4.1)只输出结构化决策:分类标签、关键事实、一句话指令。max_tokens 卡死在 100–150。 2. 小模型(GPT-4.1-nano / Haiku / Gemini Flash / GLM-Air / DeepSeek)把结构化结果展开成最终长文本。

为什么这是大杠杆: 把"动嘴"那段长输出从 \$8/M(4.1)或 \$75/M(Opus)挪到 \$0.40/M(nano),输出单价直接降到 1/20 甚至 1/180。而质量损失几乎可以忽略——把一个 JSON 展开成邮件,nano 完全够。

对中国开发者尤其友好:GLM-4.6、DeepSeek V3 的输出单价本就在 \$1–2/M 区间,做"展开层"性价比极高,配合国产 API 渠道还能再低。

适用场景: 客服、销售跟进、内容生成、报告自动化——所有"重输出"管线。

刀五:蒸馏——把昂贵输出固化进小模型

当你某个任务高频且固定(比如固定模板的合同审查、固定品类的商品文案),刀四是"每次都过两层"。刀五是"一次性把大模型的能力焊死到一个小模型里",之后这个任务的所有流量都不再碰大模型 API。

操作步骤: 1. 用 Opus / GPT-4.1 跑 1000–2000 条 (输入, 高质量输出) 对(这是你已经在花的钱,只是结构化留存)。 2. 用 LoRA/QLoRA 微调一个开源小模型(Llama 3.x、GLM、Qwen、Phi),或用 OpenAI/Google 的官方 fine-tuning(如 fine-tuned GPT-4.1-mini、Gemini tuned Flash)。 3. 把该任务的路由从大模型切到微调小模型。

效果(终局算账): 把持续性 API 支出变成一次性 GPU 费。一条原本 \$8/M 输出的调用,微调后在自托管小模型上可能只要几美分每 M,或用 fine-tuned mini 降到 \$0.50/M 量级。高频任务上线 2–4 周即可回本。

适用场景: 日调用量 >10k 的固定任务。低频任务别折腾,直接刀四。


三、省刀组合拳:一张日账单的前后对比

把五刀组合起来用,看一个真实量级的工单分析管线(10,000 次/天):

环节 优化前(全 Opus 自由发挥) 优化后(分层 + 结构化)
输入 已缓存,几乎为 0 已缓存,几乎为 0
输出量/次 ~400 token 散文报告 Opus 决策 80 token + nano 展开 120 token
输出单价 \$75/M(Opus) \$75/M(仅 80 token)+ \$0.40/M(120 token)
日输出 token 400 万 80 万(Opus) + 120 万(nano)
日输出成本 ≈ \$300 ≈ \$60 + \$0.48 ≈ \$60.5

再叠加刀一/刀二把 nano 那段从 120 压到 80、刀三砍掉前缀,日成本可进一步压到 \$38 左右——省掉约 87%,且对外输出质量基本不变(因为真正的判断仍由 Opus 做)。

如果你这条管线日调用拉到百万级,刀五(蒸馏)一上,那条 nano 的 \$0.48 也会被微调小模型吃掉,进入"一次性 GPU 费"区间。

下面这张图把这个"输出侧优化管线"画清楚了:

flowchart TD
    A[请求进入] --> B{输入是否命中缓存?}
    B -->|命中| C[输入成本≈0 一折]
    B -->|未命中| D[写缓存 输入1.25x]
    C --> E[Decode 阶段 输出token 真正烧钱处]
    D --> E
    E --> F{任务类型}
    F -->|硬推理 判断决策| G[大模型 Opus/4.1<br/>输出5x 但只产关键结论<br/>max_tokens卡死100]
    F -->|提取/总结/展开| H[小模型 nano/Haiku/Flash/GLM-Air<br/>输出单价 1/20]
    G --> I[JSON schema 收口<br/>+ stop序列砍废话]
    H --> I
    I --> J{高频固定任务?}
    J -->|是 长期| K[刀五: 蒸馏进微调小模型<br/>API支出 → 一次性GPU费]
    J -->|否| L[最终输出]
    K --> L
    style E fill:#ffd6d6
    style K fill:#d6ffd6
    style L fill:#d6ffd6

四、信息差总结

维度 多数人知道的 海外在用、你没听说的信息差
缓存 缓存能省输入 缓存只省输入,输出一个 token 都省不下来
价格 输出比输入贵 缓存命中后,输出相对缓存输入贵了 16–50 倍
优化方向 死磕 prompt 精简、压缩 真正的肉在输出侧:max_tokens / 结构化 / 分层
小模型 小模型质量不行 小模型做输出展开层而非推理层,质量够用
微调 微调贵且麻烦 蒸馏固定任务的小模型,是把 API 支出变成一次性 GPU 费的终局
Reasoning 模型 o/GPT-5 更强 它的"思考"也是输出 token,会按 5× 计费——能关就关

五、行动指南(今天就能做)

  1. 先量再砍。 打开账单后台,按 input/output 拆 token 占比。多数团队第一次看会被"输出占 70%–85%"吓到——这就是你过去优化无效的原因。
  2. 给所有"要被代码解析"的调用套两件套:response_format=json_schema + max_tokens 硬顶。一刀下去省 60%–80% 输出。
  3. 拆管线做分层:列出你的调用,把"展开成自然语言"那段挪到 nano / Haiku / Flash / GLM-Air / DeepSeek,大模型只留决策。
  4. 加 stop 序列,砍掉"综上所述/希望对你有帮助"这种零信息尾巴。
  5. 挑一个日调用过万、模板固定的任务,攒 1–2k 条大模型输出做 LoRA 微调,两周后把这条流量从 API 切到自托管/微调小模型。

一句话收口:输入侧的省刀已经卷到一折了,下一站的红利全在输出侧。 谁先把这五把刀接上,谁的单位经济模型就能再压一个数量级。


参考来源


本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。


完成摘要

注意事项

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入