RAG 学习笔记(四)

2024-01-16  本文已影响0人  啊阿伟啊

基于博文 Advanced RAG Techniques: an Illustrated Overview 的学习和练习的记录。

中文内容可以查看博主@宝玉的译文 高级 RAG 技术:图解概览 [译]

系列笔记:
RAG 学习笔记(一)
RAG 学习笔记(二)
RAG 学习笔记(三)

搜索索引(第二部分)

丰富上下文

主要有两点:

  1. 检索较小的文本块来获得更好的搜索质量
  2. 增加文本块周围的上下文供 LLM 推理

有两种方式:

  1. 增加文本块周围的句子来扩展文本
  2. 通过递归的的方式,将文本分割为具有父子关系的大小块。

句子窗口检索

句子窗口检索
  1. 每个句子独立 embedding,可以提供很高的查询准确性。
  2. 获得到最相关的句子,并在句子前后扩展 K 个句子
  3. 将扩展后的内容做为上下文提供给 LLM。

自合并检索器(即父文档检索器)

父文档检索器
  1. 将文档分割成为具有父子关系的大小文本块,较小的子文本块引用较大的父文本块,只对子文本块进行 embedding
  2. 搜索较小子文本块,如果前 k 个检索结果中超过 n 个结果属于同一父文本块,就使用该父文本块作为上下文提供给 LLM。

深入了解资源:

融合检索/混合搜索

传统的基于关键字的搜索方法有:

  1. 稀疏检索方法 tf/idf
  2. 搜索行业标准方法 BM25

现代检索方法有:语义或者向量搜索方法

可以将传统和现代方法结合起来,将两种类方法的结果整合成一个检索结果。

融合检索/混合搜索

优点:融合/混合搜索结合了两类方法,同时考虑了语义相似度和关键词匹配,通常会有更好的检索结果

难点:将不同打分规则获得到的结果正确地整合排序

解决方法倒序排序融合(Reciprocal Rank Fusion)

实现

  1. LangChain: Ensemble Retriever
  2. LlamaIndex: Reciprocal Rerank Fusion Retriever

动手练习融合检索 LangChian 实现

上一篇 下一篇

猜你喜欢

热点阅读