type
status
date
slug
summary
tags
category
icon
password
RAG技术有助于优化RAG管道的准确性和灵活性。从智能分块到混合搜索和上下文提炼,这些方法是在实际应用中提供更快、更相关响应的关键。
为什么需要这些技术?
因为基础RAG设置经常遇到噪音结果、不相关的上下文或排序不佳的问题。
当系统无法提取正确信息时,用户会失去信任,模型会浪费时间处理错误的上下文。
本指南分解了九种值得了解的高级RAG技术:
  • 文本分块
  • 重排序
  • 利用元数据
  • 混合搜索
  • 查询重写
  • 自动截断
  • 上下文提炼
  • 微调大语言模型(LLM)
  • 微调嵌入模型
你还将学习如何使用Meilisearch、LangChain和向量数据库等工具实现这些策略,以及如何评估哪些方法真正有效。
让我们开始吧。
notion image

1. 文本分块

文本分块将长文档分解为更小的片段("块"),使其更容易索引和检索。
RAG管道不是拉取整个文档,而是使用这些块工作,块的质量直接影响检索准确性和答案清晰度。
如果块太长,模型会分心。另一方面,如果太短,上下文会丢失。正确的平衡有助于提供最佳结果。
以下是几种分块类型:
  • 简单分块: 将文档分割为固定大小的块,带有一些重叠(例如,35个字符带5个字符重叠)。易于实现,忽略语义结构,可能会在块之间分割关键概念。
  • 语义分块: 使用嵌入和余弦阈值按相似性对句子进行分组。保持相关概念在一起,提高检索精度,但需要BERT等嵌入模型和更高的计算性能。
  • 基于语言模型的分块: 使用LLM将文本分割为自包含的命题。产生高度连贯的结果,但计算成本高,可能需要微调。
毫不意外,每种方法都有其权衡。如果你处理产品手册或技术文档,语义或基于LLM的分块可能会带来回报。对于简单内容,固定大小的块就足够了。

2. 重排序

在RAG系统中,初始检索器会拉取大量结果,有些好有些不好。重排序是重新排序结果的过程,让最相关的块在传递给LLM之前上升到顶部。
以下是重排序的几种常见方法:
  • 交叉编码器重排序: 将查询和每个候选块输入变换器模型(如BERT),对它们的匹配程度进行评分。非常准确但缓慢且资源密集。当质量比延迟更重要时最适用。
  • 基于分数的重排序: 使用启发式或相关性分数(例如,BM25增强、关键词匹配)调整顺序。快速轻量,但不够细致。
两种技术都有效,但你的选择取决于你能承受多少延迟。

3. 利用元数据

利用元数据意味着使用结构化标签,如日期、作者、域或文档类型,来过滤和提升正确的结果。
元数据过滤是一种低投入、高影响的技术,因为它不需要任何重计算。
以下是其主要子类型:
  • 日期过滤 移除过时数据,只关注近期文档。这在快速变化的领域(如金融)中很有用。然而,这种对新近性的关注有时可能会排除必要文档。
  • 作者/来源过滤 提升来自可信个人或来源的文档。幻觉的可能性很低,但你可能也会错过知名度较低但高度相关的内容。
  • 文档类型过滤 包括基于格式的过滤器(例如,指南vs博客vs政策文档)。虽然它有助于匹配用户意图,但如果元数据不一致,还存在过度过滤的风险。

4. 混合搜索

混合搜索结合基于关键词(稀疏)和基于向量(密集)的检索方法来提高结果质量。
这显著提高相关性,特别是在边缘情况或模糊查询中。
以下是混合搜索的两种主要方法:
  • 分数融合: 使用加权分数结合稀疏和密集方法的结果。平衡准确性。需要仔细调整以避免噪音结果。
  • 结果合并: 从两种方法检索顶部结果,然后合并和重排序。实现简单。存在重复或排序逻辑不一致的风险。

5. 查询重写

查询重写在检索前完善用户输入。它重新表述模糊或规格不足的查询,让系统能够更好地理解意图并返回更相关的结果。这在处理简短或打字错误较多的查询时特别有用。
大多数现代系统使用各种方法在后台升级查询。以下是几种类型:
  • 同义词扩展: 此技术自动添加等效术语以涵盖更多变化。虽然这可能提高召回率,但也可能引入一些不相关的匹配。
  • 拼写纠正: 任何打字错误或拼写错误都会自动修复。提升了休闲用户的成功率,但有可能会"纠正"小众或有效的行话。
  • 意图澄清: 此过程使用规则或机器学习将广泛查询转换为更清晰的查询。提高相关性但需要训练数据并增加复杂性。

6. 自动截断

自动截断根据令牌限制或模型约束动态修剪文本,而不切断语义含义。这是一种在不取代关键信息的情况下移除不太相关上下文的方法。
这很重要,因为许多LLM都有严格的令牌限制。如果你重载上下文窗口,模型可能会产生幻觉、跳过关键信息或表现不佳。
以下是自动截断的两种常见策略:
  • 评分修剪 有助于按重要性对内容进行排名,并删除得分最低的部分。虽然优先级划分很智能,但需要一个评分机制。
  • 基于规则的修剪 应用固定规则(例如,删除引言段落或脚注)。易于实现,但缺乏对细致内容的适应性。

