在当今数据驱动的商业环境中,公司积累了大量的文档、图片、报告等,其中包含了宝贵的信息。有效地检索和分析这些信息对于决策至关重要,但仍然是一个重大挑战。处理文档以进行检索增强生成(RAG)是具有挑战性的,因为它涉及到布局复杂性、可扩展性和成本问题。现有的解决方案——无论是开源的还是专有的——都在准确性和成本上存在问题。专有选项昂贵,而大型语言模型(LLMs)引入了OCR(光学字符识别)的不一致性——比如在表格解析中。
Gemini 2.0 Flash:游戏规则改变者
Gemini 2.0 Flash可能是这里的游戏规则改变者。根据Sergey Filimonov的博客中对真实世界数据的实验,Gemini 2.0 Flash提供了:
- 接近完美的OCR能力——这对于从具有复杂布局和表格的文档中准确提取文本至关重要。
- 与OpenAI等大型竞争对手LLMs相比,成本显著降低。
- 处理真实世界文档挑战:在质量差的扫描、多种语言和复杂的表格结构中表现良好。
最近OmniAI OCR基准测试揭示了类似的发现:
- Gemini 2.0 Flash与GPT-4o相比:准确率86.1%对75.5%。
- Gemini 2.0 Flash与GPT-4o相比:每1000页成本1.12美元对18.37美元。
这些发现表明,整体视觉语言模型(VLMs)的性能与大多数传统OCR提供商相匹配或超过。最显著的性能提升是在包含图表/信息图表、手写或复杂输入字段(例如复选框、高亮字段)的文档中。VLMs在照片和低质量扫描上也更可预测。它们通常更能“看穿”扫描线、折痕、水印等“噪声”。传统模型在高密度页面(教科书、研究论文)以及常见的文档格式(如税务表格)上表现更好。
总的来说,多模态LLMs更好且更便宜!尤其是Gemini 2.0 Flash。因此,让我们使用它来构建一个RAG系统吧!
什么是RAG(检索增强生成)?
检索增强生成(RAG)结合了检索系统和生成性AI的力量,以提供准确、基于知识的响应:
- 检索:当用户提出问题时,系统首先搜索相关文档的数据库。
- 增强:系统将检索到的上下文添加到用户的查询中。
- 生成:然后LLM根据查询和检索到的上下文生成响应。
RAG系统使公司能够通过从自己的数据仓库中检索相关信息来增强LLM响应,从而充分发挥其文档集合的全部潜力。
构建多模态RAG系统
让我们使用DeepSeek-R1论文,并让Gemini 2.0 Flash回答一个需要阅读和理解以下小表格的单一问题:
- 来源:DeepSeek-R1:通过强化学习激励LLM的推理能力(https://arxiv.org/pdf/2501.12948)
问题:“为什么DeepSeek是一个重大突破,DeepSeek-R1-Zero在基准测试中表现得更好多少?”
构建简单RAG系统的工作流程
- 加载PDF并保存每一页为图像。
- 提示Gemini 2.0 Flash进行OCR和分块。
- 使用Gemini嵌入模型嵌入分块。
- 将文档分块和嵌入保存在向量数据库中。
- 提示LLM使用最佳匹配分块生成答案。
Gemini 2.0 Flash的优势
Gemini 2.0 Flash提供了一个成本效益的解决方案,用于构建OCR/RAG系统,特别是当你的用例只需要文本、表格和图像而不需要边界框时。虽然边界框检测仍然是一个挑战,我们可以期待未来的模型改进来解决这个限制。
RAG系统的详细构建步骤
步骤1:加载PDF并保存每一页为图像
首先,我们需要从URL加载PDF文档,并将每一页解析并保存为图像。这可以通过使用Python库如requests
和PIL
来实现。
步骤2:提示Gemini 2.0 Flash进行OCR和分块
接下来,我们提示多模态LLM进行OCR,并创建有意义的分块,这些分块由<chunk></chunk>
标签定义。表格应该以HTML格式格式化,并额外添加摘要(这将通过添加更多支持来改善检索)。对于图表也是如此。
步骤3:使用Gemini嵌入模型嵌入分块
我们将使用Gemini API以及检索任务类型的嵌入模型来为每个分块创建嵌入,并将它们与文档一起保存在向量数据库中。这将提高嵌入的质量。
步骤4:将文档分块和嵌入保存在向量数据库中
我们将使用ChromaDB作为向量数据库。对于每个分块,我们将使用嵌入模型创建嵌入,并将它们与文档一起保存在向量数据库中。
步骤5:提示LLM使用最佳匹配分块生成答案
最后,我们可以将用户查询嵌入,执行与所有嵌入文档的相似性搜索,以找到最佳匹配的前k个文档。然后,我们可以将这些文档作为上下文与查询一起提供给LLM,以生成最终答案。
RAG系统的最终部分:生成答案
最后,我们可以将检索到的前k个文档作为上下文,与查询一起提供给LLM,以生成最终答案。
Gemini 2.0 Flash为构建OCR/RAG系统提供了一个经济有效的解决方案,尤其是在你的用例只需要文本、表格和图像而不需要边界框时。虽然边界框检测仍然是一个挑战,我们可以期待未来的模型改进来解决这个限制。
通过使用Gemini 2.0 Flash,我们可以构建一个强大且可扩展的多模态RAG系统,以更有效地检索和分析公司积累的大量文档、图片和报告中的宝贵信息。这不仅提高了决策的质量,还降低了成本和复杂性。