本文主要是介绍【RAG 博客】Small-to-Big Retrieval,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Blog:Advanced RAG 01: Small-to-Big Retrieval
⭐⭐⭐⭐
Code:https://colab.research.google.com/github/sophiamyang/demos/blob/main/advanced_rag_small_to_big.ipynb
Small-to-Big Retrieval 技术试图解决这样一个矛盾:更大的 chunk 可以包含更多有用的信息,但其包含的较多无用文本又会掩盖 semantic representation 从而导致检索效果的变差。
这篇 blog 提出的思路是:基于更小、更有针对性的 text chunk 进行 embedding 和 retrieval,但仍然使用较大的 text chunk 来为 LLM 提供更多的上下文信息。也就是在检索过程中使用较小的 text chunk,然后将检索到的文本的对应的更大的 text chunk 给 LLM。
其具体实现思路有两种:
- 较小的 child chunk 指向更大的一个 parent chunk:在检索时先获取到较小的 child chunk,然后返回较大的 parent chunk。
- Sentence Window Retrieval:在检索过程中仅获取一个句子,并返回这个句子周围的一段文本。
之后,blog 使用了 LlamaIndex 来实现了这两种方法,具体可以参考原 blog。
这篇关于【RAG 博客】Small-to-Big Retrieval的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!