本文主要是介绍在做RAG以前你可以尝试的事:Prompt Caching,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
近年来,科技领域的创新不断涌现,为我们带来了许多令人兴奋的技术突破和应用。近期,Anthropic公司引入了与Claude配合使用的提示缓存技术(prompt caching),这项技术能够将长提示的成本降低高达90%,延迟减少高达85%。这一技术有望成为小规模检索增强生成(RAG)的一个良好替代方案。然而,实际上谷歌才是最早通过其API引入上下文缓存(context caching)技术的公司。本文将深入探讨这些技术的应用及其创新性。
Gemini API的文档处理能力
Gemini API不仅支持上下文缓存,还可以直接通过API处理PDF文件,无需任何预处理。这一创新使得我们不再需要依赖于外部的预处理库,如unstructured IO或LlamaPars。令人惊讶的是,Gemini API最近进行了重大升级,现在可以上传最多1000页的PDF文件,这基本上可以满足大多数应用场景的需求。
虽然这种方法仍然是按令牌计费,但你可以将其与上下文缓存结合使用,以节省令牌成本。以下是我们将要探讨的主要内容:
- Gemini API的文档处理能力
- 上下文缓存的实际应用
- 多文件处理与缓存策略
Gemini API的技术规格
根据官方文档,Gemini 1.5 Pro和Flash版本支持最多3600页的文档处理。文档必须是application/pdf MIME类型,每页文档相当于258个令牌。无论文档的像素多少,较大的页面会缩小到3072x3072像素,同时保持纵横比,而较小的页面会放大到768x768像素。这意味着无论页面大小如何,都可以进行处理,但较小页面的处理成本不会降低,除了带宽和性能改进方面的差异。
实际操作指南
在上传PDF文件之前,有几件事需要注意:应先将页面旋转到正确的方向,避免上传模糊的页面,如果使用单页文档,需将提示放在页面之后。Gemini API允许每个项目存储最多20GB的文件,每个文件最大2GB,文件会在48小时内存储,可在此期间通过API密钥访问,但无法通过API下载。
接下来,我们将展示如何使用Gemini API进行文档处理和上下文缓存。
开始使用Gemini API
首先需要安装Google生成AI包(google generative ai package),然后获取API密钥。以下是一些基本步骤:
- 上传PDF文件:使用upload file函数上传文件,提供文件名和显示名,并生成唯一的URI。
- 处理PDF文件:通过生成内容函数处理文件,传递生成的文件URI和提示。例如,可以让模型将文档总结为一个项目符号列表。
上下文缓存的应用
上下文缓存可以显著降低处理成本。在上传文件并生成URI后,你可以创建一个缓存并定义缓存的生存时间。例如,将文档缓存15分钟,并在之后的查询中使用该缓存内容。这不仅能减少成本,还能提高处理效率。
多文件处理
如果需要处理多个文件,可以创建多个缓存对象,然后在提示中引用这些缓存。这样可以在单次查询中处理多个文档,非常高效。
实验与测试
为了展示Gemini API的强大功能,我们进行了几个实验:
- 文档总结:让模型总结Gemini 1.5技术报告和一篇关于基于上下文学习重新思考对齐的论文。
- 图像解释:测试模型的多模态能力,例如解释Gemini 1.5技术报告中的图表。
- 多文件对比:比较两篇文档的论文陈述,并提供反驳意见。
通过这些实验,我们发现Gemini API在处理复杂文档和多模态数据方面表现出色,特别是在上下文缓存的支持下,能够以更低的成本和更高的效率完成任务。
未来展望
上下文缓存和提示缓存技术的引入,为我们提供了新的工具来处理和优化大规模数据处理任务。虽然这些新技术可能不会完全取代传统的RAG方法,但在特定场景下,它们提供了更为经济高效的解决方案。
在未来,我们预计会看到更多公司和开发者采用这些创新技术,以提升数据处理的效率和降低成本。对于那些对科技充满热情的普通用户来说,这些进展无疑是非常值得关注和期待的。
总的来说,Gemini API和Claude的上下文缓存和提示缓存技术展示了科技领域的无限可能性。通过不断创新,我们可以期望看到更多类似的突破,为我们的生活和工作带来更多便利和效率。
关注我,每天带你开发一个AI应用,每周二四六直播,欢迎多多交流。
这篇关于在做RAG以前你可以尝试的事:Prompt Caching的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!