(17-1)检索增强生成(RAG):RAG介绍
检索增强生成(Retrieval Augmented Generation,简称RAG)是一种整合了信息检索和文本生成技术
5.1 RAG介绍
RAG技术用于收集并整合那些不属于训练数据集的特定用户信息,在这一过程中,首先从外部数据源获取所需的数据,并将其传输至生成阶段用于LLM的处理。LangChain则为RAG应用提供了一系列基础到高级的一系列构建工具,在此过程中可循序渐进地完成相关功能设置。
1. 文档加载器
用于从多个来源加载文件资料。LangChain支持了100种不同的文件加载器,并与AirByte、Unstructured等主要 provider集成在一起,在处理不同文件格式时表现出色——包括HTML文件、PDF文件以及代码文本等类型的内容;此外该系统还具备灵活获取资源的能力——无论是通过私有S3存储桶还是公开的网络资源都可以方便地导入所需的文件信息
2. 文本分割
检索过程中的一个核心环节是专门提取文档的相关内容。在检索过程中,为了提高效率和准确性,通常会采用多种转换手段来处理相关数据。其中一个重要操作是对大型文档进行分解处理。LangChain为此提供了一系列灵活的转换算法,并根据不同的文档类型(如代码、Markdown等)进行了针对性的设计与优化。
3. 文本嵌入模型
搜索的另一重要环节是为文档生成嵌入向量。这些向量有助于提取文本的核心信息,并帮助你快速、准确地检索到相关的内容片段。LangChain则提供了超过25种不同的解决方案,涵盖开源工具和付费服务,并支持用户选择最适合自身需求的技术方案,并通过统一接口无缝切换。
4. 向量存储
随着嵌入技术的进步, 提出了对数据库的要求, 旨在高效存储和检索这些预训练的向量数据. LangChain整合了超过五十种不同类型的向量存储方案, 涵盖自开源本地方案到云端部署的专业定制方案, 您可以选择最契合您需求的选择方案. LangChain提供了一款统一的标准接口, 方便在同一环境下切换不同的向量存储服务.
5. 检索器
一旦数据被存入数据库中,则需执行检索操作。LangChain系统在支持多种检索算法的同时,在此领域取得了显著的进步。该系统普遍采用多种常见检索技术作为基础,并进一步增添若干高效先进的检索算法来优化性能表现。
例如基于语义的搜索技术。
此外还包括:
- 语义理解与上下文推理
- 多模态匹配与信息融合
- 基于知识图谱的知识驱动搜索
- 后台计算能力的持续提升
- 父文档嵌入系统可允许多个嵌入在每个父文档中生成,并支持快速检索较小文本块的同时提供较大的上下文窗口。
- 自查询系统可帮助用户高效管理与特定领域相关的复杂知识图谱中的信息。
- 集成式知识图谱构建系统能够整合来自不同来源的数据,并支持灵活选择合适的算法来优化知识获取效率。
6. 索引
借助LangChain的索引API工具,能够实现从任意来源同步数据至向量存储.这一做法的好处在于:提高了数据处理效率,增强了系统的容错能力以及确保了数据的一致性.
- 应尽量避免将重复的内容纳入到向量存储中。
- 无需对已无改动的内容进行重新编码。
- 应尽量避免对已无变化的数据重新计算其嵌入码。
这样可以节省开发时间和成本,而且还能够提升搜索结果的质量。
