Skip to content

Latest commit

 

History

History
50 lines (31 loc) · 3.85 KB

File metadata and controls

50 lines (31 loc) · 3.85 KB

核心概念

为了更好地使用和配置 PyRAG-Kit,理解其背后的一些核心技术概念至关重要。本节将深入解析项目中的关键机制。

RAG - 检索增强生成

RAG (Retrieval-Augmented Generation) 是本项目所基于的核心技术范式。它旨在解决大语言模型 (LLM) 的两个主要问题:

  1. 知识局限性: LLM 的知识截止于其训练数据,无法获知最新的或私有的信息。
  2. “幻觉”问题: 在信息不足时,LLM 可能会编造不准确的答案。

RAG 通过一个两步过程来应对这些挑战:

  1. 检索 (Retrieval): 当用户提出问题时,系统首先不是直接将问题发送给 LLM,而是在一个外部知识库(例如,本项目中的 knowledge_base 目录)中进行搜索,找出与问题最相关的文本片段。
  2. 增强生成 (Augmented Generation): 系统将用户原始问题和从知识库中检索到的相关文本片段一起打包,作为一个内容更丰富的“增强提示词” (Augmented Prompt) 发送给 LLM。LLM 基于这些给定的上下文来生成答案,从而使其回答更准确、更具事实依据。

PyRAG-Kit 就是这个 RAG 流程的一个完整实现。

检索策略

PyRAG-Kit 提供了三种不同的检索策略,您可以在 /config 菜单中动态切换。

1. 向量检索 (Semantic Search)

  • 原理: 将用户问题和知识库中的所有文档片段都通过一个“向量化模型” (Embedding Model) 转换成高维数学向量。检索时,计算问题向量与所有文档向量之间的“余弦相似度”,相似度越高的文档被认为在语义上越相关。
  • 优点: 能够理解词语和句子的深层含义,即便是同义词或不同表述也能准确匹配。例如,能理解“公司年假”和“年度休假天数”是相关的。
  • 缺点: 对于专有名词、特定ID或关键词的匹配可能不如全文检索精确。

2. 全文检索 (Full-Text Search)

  • 原理: 基于传统的关键词匹配算法(本项目中使用 BM25)。它会分析用户问题中的关键词,并在知识库中查找包含这些关键词的文档。
  • 优点: 对于关键词、产品型号、人名等专有名词的匹配非常精确、快速。
  • 缺点: 无法理解语义。如果用户的提问方式与文档中的表述不完全一致(例如,使用同义词),就可能找不到结果。

3. 混合检索 (Hybrid Search)

  • 原理: 结合了向量检索和全文检索的优点。它会同时执行这两种搜索,然后通过一个加权算法将两边的结果进行合并和重新排序。
  • 优点: 既能保证对关键词的精确匹配,又能通过语义理解发现更广泛的相关内容,是目前效果最好、最推荐的检索方式。
  • 配置: 在 /config 菜单中,您可以调整“混合搜索权重”,来决定更侧重于向量检索的结果还是全文检索的结果。

Rerank - 精排模型

在通过上述任何一种方法检索到一批初步的候选文档后(例如,Top K=10),为了进一步提升最终答案的质量,PyRAG-Kit 引入了 Rerank(重排)机制。

  • 工作流程:

    1. 将用户问题和初步检索到的所有文档片段一起发送给一个专门的“Rerank 模型”。
    2. 这个模型会逐一评估每个文档片段与用户问题的“真正”相关性,并给出一个精确的相关度分数。
    3. 最后,根据这个新的分数对文档进行重新排序,将最相关的文档排在最前面。
  • 作用: Rerank 模型相当于一个“精选”过程。它弥补了初步检索(特别是向量检索)可能存在的偏差,能够更精准地识别出哪些信息是回答问题的关键,从而将它们优先提供给 LLM。启用 Rerank 通常会显著提高答案的准确性,但也会增加一点点处理延迟。