提示缓存是一种优化技术,主要用于大型语言模型(LLM)和其他生成式人工智能(AI)模型。它包括存储处理特定输入提示(或部分提示)的结果,这样如果再次收到相同或非常相似的提示,就可以快速检索和重用存储的结果,而不是从头开始重新计算。这大大减少了推理延迟,降低了运行GPT-4 等强大模型的相关计算成本,并提高了人工智能应用的整体效率和可扩展性。
提示缓存的工作原理
当 LLM 处理一个提示时,需要经过多个计算步骤,包括标记化和神经网络层内的复杂计算,通常涉及注意力机制。提示缓存通常存储与给定提示或提示前缀相关的中间计算状态(如Transformer架构注意层中的键值对,通常称为 KV 缓存)。当有新的提示到达时,系统会检查其前缀是否与之前处理和缓存的提示相匹配。如果发现匹配,就会检索缓存的中间状态,从而让模型绕过初始计算步骤,从保存的状态开始生成响应。这在对话式人工智能或提示具有共同开头的场景中尤为有效。系统通常使用Redis或Memcached等键值存储来有效管理这些缓存。
提示缓存的优点
实施及时缓存有几个好处:
- 减少延迟:显著加快重复或类似查询的响应速度,提升聊天机器人等交互式应用的用户体验。
- 降低计算成本:减少GPU 等昂贵硬件的负载,从而节约成本,尤其是在使用云计算资源或调用商业 LLM 的 API 时。
- 提高吞吐量:由于资源释放速度更快,系统可同时处理更多请求。
- 一致性:确保对相同的提示做出相同的回复,这在某些应用中是可取的。
实际应用
在各种人工智能驱动的系统中,及时缓存非常重要:
- 对话式人工智能和虚拟助理:在客户服务虚拟助理等系统中,许多对话都以类似的问候语或常见问题开始(例如,"你们的营业时间是什么时候?"、"我如何重置密码?")。缓存这些常见输入的初始处理过程可以让系统更快地做出响应。例如,处理完 "您好,我需要帮助...... "后的处理状态可以缓存起来,并立即重新用于多个用户的类似请求。探索人工智能在客户服务中的应用。
- 内容生成平台:用于文本生成的工具,如写作助手或代码生成器,经常会收到带有重复指令或上下文前缀(如 "将以下文本翻译成法语:"、"为......编写Python 代码")的提示。缓存与这些前缀相对应的状态可以加速生成过程,尤其适用于交互式或大容量环境。了解生成式人工智能用例。
提示缓存与相关概念的比较
将及时缓存与其他相关技术区分开来很有帮助:
- 及时工程:重点是设计有效的提示,以从人工智能模型中获得所需的反应。无论提示设计得如何,缓存都能优化这些提示的执行。
- 提示丰富:包括在用户的提示信息发送到模型之前添加上下文或说明信息。缓存发生在模型处理提示(可能经过丰富)的过程中或之后。
- 提示调整和 LoRA:这些都是参数高效微调(PEFT)方法,通过训练附加参数的小集合来调整模型的行为,从而有效地为特定任务定制模型。缓存是一种不改变模型本身的推理时优化。
- 检索-增强生成(RAG):通过从外部知识库检索相关信息并将其添加到提示的上下文中来增强提示。虽然 RAG 会修改输入,但缓存仍可用于处理组合提示(原始查询+检索数据)。
- 标准输出缓存:传统的网络缓存存储的是请求的最终输出。提示缓存通常会在模型的处理管道中存储中间计算状态,从而实现更灵活的重用,尤其是对于共享前缀但结尾不同的提示。
虽然提示缓存主要与 LLM 有关,但缓存计算的基本原理可能适用于文本提示与其他模态交互的复杂多模态模型,不过在标准计算机 视觉任务中并不常见,例如使用诸如 Ultralytics YOLO(见YOLO 模型比较)。Ultralytics HUB等平台简化了人工智能模型的部署和管理,其中缓存等优化措施对生产环境中的性能至关重要(了解部署最佳实践)。