在大模型工程化落地中,Token 消耗与算力成本往往占到 AI 系统运营成本的70% 以上。工业界成熟的降本方案并非依赖单一手段,而是从Prompt 工程、多级缓存、模型分流、输出约束、网关治理到算力架构构筑的多层漏斗体系。
一、Prompt 与上下文工程(削减 40% ~ 70% 输入 Token)
大模型计费中,输入(Prompt)虽然单价比输出低,但由于 RAG 知识库检索和历史长对话的存在,输入 Token 往往占总量的 80%~90%。
1. 精心设计前缀对齐,榨干“提示词缓存(Prompt Caching)”
- 原理:DeepSeek、OpenAI、Anthropic 等均支持静态前缀缓存,命中后输入费用直接打 1 折到 5 折,且大幅降低首字延迟(TTFT)。
- 实践原则:严格遵循“静态在前,动态在后”:
- ❌错误做法:
[当前时间戳] -> [系统角色设定] -> [动态召回内容] -> [用户输入](时间在最前,导致每次请求前缀都变,缓存全部击穿)。 - ✅正确做法:
[通用 System Prompt] -> [Few-Shot 示例] -> [长知识库上下文] -> [历史对话] -> [动态时间戳与当前问题]。
- ❌错误做法:
2. 上下文动态裁剪与压缩(Context Pruning)
- 滑动窗口 + 滚动摘要:对多轮对话,只保留最近 3~5 轮完整对话;更早的对话由轻量模型自动压缩成一段几百字的历史摘要。
- Prompt 压缩工具:使用像
LLMLingua等轻量模型,在不损失关键信息的前提下,把长文本中的冗余修饰词压缩 20%~50%。
3. RAG 检索精细化(拒绝粗暴拼接)
- 避免盲目拼入 Top-10 知识切片。
- 引入Rerank(重排模型),只将相关度最高的 top 2~3 条片段送入大模型,或利用重排模型对内容做片段级提取(Chunk Extractor)。
二、多级缓存机制(实现 0 Token 响应)
对于高频重复问答,最省 Token 的方式是不请求大模型。
1. 精确匹配缓存(Exact Match Cache)
- 基于 Redis,将
Hash(Model + Messages)作为缓存键。若用户输入与历史完全一致,直接返回缓存结果。
2. 语义缓存(Semantic Cache)
- 代表工具:
GPTCache、Redis Vector Search、Milvus。 - 原理:将用户输入转成 Embedding 向量,当新提问与历史库中高频提问的余弦相似度>0.95> 0.95>0.95时,直接返回历史高质量答案。
- 收益:在客服、文档检索、FAQ 场景下,可拦截20%~40%的无效请求,耗时从秒级缩短至 10 毫秒,Token 消耗为 0。
三、模型级联与智能分流(Model Routing)
不要用屠龙刀去切水果。复杂推理模型(如o1、deepseek-reasoner)的单价往往是轻量模型(如deepseek-v4-flash、gpt-4o-mini)的10~20 倍。
1. 意图路由(Router)
由微型规则引擎或极轻量的分类模型(或 Flash 模型),先对用户意图进行分级:
- Level 1(闲聊/格式转换/简单抽取):分流至轻量模型(如
deepseek-v4-flash),单价极低且极速。 - Level 2(一般知识检索/文案创作):分流至标准全功能模型(如
gpt-4o、deepseek-chat)。 - Level 3(复杂数学/代码纠错/复杂逻辑规划):才启用深度思考模型(如
deepseek-reasoner、o1)。
2. 投机降级(Speculative Cascade)
先用小模型快速生成,若小模型置信度不足或判定解析校验失败,再回退调用大模型处理。
四、输出端控制(控制高单价的 Completion)
输出 Token 的单价通常是输入的3 ~ 4 倍,且推理模型的思考过程(Reasoning)全部按输出价格计费。
1. 按需关闭深度思考模式
- 对于绝大多数事实性问答、润色、翻译、格式转换,思考过程并不能带来实质提升,反而白白增加几百个
reasoning_tokens。 - 在配置中显式传入
extra_body={"thinking": {"type": "disabled"}}(如 DeepSeek),关闭思考模式,实现 2 秒内极速生成且节省输出成本。必须由业务场景按需开启,严禁全局默认开启。
2. 强制结构化约束与早停
- 使用
response_format={"type": "json_schema"}或 Pydantic,避免模型输出“好的,以下是给您的方案…”等无意义客套寒暄。 - 合理设定
max_tokens(例如仅仅提取一个手机号或判断分类,设置max_tokens=30即可),防止模型陷入死循环或恶意注入攻击导致输出跑满几万字。
五、网关层治理与防刷(限额与熔断)
在应用与大模型之间架设API 智能网关(如开源的OneAPI、NewAPI、LiteLLM或Kong):
- 按用户/租户配额熔断:为每个业务部门或终端用户分配每日/每月 Token 消费额度,超额即自动降级为小型模型或阻止调用。
- Agent 死循环熔断:在自主智能体(Agent)循环调用 Tool 时,强制设置
max_turns(如最多反思 5 次)和单次会话 Token 上限(如单会话超 50,000 Token 强制截断报警)。 - 成本归因 APM:接入
Langfuse或Helicone,清晰掌握:哪一个 Prompt 模板最吃 Token?哪一个业务线每天花费最多?以便针对性重构。
六、算力自建 vs 公有云 API 的平衡点(架构选型)
| 维度 | 公有云 API(如 DeepSeek / OpenAI 官方) | 自建/私有化算力(vLLM + 开源模型) |
|---|---|---|
| 适用阶段 | 业务探索期、请求量波动大、冷启动阶段 | 业务稳定成熟、日请求千万/亿级 Token |
| 成本形态 | 100% 变动成本(按量付费,无空转浪费) | 固定成本(GPU 租赁/采购 + 运维人员成本) |
| 技术红利 | 原生自带 Prompt Cache 自动折算、无需运维 | 依赖团队优化能力(PagedAttention、量化加速) |
经验分水岭:
如果业务的日并发非常平稳,且日 Token 消耗在数亿级别以上,采用开源模型(如 DeepSeek-V3 / Llama-3)结合vLLM / SGLang+FP8 / AWQ 量化部署,算力成本可比采购官方 API 进一步降低 30%~50%;但在前期和非稳态业务下,直接调优 Prompt 结构并调用官方高性价比 API(如deepseek-v4-flash)通常是整体 ROI 最高的方案。
💡 建议立即落地的 3 个低代码改动
- 梳理 Prompt 顺序:把所有固定的 Prompt / 规则说明放在最前,动态变量放最后,立刻获得50%~90% 的缓存折扣;
- 给模型请求打标分类:简单任务立即由大模型切到
deepseek-v4-flash等轻量模型,成本直降 80%; - 非推理任务关闭思考模式:设置
thinking: {"type": "disabled"},杜绝多余的reasoning_tokens。