大模型RAG实战:RAG原理、应用与系统构建
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.2 数据召回

数据召回部分的主要任务是从大型文本数据库中检索与输入相关的信息。为了尽可能保证正确答案被送入生成器部分,数据召回部分的召回率显得非常重要。一般来说,召回的数量越大,正确答案被召回的概率也就越高,但同时会面临大模型上下文长度限制的问题。

许多开源博客或框架在这部分的流程中都采用向量搜索出最相近的k个候选。例如,如果我们正在构建一个问答系统,并使用向量数据库存储相关数据块,可以为用户的问题生成向量,对向量数据库中的向量进行相似性搜索并检索最相似的数据块。除此之外,还可以根据用户问题,对同一数据库进行混合搜索或使用多个数据库进行搜索,并将结果组合起来作为生成器的上下文进行传递。

关于检索这部分,还有许多提高检索效果的技巧,这会引入更多的小模块,例如候选重排、大模型辅助召回等,这些都属于数据检索的范畴。在后续章节中,我们会介绍许多数据检索方面的技巧,以便在考虑大模型上下文长度的同时尽可能提高正确答案的召回率。