7. 上下文提炼

每次解析大型文档对于高级RAG系统来说并不是最优的。上下文提炼有助于将大型文档压缩为高价值、有意义的摘要。
如你所知,LLM只需要正确的信息,而不是所有的信息。更多上下文不一定意味着更好的结果;它甚至可能稀释输出。上下文提炼帮助模型在生成时保持专注和准确。
两种方法:
  • 基于摘要的提炼 使用提取式或生成式摘要来保留要点。产生简洁的上下文,但可能遗漏细节。
  • 问题驱动的提炼 根据被询问的具体问题定制上下文。高度相关,但取决于准确的查询理解。

8. 微调LLM

微调LLM涉及在你的特定数据上重新训练预训练的语言模型,以更好地理解你想要的响应类型。
当仅靠提示无法充分引导模型时,这很有用,特别是在受监管行业或小众领域。
  • 监督微调: 用标记的问答、代码或指令重新训练。提供精度和控制,但需要策划的数据和资源。
  • 人类反馈强化学习: 人类对输出进行评级,模型学习偏爱首选响应。与价值观或品牌语调保持一致,但资源密集。

9. 微调嵌入模型

嵌入模型将文档转换为向量以进行检索。微调它们意味着重塑系统"理解"相似性的方式,如果现成的嵌入在你的领域表现不佳,这是必要的。
  • 对比学习: 训练嵌入以拉近语义相似的文本,推远不相似的文本。提高检索准确性,但需要标记的正负样本。
  • 域适应: 在你的语料库上继续训练以使嵌入与你的领域保持一致。更容易设置,特别是对于未标记数据,但存在过拟合风险。
微调LLM和嵌入模型让你完全控制检索和生成,为高性能、领域感知的RAG系统奠定基础。

什么是高级RAG技术?

高级RAG技术超越了RAG的基础。在分块、检索和内容排序方面,它们更详细和细致。然而,最终目标是相同的:生成更好、更相关的搜索结果。
无论你是在优化混合搜索、重写查询还是调整元数据,这些方法都建立在检索增强生成的核心原则之上,以扩展准确性和效率。

为什么需要高级RAG技术?

基础RAG设置的问题是它们经常在复杂查询方面表现不佳。当跨越不同数据集扩展或在高风险情况下保持相关性时,它们也不够用。
随着用户期望增长,LLM在生产级工作流程中变得更加核心,暴力检索已不再足够。我们需要智能系统来理解细微差别,并从可信来源中优先考虑最新数据。
高级技术帮助你从"检索并希望"转向"有意图地检索"。它们解决了幻觉、延迟和内容不匹配等关键痛点,同时释放了改进的精度和性能。

如何在RAG中实现高级技术?

你可以使用不同的工具、库和框架来实现高级RAG技术。
一些你可以用来实现高级检索增强生成技术的RAG工具如下:
  • Meilisearch
  • Weaviate
  • LangChain
  • Pinecone
让我们了解更多关于它们的信息:

1. Meilisearch

考虑到用户体验而开发,Meilisearch非常适合实现高级RAG管道。它支持可自定义的排序规则,并轻松处理大型文档集合。
你可以使用Meilisearch的混合搜索插件实现混合搜索(结合关键词和向量相关性)。这平衡了语义理解与传统精度。
在处理大型文档时,你可以通过将它们索引为结构化块来提升搜索质量
Meilisearch的性能和易集成使其成为构建智能RAG管道而不过度复杂化的首选解决方案。

2. Weaviate

Weaviate是为高性能语义搜索构建的向量原生搜索引擎。它直接与变换器和嵌入模型集成,使其非常适合RAG实现。

3. LangChain

LangChain是一个Python/JavaScript框架,将LLM、检索组件和工具链接在一起。它使RAG工作流模块化和可配置。
你可以插入重排序模型,编写自己的查询重写器,并在一个协调流程中管理分块管道。

4. Pinecone

Pinecone是为高规模相似性搜索构建的托管向量数据库。它对于需要闪电般快速、可扩展向量检索、重排序和时间过滤查询的项目很有用。
与Meilisearch或LangChain结合,Pinecone为你的RAG设置增加可扩展性和生产就绪性。

如何评估RAG系统中的高级技术?

要评估高级RAG技术,你需要测试每种技术如何影响检索质量。目标是实现高精度、上下文、低延迟和坚实的实际可用性。
要评估有效性,关注以下指标:
  • 检索准确性: 是否返回了最上下文相关的块?这影响下游的一切,包括幻觉率和答案质量。
  • 延迟: 重排序或混合搜索等技术是否会减慢你的系统?评估端到端响应时间。
  • 精确率vs召回率: 你是否返回太少(或太多)文档?你需要平衡覆盖范围与焦点的最佳点。
  • 用户满意度: 最终用户多久能得到他们确切需要的东西?考虑运行A/B测试或人工评估。
当你优化速度而不牺牲质量时,Meilisearch快速准确的混合引擎脱颖而出。

为什么更智能的RAG在实践中很重要

高级RAG技术最终是为了让检索更智能,而不仅仅是更快。它们帮助系统从暴力搜索转向跨域扩展的上下文感知检索。
通过分层混合搜索、重排序和上下文提炼等策略,团队可以设计RAG管道,在生产环境中提供更精确、可靠和高效的结果。