如何降低长对话中的 LLM Token 成本:缓存能省多少,又止步于何处

📌 One-Sentence Summary
分析了 LLM 对话成本的二次方增长特性,并提供了优先级明确的优化策略:短会话使用提示词缓存,长单会话使用上下文编辑/压缩,跨会话持久化使用记忆层,同时给出了具体的成本交叉阈值。
📝 Summary
文章指出,由于 LLM API 是无状态的,随着每轮重新发送历史记录,输入成本会随对话长度呈二次方增长。文章提出了四步优化层级:1) 启用提示词缓存(在单次会话内将重复历史成本降低约 90%);2) 通过清除工具结果和限制输出来减少每轮的增量;3) 使用滑动窗口或服务端摘要来修剪或压缩历史;4) 为长期助手实现有界记忆层。以 Claude Sonnet 5 的定价为例,文章演示了虽然缓存在少于 100 轮时更具优势,但在约 200 轮(约 10 万 token)时,记忆层的成本开始低于冷缓存场景。文中包含详细的算术表格、实施注意事项(如缓存失效触发条件)以及测量策略。
💡 Main Points
由于无状态特性,LLM 对话成本呈二次方扩展。
每个请求都会重新发送系统提示词和完整的历史记录。对于 N 轮对话,若每轮增加 S 个 token,总输入量大致为 N*P + S*N(N-1)/2。这使得长聊天的成本相对于其轮数而言不成比例地高昂。
提示词缓存是实现单次会话内节省的首要且最有效的手段。
缓存将读取重复前缀的成本降至标准输入费率的 0.1 倍(或更低)。在示例中,它将 40 轮聊天的成本从 1.09 美元降至 0.29 美元。然而,当用户在缓存过期(通常为 5 分钟至 1 小时)后返回时,缓存会失效,需要重写整个历史记录。
记忆层仅在超过特定长度阈值后才具备成本效益。
对于少于约 100 轮的对话,仅使用缓存更便宜。在约 200 轮(历史约为 100,000 个 token)时,如果会话间缓存变冷,带有记忆层的有界上下文成本开始低于缓存历史。在 500 轮时,记忆层的成本显著更低,因为其增长是线性的而非二次方的。
上下文编辑和压缩提供精细控制,但存在信息丢失风险。
清除旧工具结果或总结历史等技术可以减少 token 数量,但可能会破坏缓存连续性或丢失关键细节(例如特定的药物剂量)。压缩过程需要验证机制以确保保留关键事实。
💬 Key Quotes
长对话的成本远高于其轮数所暗示的水平,因为语言模型在调用之间不保留任何内容:每个请求都再次携带系统提示词和整个历史记录,因此总输入量随轮数的平方增长。
缓存是对历史打折,而不是缩小历史。
在大约 200 轮时,当历史超过 100,000 个 token,如果会话间缓存变冷,有界上下文的成本开始低于缓存历史。
如果你的产品按用户收取固定费用,你最重的用户成本最高……两者都不做意味着你留存最好的客户却是利润最低的。
📊 Article Meta
AI Screening: 88
Source: DEV Community: machinelearning
Author: Gaurav Dadhich
Category: 人工智能
Language: 英文
Read Time: 11 min
Word Count: 2709
Tags:
AI 与智能应用 , Prompt缓存 , LLM 推理优化 , AI 工程 , Agent记忆
讲解得很细致,新手也能看懂。
这篇文章分析得很透彻,收藏了!
赞同,实践出真知。
这个观点很中肯,深有同感。
收藏了,以后慢慢研究。
内容翔实,正好需要,先收藏再看。
整理得太全面了,省了我不少时间。
路过
整理得太全面了,省了我不少时间。
刚好最近在找这方面的资料,太及时了。
作者写得真不错,学到了不少。
不错不错,已加入书签。