为什么我本地部署的OCR与 RAG流水线设计会导致检索性能下降?
我正在构建一个本地部署的文档处理系统,使用:
-
针对扫描的PDF进行OCR(光学字符识别)
-
用于索引的嵌入向量
-
用于检索和问答的RAG(检索增强生成)
然而,当将OCR输出与嵌入向量结合时,我在检索质量和延迟方面遇到了问题。
例如:
-
OCR文本嘈杂,影响嵌入质量
-
相似查询之间的检索结果不一致
-
随着文档集规模增大,性能下降
这些问题在这样一个流水线中的常见原因是什么,应该如何解决?
解决方案
我对这个问题做了一些研究,下面的答案,供同样有此疑问的朋友参考。
我认为大致归结为几个方面。
第一是OCR。如果文本嘈杂(断词、间距异常、表格排版混乱),确实会降低嵌入质量,从而导致检索不稳定。清理OCR输出帮助很大。第二是分块。按固定大小分块对我来说效果不佳。改为更具结构性的分块(章节/段落)使结果更加稳定。保留一些元数据也有帮助。第三是检索。仅嵌入向量的检索随着数据集增大而开始失效。增加关键词检索和重新排序步骤,效果提升相当明显。
就延迟而言,最大的改善是在离线处理完成OCR+嵌入,而不是在查询时进行。因此整体上类似于:
OCR → 清理 → 更好的分块 → 混合检索 → 重新排序
似乎要好得多。
据我所见,很多生产环境的搭建也是这样(包括一些本地部署的工具,如Doc2Me AI、ABBYY等),所以这更可能是流水线问题,而不是模型问题。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。