什么让 RAG 系统真正成为顶级的呢?组件,对吧?让我们回顾一下最好的组件以及它们的工作原理,这样您也可以使您的 RAG 系统成为顶级系统,并以多模式奖励结束。
一、查询分类
二、分块
三、元数据和混合搜索
利用您的元数据!添加标题、关键字甚至假设问题等内容。将其与 Hybrid Search 配对,它结合了向量搜索(用于语义匹配)和用于传统关键字搜索的优秀 BM25,您就是金子。
HyDE(生成伪文档以增强检索)很酷,可以带来更好的结果,但效率非常低。现在,坚持使用 Hybrid Search——它取得了更好的平衡,尤其是在原型设计方面。
四、嵌入模型
选择正确的嵌入模型就像找到一双完美的鞋子。你不想要打网球的足球鞋。来自 FlagEmbedding 的 LLM 最适合这项研究——性能和大小的完美平衡。不太大,也不太小——恰到好处。
五、向量数据库
六、查询转换
在检索之前,您必须转换这些用户查询!无论是通过查询重写以使其清晰,还是通过查询分解将复杂问题分解为更小的问题并检索每个子问题,甚至生成伪文档(如 HyDE 所做的)并在检索过程中使用它们,此步骤对于提高准确性都至关重要。请记住,更多的转换可能会增加延迟,尤其是 HyDE…
七、重新排名
Reranking。检索文档后,您需要确保最相关的文档位于文档堆的顶部。这就是重新排名的用武之地。
八、文档重新打包
重新排名后,您需要进行一些 Document Repacking。Wang 等人推荐了 “反向” 方法,其中文档按相关性升序排列。Liu 等人(2024 年)发现,这种方法(将相关信息放在开头或结尾)可以提高性能。重新打包优化了信息呈现给 LLM 的方式,以便在重新排序过程发生后生成,以帮助 LLM 更好地以更好的顺序而不是理论上的相关顺序理解提供的信息。
九、微调
最后,您是否应该微调用于生成的 LLM?绝对!使用相关文档和随机文档的混合进行微调可以提高生成器处理不相关信息的能力。它使模型更加健壮,并有助于它给出更好的整体响应。论文中没有提供确切的比率,但结果很明确:微调是值得的!不过,这显然也取决于您的域。
十、多模态
处理图像?实施多模式检索。对于文本到图像,在数据库中查询相似图像可以加快该过程。在图像到文本中,匹配相似的图像可检索准确的预存储字幕。这一切都与接地气有关——检索真实的、经过验证的信息。