项目名称:1小时搭建“汪汪宠物狗”公司的N种模态文档的RAG智能对话机器人
报告日期:2024年8月18日
项目负责人:“汪汪宠物狗”公司创始人“汪汪”
项目概述:
大型语言模型(LLM)在实际应用中,尽管功能强大且多领域适用,但常出现幻觉现象,即生成的内容包含编造成分或错误。为解决这一问题,引入了LLM-RAG框架。
LLM-RAG通过结合检索和生成技术,提高了信息检索的准确性和效率,并能生成更贴近用户需求的文本。其检索库可定期更新,确保生成的文本内容基于最新信息,同时增强了回复的可解释性和定制能力1。
研究表明,与无RAG的LLM相比,RAG系统在回答问题方面的可靠性显著提高。在没有上下文的情况下,LLM平均只能正确回答34.7%的问题,而有了RAG,准确率提高到了94%2。这表明LLM-RAG框架在提升LLM性能方面具有显著优势。
基于NVIDIA AI 的智能库NIM,能够在1小时内快速地完成搭建基于文本,网页等等N种模态文档资料的RAG增强问答系统。当前版本代码,只支持了网页,txt格式2种模态文档数据的检索增强生成。后续版本会支持语音,图像,图表,PDF等等更多N种模态文档数据的检索增强生成。希望粉丝们,宝子们多多支持哦。
技术方案与实施步骤
模型选择:
RAG检索增强生成
RAG检索增强生成(Retrieval Augmented Generation, RAG)是一种结合信息检索和语言生成的技术,旨在提高对用户查询的响应准确性和丰富性。在这一流程中,用户提出问题后,系统通过检索器从多种信息源(如维基百科和私有文档)中获取相关数据。检索到的信息被整合成增强提示,随后通过大型语言模型生成最终答案。这种方法不仅能够提供准确的答案,还能确保信息的时效性和多样性,从而提升用户体验。RAG技术在处理复杂查询和提供背景信息方面展现出了显著的优势,成为现代人工智能系统中重要的组成部分。
RAG框架如下图所示。这张图展示了检索增强生成(RAG)的工作流程,具体步骤如下:
用户提问:用户提出问题,例如“英伟达(NVIDIA)是什么时候成立的?”。
检索器:系统通过检索器访问公开可用的信息(如维基百科)和内部/私有文档(如PDF、DOC等),以获取相关数据。
向量数据库:检索到的信息被存储在向量数据库中,便于快速检索。
增强提示:系统将用户的问题与从数据库中检索到的信息结合,生成增强提示。这一提示包含了相关的上下文信息,例如“英伟达成立于1993年4月5日,由2024年首席执行官黄仁勋(Jensen Huang)创办”。
生成器(LLM):增强提示被发送到大型语言模型(LLM),模型根据提供的上下文生成回答。
AI生成的答案:最终,系统返回生成的答案,例如“英伟达成立于1993年”。
这一流程有效结合了信息检索与生成技术,能够快速、准确地回答用户的问题,提升了用户体验。
LLM-RAG
LLM-RAG(大型语言模型与检索增强生成)是一种结合了大型语言模型(LLM)和信息检索技术的先进框架,旨在提高信息获取和生成的效率与准确性。LLM-RAG通过将检索技术与生成模型结合,能够在面对复杂问题时,提供更准确和上下文相关的回答。其核心思想是利用外部知识库来增强模型的生成能力。
LLM-RAG框架如下图所示。这张图展示了检索增强生成(RAG)的工作流程,具体步骤如下:
文档检索与处理:
数据源:系统从企业知识库中检索各种文档,通常包括PDF文件和其他格式的文档。这些文档包含了组织内的知识和信息。
预处理:检索到的文档经过预处理,以提取有用的信息和结构化数据。预处理的目的是清理数据,使其适合后续的嵌入生成。
文档嵌入:经过预处理的文档被输入到嵌入模型中,生成文档嵌入(document embeddings)。这些嵌入是高维向量,能够捕捉文档的语义特征,使得相似文档能够在向量空间中靠近。
用户查询与响应生成:
用户交互:用户通过聊天机器人网页应用提交查询。用户的问题可以是具体的请求或信息查询。
查询处理:系统接收用户查询,并将其转换为嵌入形式,形成嵌入查询(embedded query)。此步骤确保查询能够与文档嵌入进行有效匹配。
向量数据库检索:嵌入查询被发送到向量数据库,系统根据相似度检索相关的文档嵌入。向量数据库能够快速找到与用户查询相匹配的文档。
生成响应:检索到的相关文档嵌入与用户查询一起被送入大型语言模型(LLM)。LLM利用这些信息生成响应,可能会进行提示调优(prompt tuning),以提高生成文本的质量和相关性。
实时响应:最终,系统生成的文本响应被返回给用户,提供实时、准确的信息。
这一流程的优势在于,它结合了信息检索的高效性和语言生成的灵活性,能够处理复杂的查询并提供上下文丰富的答案。通过这种方式,LLM-RAG不仅提升了用户体验,还能在各种应用场景中发挥重要作用,如客户支持、知识管理和信息检索等领域。
AI-Agent
AI-Agent是一种智能系统,能够自主感知环境、做出决策并执行任务。它通过模块化结构实现功能,包括记忆模块(存储信息)、Agent核心(处理用户请求)、规划模块(制定行动计划)和工具执行(调用外部资源),从而在无需人工干预的情况下高效地完成复杂任务。
AI-Agent是一种先进的智能系统,具备感知环境、进行决策和执行任务的能力。其核心功能包括:
自主执行任务:AI-Agent能够独立完成指定任务,无需人工干预,提升了工作效率。
环境感知和决策能力:通过分析环境信息和用户请求,AI-Agent可以做出合理的决策,以适应动态变化的环境。
模块化结构:
记忆模块:负责信息的存储和检索,帮助Agent在执行任务时维持上下文和历史记录。
Agent核心:作为系统的控制中心,处理用户请求并协调各个模块之间的交互。
规划模块:根据目标制定详细的行动计划,确保任务的有效执行和资源的合理利用。
工具执行:能够调用外部工具和资源,以完成具体的操作和任务。
通过以上模块的协同工作,AI-Agent不仅能够灵活应对复杂任务,还能在不断变化的环境中优化决策过程,从而提升整体工作效率和智能化水平。
AI-Agent的框架如下图所示。
数据的构建:
网页格式数据处理:
使用 BeautifulSoup 工具从指定网页(比如,宠物狗的百度百科这个网址 https:/