Anthropic在其API服务中推出提示词缓存(Prompt Caching)功能,该功能让开发者可以缓存经常使用的上下文,使得每次调用模型时,不再需要重新提供大量重复的背景数据,官方提到,在长提示词应用场景中,甚至可降低达90%成本,并使延迟减少85%。
提示词缓存的概念,是将开发者经常使用的大量提示词上下文进行缓存,只要开发者在第一次调用API时上传完整背景数据,在后续调用时,系统便可直接使用这些缓存内容。当用户发送请求时,系统会检查提示词前缀是否已在最近的查找中被缓存,是则直接使用缓存版本,否则处理完整的提示词并且缓存前缀供后续使用。
该功能的优势在于大幅减少重复性数据传输需求,降低调用API的成本和延迟,因此特别适合处理大量数据和多次交互的应用程序,诸如长时间的对话代理、程序开发助理、大型文档或多轮对话处理,以及知识库查找等。
借由提示词缓存功能,开发者可以将完整的知识库或是样本嵌入到提示中,并且在后续请求中重复使用这些数据,达到低成本和快速回应的效果。写入缓存的成本比基础输入Token的价格高25%,但在使用缓存内容时便宜许多,仅为基本输入Token的10%,这代表当频繁使用缓存,则仍可大幅节省成本。
依照定价官方给出提示词缓存在不同情境的效益参考,在10万Token提示缓存的书籍聊天,延迟从11.5秒减少至2.4秒,同时成本降低了90%,而1万Token的多样本提示,延迟从1.6秒减少到1.1秒,成本也降低86%,而对于具有长系统提示的多轮对话,延迟从10秒减少至2.5秒,成本节省53%。
目前提示词缓存已经先在Claude 3.5 Sonnet、Claude 3 Haiku模型上开始公开测试,而Claude 3 Opus模型则会在稍晚的时候支持。
除了Anthropic Claude的提示词缓存,市场上也有其他人工智能服务提供类似的功能,像是OpenAI也有在文档中提到类似的技术,开发者可大量共享提示词前缀,把RAG结果或是历史纪录等动态的部分放在提示的后半部分,就可以使得请求更具键值缓存友善(Key-Value Cache Friendly),减少每次请求处理输入的Token数量,进而降低延迟。