前言
检索增强生成(RAG)系统在处理复杂推理任务方面展现出显著的潜力。然而,现有的RAG系统在面对需要复杂推理、多领域知识集成及数值计算的任务时,仍存在性能瓶颈。为了进一步提升系统的表现,本文提出了一种混合RAG系统,通过整合多种优化方法,显著增强了系统的推理能力和处理复杂任务的能力。本文介绍的RAG系统设计并实现了一个包括网页处理、属性预测、数值计算、LLM知识提取、知识图谱及推理模块在内的综合架构。该系统能够有效地从多种来源提取信息,并通过高级推理模块结合这些信息,生成高质量的答案。
一、方法
混合RAG系统整体架构
混合RAG系统包括六个关键模块:网页处理、属性预测器、数值计算器、LLM知识提取器、知识图谱模块和推理模块。
- 网页处理:使用trafilatura和BeautifulSoup库从网页中提取文本和表格,然后使用Blingfire库将文本分割成句子,并根据关键词将句子组织成文本块。
- 属性预测器:通过LLMs和SVM分类器评估问题的领域、类型和时效性,以优化模型在不同问题类型上的性能。
- 数值计算器:利用外部Python解释器进行数值计算,通过LLMs生成数学表达式,并使用eval函数处理这些表达式。
- LLM知识提取器:利用LLMs内部的知识进行推理,减少对外部参考文档的依赖。
- 知识图谱模块:通过模拟API查询知识图谱,使用LLMs生成查询语句。
- 推理模块:结合文本块、表格、知识图谱三元组和LLM知识进行最终答案的推理,通过设计良好的提示模板和控制推理路径来实现。
1.1 网页处理
网页处理
-
文本块处理:
-
- 使用trafilatura库从网页中提取纯文本,该库能有效去除噪声,如页眉、页脚和链接。
- 对于trafilatura无法处理的网页,使用BeautifulSoup作为备选方案。
- 利用Blingfire库将提取的文本分割成句子。
- 根据关键词将句子组织成文本块,例如,将问题和其后的文本连接起来,直到达到预设的长度阈值。
-
表格处理:
-
- 使用BeautifulSoup提取网页中的表格,并将其转换为Markdown格式。
- 清理空表格以减少噪声。
-
文本嵌入和rank指标:
rank指标
-
- 使用sentence-t5-large模型生成文本块和查询的向量嵌入。
- 采用余弦相似度作为排名指标,计算用户查询嵌入和文本块嵌入之间的相似度。
1.2 属性预测
- In-Context Learning(ICL) :利用大型语言模型(LLMs)的自然语言理解和多任务泛化能力。通过向模型提供分类指令和5个类别的示例,指导其对后续问题进行分类。采用自我一致性策略,多次采样模型的输出,选择出现频率最高的类别作为问题的分类结果。
- 支持向量机(SVM) :使用CRAG**公开数据集训练一个SVM分类器。利用MiniLM-L6-v2模型获取句子嵌入,用于训练SVM。SVM模型在预测属性方面表现出较高的准确性,并且计算开销较小。
属性预测提示词
1.3 数值计算
- 生成数学表达式:鼓励大型语言模型(LLMs)将推理过程表述为数学表达式。将可能包含数值信息的检索到的文本块和表格整合到模型的提示中。使用提示技术促使模型直接生成有效的Python表达式。
- 计算表达式:使用多次采样生成Python表达式,并通过eval函数处理这些表达式以得到计算结果。
数值计算提示词
- 安全性和终止执行:LLMs生成的程序代码可能包含恶意代码,直接执行这些代码可能对系统稳定性构成威胁。为了确保系统安全,最佳实践是使用ast.literal_eval或在沙箱环境中执行代码。
1.4 LLM知识提取器
知识提取器的过程类似于常规的模型生成过程。使用zero-shot提示,这些提示要求模型评估给定查询是否涉及错误前提,并生成更简洁的响应。在提示中不包含来自外部知识库的参考文档,并且不包括多次采样,以减少计算开销。
LLM能够仅基于训练过程中内部化**的知识进行响应。这种方法在处理被分类为慢变和稳定的问题时表现良好。
直接让模型回答问题可能会引入幻觉,尽管使用了零样本CoT**推理。为了平衡幻觉和LLM内部知识,系统将LLM知识提取器的输出仅作为参考之一。设计了特定的提示,确保模型既不过度依赖文档参考,也不过分信任LLM的知识。
提示模板旨在让LLM基于所有参考信息进行推理并得出最终答案。通过输出格式示范和零样本CoT控制推理过程,这对于多跳问题特别有用。利用Llama3-70B-Instruct的强指令遵循能力,成功地在控制推理任务方面取得了稳步进展。
设计了多条规则来约束推理路径和输出格式,确保输出精确。通过在提示中提出中间问题来引导模型推理。
LLM知识提取器提示词
1.5 知识图谱抽取模块
使用 函数调用方法:系统从查询中提取实体,并使用LLM生成函数调用来检索相关信息。函数调用的质量取决于LLM生成的查询语句的质量。
知识图谱抽取模块提示词-函数调用方法的提示模板
1.6 推理模块
- 输入信息整合:推理模块接收来自网页处理、数值计算器、LLM知识提取器和知识图谱模块的所有参考信息,包括文本块、表格、知识图谱三元组和LLM生成的知识。
- 提示模板设计:设计了一个详细的提示模板,用于指导大型语言模型(LLM)进行推理。提示模板包括系统提示和用户提示。系统提示明确了任务要求、规则和输出格式。用户提示包含了具体的查询和参考信息。
- 推理路径控制:通过输出格式示范和零样本CoT技术,控制推理路径,特别是对于多跳问题。设计了多条规则来约束推理路径和输出格式,确保输出精确。
- 中间问题引导:在提示中提出中间问题,引导模型进行逐步推理,从而提高推理的准确性和详细程度。
- 处理不确定性和错误:如果参考信息不包含回答问题所需的信息,或者模型无法基于当前知识直接回答问题,模型将回答“我不知道”。如果问题的前提是错误的,模型将回答“无效问题”。
- 最终答案生成:模型生成的推理过程和最终答案必须遵循严格的格式要求,确保答案简洁且详细解释推理过程。
推理模块提示词
1.7 处理边界情况
- 无效问题:通过分析提供的参考信息,识别出具有错误前提的问题,即查询与事实相矛盾的问题。在推理提示中添加特殊规则,使模型在这种情况下输出“无效问题”。
- 减少幻觉:使用属性预测器和推理模块来减少幻觉。对于时间变化的问题,模型会回答“我不知道”,因为这些问题难以处理。在推理模块中添加规则和提示工程技术,使模型在不确定时回答“我不知道”。
- 格式错误:由于未对推理输出进行约束采样,模型可能会生成无法解析的答案。设计了一个备份总结代理,当解析失败时,基于推理模块的输出生成简洁准确的总结。设计了一个备份总结代理,当解析失败时,基于推理模块的输出生成简洁准确的总结。
备份总结代理提示词
二、实验
- 领域属性表现:系统在电影、音乐和开放领域表现良好,但在金融和体育领域表现不佳,主要因为这些领域需要处理动态信息。
- 动态性问题:随着问题的动态性增加,系统的有效性逐渐下降。
- 问题类型表现:系统在需要复杂推理的任务上表现优异,这得益于强大的推理模块。
消融实验
数值计算器和推理模块对系统性能的提升贡献显著。
总结
本文介绍了一种混合检索增强生成(RAG)系统,通过一系列综合优化显著提高了检索质量、增强了推理能力并提升了数值计算能力,通过多个模块的协同工作显著提升了LLMs在复杂推理任务中的表现。
如何系统的去学习大模型LLM ?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