微信扫码
添加专属顾问
我要投稿
检索增强生成(RAG)系统在处理复杂推理任务方面展现出显著的潜力。然而,现有的RAG系统在面对需要复杂推理、多领域知识集成及数值计算的任务时,仍存在性能瓶颈。为了进一步提升系统的表现,本文提出了一种混合RAG系统,通过整合多种优化方法,显著增强了系统的推理能力和处理复杂任务的能力。本文介绍的RAG系统设计并实现了一个包括网页处理、属性预测、数值计算、LLM知识提取、知识图谱及推理模块在内的综合架构。该系统能够有效地从多种来源提取信息,并通过高级推理模块结合这些信息,生成高质量的答案。
混合RAG系统包括六个关键模块:网页处理、属性预测器、数值计算器、LLM知识提取器、知识图谱模块和推理模块。
网页处理:使用trafilatura和BeautifulSoup库从网页中提取文本和表格,然后使用Blingfire库将文本分割成句子,并根据关键词将句子组织成文本块。
属性预测器:通过LLMs和SVM分类器评估问题的领域、类型和时效性,以优化模型在不同问题类型上的性能。
数值计算器:利用外部Python解释器进行数值计算,通过LLMs生成数学表达式,并使用eval函数处理这些表达式。
LLM知识提取器:利用LLMs内部的知识进行推理,减少对外部参考文档的依赖。
知识图谱模块:通过模拟API查询知识图谱,使用LLMs生成查询语句。
推理模块:结合文本块、表格、知识图谱三元组和LLM知识进行最终答案的推理,通过设计良好的提示模板和控制推理路径来实现。
文本块处理:
表格处理:
文本嵌入和rank指标:
In-Context Learning(ICL):利用大型语言模型(LLMs)的自然语言理解和多任务泛化能力。通过向模型提供分类指令和5个类别的示例,指导其对后续问题进行分类。采用自我一致性策略,多次采样模型的输出,选择出现频率最高的类别作为问题的分类结果。
支持向量机(SVM):使用CRAG公开数据集训练一个SVM分类器。利用MiniLM-L6-v2模型获取句子嵌入,用于训练SVM。SVM模型在预测属性方面表现出较高的准确性,并且计算开销较小。
生成数学表达式:鼓励大型语言模型(LLMs)将推理过程表述为数学表达式。将可能包含数值信息的检索到的文本块和表格整合到模型的提示中。使用提示技术促使模型直接生成有效的Python表达式。
计算表达式:使用多次采样生成Python表达式,并通过eval函数处理这些表达式以得到计算结果。
知识提取器的过程类似于常规的模型生成过程。使用zero-shot提示,这些提示要求模型评估给定查询是否涉及错误前提,并生成更简洁的响应。在提示中不包含来自外部知识库的参考文档,并且不包括多次采样,以减少计算开销。
LLM能够仅基于训练过程中内部化的知识进行响应。这种方法在处理被分类为慢变和稳定的问题时表现良好。
直接让模型回答问题可能会引入幻觉,尽管使用了零样本CoT推理。为了平衡幻觉和LLM内部知识,系统将LLM知识提取器的输出仅作为参考之一。设计了特定的提示,确保模型既不过度依赖文档参考,也不过分信任LLM的知识。
提示模板旨在让LLM基于所有参考信息进行推理并得出最终答案。通过输出格式示范和零样本CoT控制推理过程,这对于多跳问题特别有用。利用Llama3-70B-Instruct的强指令遵循能力,成功地在控制推理任务方面取得了稳步进展。
设计了多条规则来约束推理路径和输出格式,确保输出精确。通过在提示中提出中间问题来引导模型推理。
使用 函数调用方法:系统从查询中提取实体,并使用LLM生成函数调用来检索相关信息。函数调用的质量取决于LLM生成的查询语句的质量。
输入信息整合:推理模块接收来自网页处理、数值计算器、LLM知识提取器和知识图谱模块的所有参考信息,包括文本块、表格、知识图谱三元组和LLM生成的知识。
提示模板设计:设计了一个详细的提示模板,用于指导大型语言模型(LLM)进行推理。提示模板包括系统提示和用户提示。系统提示明确了任务要求、规则和输出格式。用户提示包含了具体的查询和参考信息。
推理路径控制:通过输出格式示范和零样本CoT技术,控制推理路径,特别是对于多跳问题。设计了多条规则来约束推理路径和输出格式,确保输出精确。
中间问题引导:在提示中提出中间问题,引导模型进行逐步推理,从而提高推理的准确性和详细程度。
处理不确定性和错误:如果参考信息不包含回答问题所需的信息,或者模型无法基于当前知识直接回答问题,模型将回答“我不知道”。如果问题的前提是错误的,模型将回答“无效问题”。
最终答案生成:模型生成的推理过程和最终答案必须遵循严格的格式要求,确保答案简洁且详细解释推理过程。
无效问题:通过分析提供的参考信息,识别出具有错误前提的问题,即查询与事实相矛盾的问题。在推理提示中添加特殊规则,使模型在这种情况下输出“无效问题”。
减少幻觉:使用属性预测器和推理模块来减少幻觉。对于时间变化的问题,模型会回答“我不知道”,因为这些问题难以处理。在推理模块中添加规则和提示工程技术,使模型在不确定时回答“我不知道”。
格式错误:由于未对推理输出进行约束采样,模型可能会生成无法解析的答案。设计了一个备份总结代理,当解析失败时,基于推理模块的输出生成简洁准确的总结。设计了一个备份总结代理,当解析失败时,基于推理模块的输出生成简洁准确的总结。
数值计算器和推理模块对系统性能的提升贡献显著。
本文介绍了一种混合检索增强生成(RAG)系统,通过一系列综合优化显著提高了检索质量、增强了推理能力并提升了数值计算能力,通过多个模块的协同工作显著提升了LLMs在复杂推理任务中的表现。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-03-10
milvus lite快速实践-了解RAG落地背后的机制
2025-03-09
为什么RAG系统要拥抱向量检索?揭示关键字检索的致命弱点!
2025-03-09
不要盲目再使用DeepSeek R1和QWQ这些推理模型做RAG了
2025-03-07
r1-reasoning-rag:一种新的 RAG 思路
2025-03-05
提高企业 RAG 准确性的分步指南
2025-03-05
DeepSeek-R1 x Agentic RAG:构建带"深度思考"开关的知识研究助理|深度长文
2025-03-05
通过Milvus内置Sparse-BM25算法进行全文检索并将混合检索应用于RAG系统
2025-03-05
本地部署DeepSeek R1 + Ollama + XRAG:三步搭建RAG系统,并解锁全流自动化评测
2024-09-04
2024-10-27
2024-07-18
2024-05-05
2024-06-20
2024-06-13
2024-07-09
2024-07-09
2024-05-19
2024-07-07
2025-03-05
2025-03-03
2025-03-02
2025-02-28
2025-02-24
2025-02-23
2025-02-15
2025-02-12