微信扫码
与创始人交个朋友
我要投稿
今天给大家分享一个比较干的研究论文,作者们来自复旦大学。大模型时代的RAG已经经过一年多的锤炼,各种高级RAG技巧层出不穷,那到底什么技巧是有用的,哪些技巧搭配到一起才是最有效的呢?
Searching for Best Practices in Retrieval-Augmented Generation
检索增强生成(RAG)技术已被证明可以有效地整合最新信息、减轻幻觉和提高响应质量,特别是在专业领域。尽管已经提出了许多 RAG 方法来通过依赖于查询的检索来增强大型语言模型,但这些方法仍然存在复杂的实现和较长的响应时间。通常,RAG 工作流程涉及多个处理步骤,每个处理步骤都可以通过多种方式执行。在这里,我们研究现有的 RAG 方法及其潜在组合,以确定最佳的 RAG 实践。 通过大量实验,我们提出了几种平衡性能和效率的 RAG 部署策略。此外,我们证明多模态检索技术可以显着增强有关视觉输入的问答能力,并使用“检索即生成”策略加速多模态内容的生成。资源可在https://github.com/FudanDNN-NLP/RAG获取。
他们的研究涵盖了RAG的整个工作流程,从用户查询分类到文档召回重排,再到摘要生成,每个环节都尝试了不同的方法。需要对比组合的技巧一张图如下:
一个真实场景的问答系统,并非所有的用户query都需要外部知识才能解决。所以首先要面临的是用户query归类问题,如翻译,改写,推理这些信息充足的,本身是不需要召回外部知识的。 下图是一个问题类别样例,黄色是不需要RAG的,橙色是需要RAG的。
作者们做了一个二分类的分类器(是否需要召回),结果如下图,指标看起来挺乐观的。
确定需要召回之后,下一步那需要验证的是文档分块策略。评测3个维度,块大小,分块策略,向量模型选择
块大小的评测如下,向量模型使用openai ada 002, 生成模型使用 gpt 3.5 turbo,块大小在128->512收益递增,更大的块1024,2048出现了更差的结果。
分块策略,small2big是指128的块用于匹配,扩展到512的块用于生成。sliding window重叠20个token。结果如下,sliding window相对更优。
向量模型选择,参考意义不大,这里是英文。结果如下图
向量数据库选取,作者们站台milvus,支持多种索引,10亿级向量,混合搜索。
文档建立索引之后,下一个大模块是怎么召回?
query测,query改写,query分解子问题,伪文档生成(hyde)。测试结果如下,如果不考虑延时,hyde+混合搜索效果是最好的。考虑演示,混合搜索是性价比最高的。
选择hyde之后,那就要考虑构造多少个伪文档,实测发现,伪文档数量越多,是有增益的,但代价是增加延迟。所以需要在效果,效率间权衡。
稠密向量的语义搜索和稀疏向量的文本级检索,二者相关性融合的权重alpha如何定?评测发现大概在alpha=0.3,也就是稠密向量占比更大的时候,效果最优。
召回的最后一步,重排序对比。DLM (交互式二分类模型),TILDE (基于语言模型的概率来验证),基于交互式的有明显优势。
召回文档在prompt中的顺序,3种,按相关性大小降序排列(forward),升序排列(reverse),头尾颠倒着放(slides)。测试reverse竟然是最好的,是不是跟认知有差异?
召回文档的摘要,大类分抽取式,生成式,Recomp效果最好,一般应该用的比较少~
最后是生成模型的微调。下面是不同的构造数据方式,大概的结论是 - 在训练期间使用一些相关且随机选择的文档进行增强的做法是最优秀的。
最后一张大表,看清最佳实践指南。前置分类器对延时的帮助是很明显的;hybird+reranking是必备的手段,其他的如顺序,摘要等,属于锦上添花,加上有一些正向的提升。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-23
FastRAG半结构化RAG实现思路及OpenAI O1-long COT蒸馏路线思考
2024-11-23
检索增强生成(RAG):解密AI如何融合记忆与搜索
2024-11-23
如何提高RAG系统准确率?12大常见痛点及巧妙解!
2024-11-23
RAG 2.0性能提升:优化索引与召回机制的策略与实践
2024-11-22
RAG技术在实际应用中的挑战与解决方案
2024-11-22
从普通RAG到RAPTOR,10个最新的RAG框架
2024-11-22
如何使用 RAG 提高 LLM 成绩
2024-11-21
提升RAG性能的全攻略:优化检索增强生成系统的策略大揭秘 | 深度好文
2024-07-18
2024-05-05
2024-07-09
2024-05-19
2024-07-09
2024-06-20
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21
2024-10-21