深度探索:如何优化检索增强生成(RAG)流程中的检索器性能
时间:2023-11-04T09:41:11
深度探索:如何优化检索增强生成(RAG)流程中的检索器性能
在构建检索增强生成(RAG)流程时,检索器是一个关键组成部分。我们有各种嵌入模型可供选择,包括OpenAI、CohereAI和开源的句子转换器。此外,还有CohereAI和句子转换器提供的几种重新排列器。但面对这些选项,我们如何确定最佳组合以获得顶级的检索性能?我们如何知道哪种嵌入模型最适合我们的数据?又或者哪种重新排列器能最大程度地提升我们的结果?
检索评估的度量理解
要衡量我们的检索系统的效能,我们主要依赖两个广泛接受的度量:命中率和平均倒数排名(MRR)。
命中率:计算在前k个检索到的文档中找到正确答案的查询的比例。简单来说,就是我们的系统在前几个猜测中正确的频率。
平均倒数排名(MRR):对于每个查询,MRR通过查看最高位相关文档的排名来评估系统的准确性。具体来说,它是所有查询的这些排名的倒数的平均值。所以,如果第一个相关文档是最佳结果,那么倒数排名就是1;如果是第二,倒数排名就是1/2,以此类推。
结果
我们对各种嵌入模型和重新排列器进行了测试。下面是我们考虑的模型:
嵌入模型:
- OpenAI嵌入
- Voyage嵌入
- CohereAI嵌入(v2.0/ v3.0)
- Jina嵌入
- BAAI/bge-large-en
重新排列器:
- CohereAI
- bge-reranker-base
- bge-reranker-large
需要提到的是,这些结果为这个特定数据集和任务的性能提供了深入的洞察。然而,实际结果可能会因数据特性、数据集大小和其他变量(如chunk_size, similarity_top_k等)的不同而有所不同。
下表展示了基于命中率和平均倒数排名(MRR)的评估结果:
嵌入模型 | 重新排列器 | 命中率 | MRR |
---|---|---|---|
OpenAI | CohereAI | 0.926966 | 0.865262 |
OpenAI | bge-reranker-large | 0.910112 | 0.853993 |
BAAI/bge-large-en | CohereAI | 0.865169 | 0.805618 |
llm-embedder | CohereAI | 0.887640 | 0.825843 |
Cohere v3.0 | CohereAI | 0.876404 | 0.832584 |
Voyage | CohereAI | 0.915730 | 0.847940 |
JinaAI | bge-reranker-large | 0.601124 | 0.578652 |
分析
嵌入模型性能:
- OpenAI:表现出一流的性能,特别是与CohereAI和bge-reranker-large重新排列器配合使用时,表现出了强大的兼容性。
- BAAI/bge-large-en:在重新排列器的帮助下,性能有显著提升,最佳结果来自于CohereAI。
- llm-embedder:从重新排列器中获益良多,特别是CohereAI,为其提供了显著的性能提升。
- Cohere:Cohere的最新v3.0嵌入表现优于v2.0,并且在集成原生CohereAI重新排列器后,其度量得到了显著提升。
- Voyage:初始性能强大,通过CohereAI进一步提升,表现出对重新排列器的高响应性。
- JinaAI:虽然起点较低,但在bge-reranker-large的帮助下,性能有显著提升,表明重新排列器显著提升了其性能。
重新排列器的影响:
- WithoutReranker:为每个嵌入提供基线性能。
- bge-reranker-base:通常可以改善所有嵌入的命中率和MRR。
- bge-reranker-large:这个重新排列器经常为嵌入提供最高或接近最高的MRR。对于几个嵌入,其性能与CohereAI相当或超过。
- CohereAI:在所有嵌入中始终提升性能,经常提供最佳或接近最佳的结果。
重新排列器的必要性:
- 数据清楚地表明了重新排列器在精炼搜索结果中的重要性。几乎所有的嵌入都从重新排列中受益,显示出提高命中率和MRR的效果。
- 重新排列器,尤其是CohereAI,已经展示了他们将一种平均性能的嵌入转化为具有竞争力的嵌入的能力,如JinaAI所见。
- 在考虑命中率和MRR时,OpenAI + CohereAI和Voyage + bge-reranker-large的组合成为顶级竞争者。
- 然而,CohereAI/ bge-reranker-large重新排列器在各种嵌入中带来的持续改善,使他们成为提高搜索质量的首选,无论使用的是哪种嵌入。
结论
在本文中,我们展示了如何使用各种嵌入和重新排列器评估和提升检索器性能。以下是我们的最终结论。
- 嵌入:OpenAI和Voyage嵌入,特别是与CohereAI/bge-reranker-large重新排列器配对,为命中率和MRR设定了金标准。
- 重新排列器:重新排列器,特别是CohereAI/bge-reranker-large的影响力不可忽视。他们在提高许多嵌入的MRR中发挥了关键作用,显示出他们在改善搜索结果中的重要性。
- 基础是关键:选择正确的嵌入进行初始搜索是至关重要的;即使是最好的重新排列器也无法帮助太多,如果基本搜索结果不好的话。
- 共同工作:要从检索器中获得最大的效益,找到正确的嵌入和重新排列器的组合是非常重要的。这项研究显示了仔细测试并找到最佳配对的重要性。
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
