RAG笔记——架构及检索方式

张开发
2026/4/17 9:50:26 15 分钟阅读

分享文章

RAG笔记——架构及检索方式
Blueprint概念检索收集有用信息的过程生成基于检索到的信息进行推理并回答的过程检索器RAG系统中负责检索过程的组件检索器管理一个知识库存储可信、相关且可能私有的信息RAG系统接收到提示词时检索器会检索知识库中最相关的信息核心思想可以在发送给大语言模型之前修改提示词除了用户的原始问题还可以添加有助于大语言模型回答的信息先从知识库检索相关信息再增强大语言模型的文本生成能力整体架构在RAG外流程整体为Prompt-》LLM-》Get LLM Response在RAG内部对于用户体验来说会比平时有更多的延迟优势让大语言模型能够获取原本无法获得的信息RAG通常是唯一途径让大语言模型获得其他信息RAG能够降低幻觉现象或误导性回复的可能性大语言模型回答某些主题时这些主题在训练数据中被排除或很少涉及在提示词中直接添加相关信息能让语言模型的回复更有依据减少产生空泛或误导性内容的可能大语言模型本质预测文本中的下一个词最初空白处缺失的文本为提示词Prompt完成后的短语叫补全文本Completions逐个添加直至补全文本所以严格来说大语言模型生成的不是单词而是标记Token流程首先理解文本意图然后遍历词汇表中的每个标记计算每个标记作为下一个词出现的概率自回归、自我影响由于随机性和自回归特性用同一提示词多次运行同一模型通常会得到不同的结果幻觉用户问的内容在训练的数据集之外模型回答了听起来对但实际错误的答案本来就是设计来生成看似合理的文本而不是真实的文本对于大模型来说truth只是训练数据中的词序列概率最高挑战在于大语言模型能够获取尽可能多的相关信息不断地添加标记词标记词越多消耗的计算资源就越多同时会受到大模型上下文窗口的限制检索器为大语言模型提供有用信息检索器 框架概述作用是筛选出最匹配提示内容的文档然后将这些文档传送给语言模型主要有两种检索技术传统 关键词搜索 能精准匹配语义检索 找到含义相近的文档混合搜索搜索方式不同可能会导致排序顺序不同根据文档属性进行筛选检索器返回的是两种检索列表合并后最终排序结果中排名靠前的文档系统会将上述检索检索出的文档添加到增强提示中元数据Metadata概述检索语法类似SQL查询单条件查询SELECT * FROM articles WHERE publication_data 2023-10-01组合、多条件查询检索section Opinion author Michael Chen date June to July 2024元数据metadata在常见的检索器中不是用来做筛选条件的而是用来缩小其他检索方法的结果范围这些过滤条件通常不是用户手动设置的而且取决于用户本身的属性是唯一让系统能够按照严格标准筛选文档的方法限制本质上是用来筛选结果的工具需要和其他搜索方法搭配使用特别是要找到方法判断文档内容是不是真的跟要查的东西有关过于死板不考虑文档内容也无法对筛选后的文档进行排序尽管RAG检索会用到元数据检索但是对于检索器来说单纯依靠元数据过滤基本没什么用关键词搜索算法TF - IDF现在大多数检索系统都采用最佳匹配算法BM25实际最常用的BM - 25 和 TF - IDF的区别当关键词重复出现时关键词的权重会逐渐降低关键词重复出现降低权重的方法叫做词频饱和TF - IDF 系统会适当降低长文档的权重会导致长文档的重要性被过度降低BM - 25 采用的是递减权重机制会根据文档长度逐步降低调整幅度使得长文档仍能获得高分前提是关键词出现频率足够高—— 文档长度归一化BM - 25 引入了两个可调超参数可以通过这些参数调整词频饱和度和 **文档长度归一化计算资源消耗差不多的情况下BM - 25 在查找相关文档方面的表现远超 TF - IDF 算法而且灵活性更高优势核心思想通过提示词与文档进行匹配基于关键词在文档中的出现频率在这个过程中系统会将提示词和文档转换成稀疏向量来统计每个词在词表中的出现频率稀疏向量是一个数学和计算机科学中的概念主要指向量中绝大多数元素的值为零仅有极少数元素为非零值BM - 25 和 TF - IDF 采用完全不同的方式来处理这些稀疏向量语义搜索概念能将文档与查询内容根据语义关联进行匹配并且能够识别出关键词搜索无法捕捉的语义差异正样本对两端语义相似的文本对比训练模型利用正样本和负样本对之间的对比来评估自身性能工作原理概述让相似文本在空间中更接近不相似文本相距更远宏观上与关键词搜索类似每个文档和查询内容都会被转换成一个向量然后系统会比较查询向量和文档向量来计算相似度分数并找出与查询内容最相关的文档与关键词检索最主要的区别在于为文档和查询生成向量的方式不同关键词 只统计每个词在文本中出现的频率语义通过将文档或查询输入到特定的数学模型嵌入模型Embedding Model 是一种将数据如文本、图像、音频等转换成为数值向量的机器学习模型中来生成向量嵌入模型将词语映射到空间位置该位置由向量表示嵌入模型会将语义相似的词映射到空间中相互接近的位置相似的含义对应相似的位置嵌入模型可以处理多种类型的输入数据两种计算关联度的方式余弦和点积数值越高意味着向量距离越近也意味着他们代表的概念越相似Training Process根据训练结果模型会相应地更新内部参数。算法会尝试拉进正样本对之间的距离同时推远负样本对参数更新之后上述过程会不断重复文本会通过更新后的参数重新嵌入成新的向量表示系统会再次利用正负样本对来评估模型性能然后根据评估结果再次更新模型参数小结语义向量本质上是抽象的并且有一定的随机性训练前空间中的各个位置没有任何语义向量只是随机分布的训练完成后空间中的不同位置具有了语义但这仅仅是因为那里形成了相似概念的聚类值比较同一嵌入模型生成的向量每个模型都是用不同的训练数据采用不同的维度以及不同的随机初始化值比较两个不同模型生成的向量只会得到无意义结果混合检索策略几种检索方式运作方式及关键优势元数据提供了严格的是 / 否筛选的功能关键词根据提示中出现的相同关键词对文档进行评分和排序很快易于实现能出色的找到相关文档但关键词搜索依赖精确匹配无法检索含义相似但用词不同的文档语义搜索对文档进行评分和排序基于提示的相似含义文档和提示被嵌入成向量其空间位置能捕捉它们的含义比关键词搜素慢计算上也更复杂但是最灵活混合检索流程逆秩序融合Reciprocal Rank Fusion概念奖励在任一列表中排名靠前的文档同时支持人为控制是否给予更多权重给关键词排名或语义排名RRF 只关注每个列表中文档的排名而非排名对应的分数beta 超参数对语义搜索或者关键词搜索产生的排名进行加权k是一个超参数每个文档的得分 1 / 排名检索质量评估检索器质量指标大多数检索器的几个共同元素prompt检索器返回的文档排序列表包含所有相关文档的标准答案列表精确率检索到的相关文档数反映了检索器返回无关文档的情况——衡量结果的可信度召回率检索到的相关文档数的计算结果反应检索器是否遗漏了相关文档 —— 用来衡量检索器的覆盖程度要同时达到100%召回率和精确率的唯一方法就是把相关文档都排在前面并且只返回这些文档否则通常需要在两者之间做权衡MAPMean Average Precision)排名重视相关文档的高排名无关文档出现在高排名会降低精确率MAP值越高效果越好倒数排名Reciprocal rank倒数求和取平均小结召回率K 召回率 是最基础且最常用的检索器指标前面并且只返回这些文档否则通常需要在两者之间做权衡MAPMean Average Precision)排名重视相关文档的高排名无关文档出现在高排名会降低精确率MAP值越高效果越好倒数排名Reciprocal rank倒数求和取平均小结召回率K 召回率 是最基础且最常用的检索器指标反映了检索器最基本的目标

更多文章