以下是整合后的 RAG 技术全面指南,包含15种高级技术,并分为四个主要阶段,外加一个潜在改进部分:
00 - 预检索和数据索引技术
在这个阶段,重点在于优化数据在进入RAG系统前的质量和可检索性。
- 使用 LLM 增加信息密度:通过处理、清洗和标记数据,提高数据的密度,减少低信息量和噪声,进而降低响应成本和提高准确性。
- 应用分层索引检索:创建文档摘要,并使用这些摘要进行第一层过滤,以提高检索效率。
- 使用假设问题索引改善检索对称性:生成假设的问答对,以减少查询与文档之间的非对称性,从而提升检索准确性。
- 使用 LLM 删除数据索引中的重复信息:通过聚类和合并重复信息,精简数据索引,提升RAG系统的响应质量。
- 测试和优化分块策略:通过A/B测试,找到适合特定用例的最佳分块策略,以确保在嵌入模型中能更有效地检索和处理信息。
01 - 检索技术
此阶段的目标是在推理时优化检索查询和检索结果,以最大化搜索性能。
- 使用 LLM 优化搜索查询:通过调整和优化用户查询,使其更加适合特定的搜索系统,提高搜索结果的相关性。
- 使用假设文档嵌入 (HyDE) 解决查询-文档不对称问题:生成假设文档,并在检索时使用这些文档嵌入来替代用户查询,以提高语义相似度。
- 实现查询路由或 RAG 决策模式:使用LLMs在多数据源环境中进行查询路由,或者通过RAG决策模式判断何时需要进行检索。
02 - 检索后技术
在检索到数据后但生成最终响应前,进行优化以提升输出质量。
- 使用 reranking 优先处理搜索结果:通过重新排序,将最相关的文档置于靠近查询的位置,提高响应的准确性。
- 使用上下文提示压缩优化搜索结果:压缩生成提示中的不必要信息,从而减少生成噪声并提高性能。
- 使用校正 RAG 对检索到的文档进行评分和过滤:使用轻量级模型对检索结果进行评分和过滤,确保只使用最相关的信息生成最终响应。
03 - 生成技术
优化生成最终用户响应的过程,以确保生成的内容准确且相关。
- 使用思维链提示调整噪音:通过逻辑推理提示减少生成过程中的噪音,确保模型能够专注于相关信息。
- 使用 Self-RAG 使系统具有自反性:通过自我反思机制,模型可以在生成过程中自我评估并选择最佳的输出。
- 通过微调忽略不相关上下文:针对RAG场景进行模型微调,增强模型忽略不相关信息的能力。
- 使用自然语言推理使 LLM 对不相关上下文具有鲁棒性:利用自然语言推理模型过滤掉不相关的上下文,确保生成结果的高准确性。
04 - 其他潜在改进
在RAG技术的进一步优化中,可以探索以下潜在的改进方向:
- 微调嵌入模型:通过调整嵌入模型参数,提高系统在特定场景下的性能。
- 使用 GraphRAG:将知识图谱引入RAG系统,以增强系统对复杂信息的处理能力。
- 使用长上下文 LLM:使用如 Gemini 1.5 或 GPT-4 128k 这种支持长上下文的LLM,替代传统的分块和检索方法,从而提升RAG系统的效率和精度。
这份整合后的指南为研发和优化RAG系统提供了全面的技术支持,从预检索、数据索引到最终的响应生成,每个阶段都有详细的技术说明和可行的优化策略。
技术报告下载
https://pan.quark.cn/s/411797e6ca06
参考
https://x.com/shao__meng/status/1824443948208890353