LangChain学习:RAG检索策略

检索是RAG系统至关重要的一个部分。目前本人了解的优化方向有两个,一是提高召回率,二是增加多样性。
召回率是检索的基础,能准确的找到目标文档才能为后续的生成模型提升正确的指导。

提高召回率有几个非常直观的方法:

  1. 检索加排序的结构,先从大量文本中用bi_encoder检索出n个的相关文档,再利用cross_encoder/ColBert 对这n个模型进行排序,从中选择相关性前k个作为检索结果。
  2. 微调用于嵌入embedding模型
  3. 同时使用 基于词法的关键词检索 和 基于语义的向量检索

从增加多样性来看,有一个非常直观的方法:

  1. 先从候选集中选择与问题最相关的文本块,然后再依次选择与已有结果最不相似的。

可以从LangChain的Retriver中看到一些其他的策略,例如:

  1. 生成问题的变体: MultiQueryRetriever
  2. 集成多个嵌入模型: MultiVectorRetriever
  3. 检索时直接避免重复: Max marginal relevance
  4. 使用元数据对检索内容进行过滤: Self Query Retriever

综合应用这些方法,可以通过提高所检索到的Context的质量有效提升RAG系统的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值