RAG多路召回率的提高

目前RAG还在快速发展,本帖总结了目前流行的五种思路。进一步讨论请留言
——————-
RAGFlow的做法:加权求和,缺点较为明显(当其中一种检索方式给出的完全不准确时,会影响到整体的结果)
DIFY的做法:同时执行全文检索和向量检索,并应用重排序步骤,从两类查询结果中选择匹配用户问题的最佳结果,需配置 Rerank 模型 API。
Elasticsearch的做法:基于向量检索和全文检索进行多路召回,然后用线性加权总和基于结果倒数的融合排序(RRF)两种方式。
百度智能千帆:在检索问答时通过知识点来索引到对应的切片,大模型根据切片内容生成答案,开启知识增强会调用大模型抽取更加丰富的知识点,增加切片的召回率。
Kimi的做法:增强模型输入的上下文大小,以减少对文档切片的次数。这样会降低匹配中目标切片的难度。

#RAG #检索增强 #搜索引擎 #算法工程师 #计算机专业

### 提升RAG模型召回率的方法 #### 优化检索模块 为了提升RAG模型的召回率,增强检索模块的效果至关重要。通过引入更先进的索引结构和技术可以显著改善这一方面。例如,在构建倒排索引时采用更加精细的数据预处理方法,如词干提取、同义词扩展等措施来增加匹配机会[^1]。 #### 改善编码器质量 高质量的文档和查询向量表示对于提高召回率同样重要。可以通过调整Transformer架构中的超参数设置或是利用对比学习等方式训练得到更好的文本表征能力;另外也可以尝试多模态输入方式,即不仅仅依赖纯文字信息作为源材料而是加入图像等内容形式辅助建模过程从而获得更为丰富的特征表达[^2]。 #### 调整相似度计算函数 不同的距离度量标准会对最终结果产生影响。实验表明余弦相似性和内积操作在某些情况下可能不如其他类型的核函数有效。因此有必要针对具体应用场景测试多种方案并选取最优者用于实际部署环境中去[^3]。 ```python import numpy as np from sklearn.metrics.pairwise import cosine_similarity, rbf_kernel def calculate_similarities(query_vector, document_vectors): # 使用不同类型的核函数计算相似度得分 cos_scores = cosine_similarity([query_vector], document_vectors)[0] kernel_scores = rbf_kernel([query_vector], document_vectors)[0] return { "cosine": list(cos_scores), "rbf_kernel": list(kernel_scores) } ``` #### 增加负样本采样多样性 适当扩大候选集规模有助于发现更多潜在的相关项。这不仅限于简单地增加数量级上的扩充,更重要的是要保证新增部分具有足够的异质性以覆盖尽可能广泛的主题范围。一种常见做法是在原始语料库基础上随机抽取一定比例未见过的新实例补充进来参与后续评估环节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值