RAG 讨论与研究(4)- RAG 关键步骤(中)

今天我们继续来认识 RAG 中的关键步骤:

• 用户意图理解

• 知识源与解析

• 知识嵌入

• 知识索引

• 知识检索

• 知识整合

• 回答生成

• 知识引用

3 知识嵌入(Knowledge Embedding)

知识通常存储在大量文本文档中,首先被分割为简洁且有意义的单元,每个单元封装一个核心思想。这些单元随后被转换为向量嵌入,编码语义信息,便于通过相似性度量进行高效检索。

3.1 分块划分

分块划分是一个基础过程,显著影响文档检索质量,从而影响整体性能。分块划分的主要目标是将大段文本分割为可管理的单元或“块”,从而实现更高效的检索和生成。通过将复杂文档分割为更小、连贯的单元,RAG可以实现对上下文保留的精细控制,并提升信息检索的准确性。分块划分的目标和挑战在于确保分割后的块保留有意义的上下文,同时避免冗余和信息丢失。传统的分块方法,如固定长度、基于规则或基于语义的划分,相对简单,但缺乏捕捉复杂文本中细微结构的灵活性。这些方法在处理格式多样或包含跨段落语义流的文档时往往表现不佳,导致由于上下文信息碎片化而检索效果不理想。

随着分块划分方法的演变,早期的固定长度方法逐渐被更自适应和智能的策略所取代。最近的优化策略旨在捕捉文本中细粒度的信息分布和语义结构。例如:

  • 命题级分块:将文本分割为单个事实的小单元,从而捕捉更丰富的信息。

  • LumberChunker:使用LLM检测段落之间的内容变化,从而创建上下文敏感的块。

  • 元分块方法:(如边际采样分块和困惑度分块)优化块边界,以更好地满足RAG需求,提升上下文捕捉和检索效果。

  • 延迟分块:一种创新方法,与传统做法不同,它在分块之前对整个文档进行嵌入,从而使模型保留完整的上下文,特别是在处理复杂或上下文密集的文本时,显著改善了检索结果。这些先进的分块策略使RAG能够更好地适应复杂的文档结构,捕捉细微信息,并提升检索准确性,为多样化的检索和生成任务提供了更强大的支持。

3.2 文本嵌入模型

在基于查询检索块时,该过程依赖于查询与块之间的向量相似性计算(如余弦相似性)。将块准确映射为向量表示对于有效捕捉语义意义并与相关查询对齐至关重要。

传统方法,如:

  • 词袋模型(Bag of Words, BoW):强调词频但忽略语法

  • N-gram:捕捉语言结构但面临维度挑战

  • TF-IDF模型:结合了词频和上下文,但仍受高维度问题的限制。

以上方法无法全面表示语义信息。相比之下,基于深度学习的现代词嵌入方法,如:Word2Vec、GloVe和fastText:通过利用上下文、共现模式或词根变化来编码单词。

然而,这些嵌入是静态的,无法适应不同的上下文。

Transformer架构 的引入,特别是BERT ,在捕捉上下文意义和增强语义表示方面取得了重大进展。BERT 及其衍生模型,如RoBERTa、ALBERT 和DPR,显著提升了文档检索能力。

BGE、NV-Embed和SFR-Embedding,在多语言和特定领域的基准测试中表现出色。

3.3 多模态嵌入模型

知识不仅以文本形式表示,还包括图像、音频和视频。因此,对多模态嵌入模型的需求日益增加,这些模型将来自不同模态的信息整合到一个统一的向量空间中。这些模型专门设计用于捕捉不同数据类型之间的关系和共享信息,从而实现更全面和统一的表示。

对于图像,模型处理JPG或PNG等图像格式,生成与文本相同的语义向量空间中的嵌入。

  • Normalizer-Free ResNets (NFNet) :提供了一个高效的框架来提取图像特征

  • **Vision Transformer (ViT)**:利用Transformer架构学习高质量表示。

  • 对比语言-图像预训练(CLIP):通过对比学习将视觉和文本模态对齐,生成了适用于零样本分类和跨模态检索的多功能嵌入。

对于音频,模型提取音高、音色、节奏和语义等关键特征,从而实现对音频的有效和有意义分析,以支持检索任务。

  • Wav2Vec 2.0:一种自监督学习模型,直接从原始波形中学习音频表示,生成适用于多种音频任务的高层次嵌入。

  • 对比语言-音频预训练(CLAP):一种最先进的模型,通过从成对的音频和文本数据中学习生成音频嵌入,为音频与自然语言的整合提供了统一框架。

对于视频,模型旨在将视频数据表示为紧凑且特征丰富的向量,捕捉空间、时间和语义信息。

  • **Video Vision Transformer (ViViT)**:基于ViT,能够有效处理视频理解任务,捕捉空间和时间特征。

  • VideoPrism:因其在广泛视频理解基准测试中的最先进表现而备受关注。它特别擅长在不同视频领域中泛化,而无需特定任务的微调。

4 知识索引(Knowledge Indexing)

在RAG中,索引被定义为数据的结构化组织,能够从大规模数据集中高效访问和检索信息。索引将用户查询映射到相关的文档块、知识片段或其他信息内容,充当存储数据与检索机制之间的桥梁。索引的有效性对RAG系统至关重要,因为它直接影响响应准确性、检索速度和计算效率。

4.1 索引结构

结构化索引:结构化索引基于预定义的固定属性组织数据,通常采用表格或关系格式。在早期的知识检索工作中,如REALM系统,文本倒排索引被广泛用作基础技术,而Table RAG则使用特定于表格的索引结构,结合列索引和行索引,以高效检索相关表格条目用于语言生成任务[30]。

非结构化索引:非结构化索引则设计用于自由格式或半结构化数据,在现代RAG系统中更为常见。向量索引利用先前嵌入阶段生成的向量来提高检索效率,如naive RAG、ANCE和G-retriever,后者使用语言模型将图的文本属性转换为向量。

图索引:图索引是一种非结构化索引,利用图结构的固有优势来表示和检索互连数据。在图索引中,数据点被表示为节点,而它们之间的关系通过边表示。这种索引范式特别擅长捕捉语义关系和上下文信息,从而支持复杂的查询和推理任务。

下期预告

在下篇,我们将继续介绍 RAG 中其他的关键步骤:

• 知识检索

• 知识整合

这技术看着就头大

技术更新太快有点跟不上了