RAG模型上下文丢失问题解决方案对比

RAG模型上下文丢失问题解决方案对比
传统的RAG(检索增强生成)系统通过将文档拆分为独立的小块,并为每个数据块单独生成嵌入向量来提升模型的检索能力。然而,这种方法容易丢失上下文信息,导致模型在处理长文本时理解力下降。为了解决这一问题,Anthropic提出了“Contextual Retrieval”策略,而Jina则开发了“迟分(Late Chunking)”方法。这两种方法均旨在保留文档的上下文信息,提升检索的准确性和模型对复杂语义的理解能力。

Contextual Retrieval通过引入上下文描述,将每个数据块与完整文档的语境信息关联起来。具体而言,它利用大语言模型(如Claude)在每个分块生成之前,为其补充特定上下文,从而使得每个数据块的嵌入表示能够反映整个文档的语义结构。例如,在一个财务报告的检索场景中,“公司的收入增长了3%”这样的原始描述经过Contextual Retrieval后会被扩展为“该数据块摘自ACME公司2023年第二季度财报,上季度收入为3.14亿美元。公司的收入增长了3%”。通过这种上下文补充,系统能够在检索任务中更精确地匹配到相关信息,从而减少检索失败率。

具体实验显示,Contextual Retrieval在结合上下文BM25后,检索失败率降低了49%,而在加入重新排序步骤后,失败率进一步降低至67%。此外,Anthropic提供了提示缓存(Prompt Caching)技术,能够将生成上下文嵌入的成本控制在每百万文档token仅$1.02。

与Contextual Retrieval不同,迟分(Late Chunking)方法首先对整个文档进行长上下文嵌入生成,然后在生成的嵌入向量序列中再进行分块操作。这样做的好处是每个分块后的向量仍然包含整个文档的上下文信息。通过引入这种延迟分块策略,Jina的迟分方法能够更好地保留上下文信息,并且在多种检索任务中表现出了优异的效果。与独立分块策略(IID)相比,迟分方法避免了文本上下文的割裂,能够将相邻分块的语义信息更紧密地联系起来,从而在复杂文本的检索任务中取得更高的准确率。

总的来说,Contextual Retrieval和迟分策略各有优势:前者通过上下文补充提升每个分块的语义表示能力,后者则通过在嵌入生成后进行分块,最大化保留文档的上下文信息。在实际应用中,可以根据场景的计算成本、检索精度和存储需求等因素,选择合适的方法来提升RAG模型的性能和上下文保留能力

posted on 2025-03-01 00:42  ExplorerMan  阅读(256)  评论(0)    收藏  举报

导航