大模型RAG技术:构建高效、可信赖的知识检索系统

news2024/10/10 10:27:19

前言

LLM 问题

幻觉:在没有答案的情况下提供虚假信息。

过时:当用户需要特定的当前响应时,提供过时或通用的信息。

来源:从非权威来源创建响应。由于术语混淆,不同的培训来源使用相同的术语来谈论不同的事情,因此会产生不准确的响应。

RAG 是解决其中一些挑战的一种方法。它会重定向 LLM,从权威的、预先确定的知识来源中检索相关信息。组织可以更好地控制生成的文本输出,并且用户可以深入了解 LLM 如何生成响应。

image

RAG 范式

RAG(Retrieval Augmented Generation)有三个核心组成部分:检索、增强和生成。其整个流程主要可以分为以下五个基本步骤:

知识文档的准备: 这是构建RAG系统的首要步骤,涉及将各种格式的知识源(如Word文档、TXT文件、PDF文件、图片、视频等)通过文档加载器或多模态模型(如OCR技术)转换为纯文本数据。此外,还需要执行文档切片,将长篇文档分割成多个文本块,以提高信息检索的准确性和效率。

嵌入模型: 嵌入模型(Embedding Model)的任务是将文本转换为向量形式。这一步骤通过计算文本的向量表示,使得能够通过向量之间的差异来识别语义上相似的句子。例如,Word2Vec、BERT和GPT等模型都可用于生成文本的向量表示。

向量数据库: 向量数据库专门设计用于存储和检索向量数据。所有通过嵌入模型生成的向量都会被存储在这样的数据库中,优化了处理和存储大规模向量数据的效率。

查询检索: 用户的问题首先被输入到嵌入模型进行向量化处理,然后在向量数据库中搜索与该问题向量语义上相似的知识文本或历史对话记录并返回。

生成回答: 最后,结合用户提问和检索到的信息,构建出一个提示模版(Prompt Template),输入到大型语言模型(Large Language Model, LLM)中,由模型生成准确的回答。

这个流程是RAG系统的基础,但文章中也提到了多个环节有着极大的优化空间,包括数据清洗、分块处理、元数据、多级索引、索引/查询算法、查询转换、检索参数、高级检索策略、重排模型、提示词和大语言模型等方面。这些优化策略可以帮助提高RAG系统的性能和可用性。

RAG vs 微调

优化技术的差异:RAG类似于为模型提供教科书,使其能够根据特定查询检索信息。适用于模型需要回答特定查询或处理特定信息检索任务的场景。微调则类似于让学生通过广泛学习来内化知识,适用于模型需要复制特定结构、风格或格式的情况。

适用场景:

RAG:适用于需要回答具体查询或特定信息检索任务的场景。

微调:适用于强调基础模型中的现有知识,修改或定制模型输出,为模型提供复杂指令的场景。

互补性:RAG和微调不是相互排斥的,而是可以相互补充,从不同层面增强模型的能力。在某些情况下,结合这两种技术可以实现最佳的模型性能。

原始RAG、高级RAG和模块化RAG

image

原始RAG(Naive RAG)

原始RAG是最早的研究范式,主要包括以下几个步骤:

建立索引: 这一过程通常在离线状态下进行,包括数据清理、提取,将不同文件格式(如PDF、HTML、Word、Markdown等)转换为纯文本,然后进行文本分块,并创建索引。

检索: 使用相同的编码模型将用户输入转换为向量,计算问题嵌入和文档块嵌入之间的相似度,选择相似度最高的前K个文档块作为当前问题的增强上下文信息。

生成: 将给定的问题和相关文档合并为新的提示,然后由大型语言模型基于提供的信息回答问题。如果有历史对话信息,也可以合并到提示中,用于多轮对话。

原始RAG面临的挑战

检索质量问题: 包括低精度(检索集中不所有块都与查询相关,导致可能的幻觉和断层问题)和低召回率(无法检索到所有相关块,阻止LLM获取足够的上下文来合成答案)等。

响应生成质量问题: 包括幻觉(模型编造不存在于上下文中的答案)、不相关性(模型生成的答案未能解决查询问题)以及有害或偏见性回应等。

增强过程的挑战:包括有效整合检索段落的上下文与当前生成任务、冗余和重复(多个检索段落包含相似信息导致内容重复)、确定多个检索段落对生成任务的重要性或相关性、处理不同写作风格或语气的差异以确保输出一致性等。

高级RAG (Advanced RAG)

高级RAG针对原始RAG的不足之处进行了有针对性的改进。这些改进涉及检索生成的质量、索引的优化、检索过程的优化等多个方面。

预检索过程

优化数据索引: 提高索引内容的质量,包括增加索引数据的细粒度、优化索引结构、添加元数据、对齐优化和混合检索等五个主要策略。

嵌入和索引: 涉及通过语言模型将文本编码为向量的过程,包括微调嵌入和动态嵌入。

微调嵌入: 提高检索内容与查询之间的相关性。

动态嵌入: 基于单词出现的上下文动态调整嵌入。

检索过程优化

重新排序(ReRank): 对检索到的信息进行重新排序,将最相关的信息放置在提示的边缘。

提示压缩: 通过压缩不相关的上下文、突出关键段落和减少总体上下文长度来提高RAG性能。

高级RAG 特点

高级RAG通过先进的索引方法、更精细的检索策略和有效的后处理方法来优化RAG的性能。

它采用不同的检索技术组合,适应不同的查询类型和信息需求,确保一致地检索到最相关和上下文丰富的信息。

高级RAG还包括对嵌入模型的微调,以提高检索内容的相关性,并使用动态嵌入技术以更好地处理上下文变化。

RAG 管道优化

在“RAG管道优化”这一部分中,论文讨论了针对检索过程的优化,旨在提高RAG系统的效率和信息质量。这些研究主要集中在智能组合各种搜索技术、优化检索步骤、引入认知回溯的概念、灵活应用多样化的查询策略,以及利用嵌入相似性。这些努力共同追求在RAG检索中实现效率和上下文信息丰富度之间的平衡。

RAG检索过程的优化方法:

探索混合搜索: 通过智能融合关键字搜索、语义搜索和向量搜索等技术,RAG系统可以利用每种方法的优势,适应不同类型的查询和信息需求,确保一致地检索到最相关和上下文丰富的信息。

递归检索和查询引擎: 实施递归检索和复杂查询引擎是优化RAG系统检索的另一种强有力的方法。递归检索意味着在初始检索阶段获取较小的文档块以捕获关键语义含义,然后在后续阶段向语言模型提供更多上下文信息的较大块。这种两步检索方法有助于在效率和富有上下文的响应之间找到平衡。

StepBack-prompt: 将StepBack-prompt方法集成到RAG过程中,鼓励大型语言模型从特定实例中退后,参与对背后的一般概念或原则的推理。实验结果表明,在各种具有挑战性的、推理密集的任务中,结合后向提示的运用能显著提高性能,显示出其在RAG中的自然适应性。

子查询: 可以在不同场景中采用各种查询策略,包括使用LlamaIndex等框架提供的查询引擎,运用树查询、向量查询,或使用最基本的块序列查询。

HyDE: 这种方法基于假设,即生成的答案在嵌入空间中可能比直接查询更接近。使用大型语言模型,HyDE针对查询生成一个假设的文档(答案),嵌入该文档,并利用这种嵌入来检索与假设文档类似的真实文档。与基于查询的嵌入相似性不同,这种方法强调从答案到答案的嵌入相似性。然而,这种方法可能并不总是能够产生有利的结果,特别是在语言模型不熟悉讨论主题的情况下,可能导致生成更多错误实例。

模块化RAG

模块化RAG结构打破了传统的原始RAG框架(索引、检索和生成),提供了更大的多样性和整个过程的灵活性。它整合了各种方法来扩展功能模块,例如在相似性检索中加入搜索模块,以及在检索器中应用微调方法。此外,特定问题的出现促使重构的RAG模块和迭代方法的出现。模块化RAG范式正成为RAG领域的主流,允许采用序列化管道或跨多个模块的端到端训练方法。

新模块

搜索模块: 与原始/高级RAG中的查询和语料库之间的相似性检索不同,搜索模块针对特定场景,将直接搜索引入过程中,使用由LLM生成的代码、查询语言(如SQL、Cypher)或其他自定义工具。

记忆模块: 利用LLM自身的记忆能力来指导检索。原则是找到与当前输入最相似的记忆。例如,Self-mem迭代地使用一个检索增强生成器来创建一个无限的记忆池,结合“原始问题”和“对偶问题”。

额外生成模块: 在检索到的内容中,冗余和噪声是常见问题。额外生成模块利用LLM生成所需的上下文,而不是直接从数据源检索。

任务适应模块:专注于转换RAG以适应各种下游任务。例如,UPRISE自动从预构建的数据池中检索给定零样本任务输入的提示,增强跨任务和模型的通用性。

对齐模块: 查询和文本之间的对齐一直是影响RAG有效性的关键问题。在模块化RAG时代,研究人员发现,在检索器中添加一个可训练的Adapter模块可以有效缓解对齐问题。

验证模块: 在现实世界场景中,不能总保证检索到的信息是可靠的。检索到不相关的数据可能导致LLM出现幻觉。因此,在检索文档后可以引入额外的验证模块,以评估检索到的文档与查询之间的相关性,增强RAG的鲁棒性。

场景

RAG技术可以在以下一些常见的自然语言处理任务中发挥作用:

问答系统 (QA Systems)

RAG可以用于构建强大的问答系统,能够回答用户提出的各种问题。它能够通过检索大规模文档集合来提供准确的答案,无需针对每个问题进行特定训练。

文档生成和自动摘要 (Document Automatic Generation and Summarization)

RAG可用于自动生成文章段落、文档或自动摘要,基于检索的知识来填充文本,使得生成的内容更具信息价值。

智能助手和虚拟代理 (Intelligent Assistants and Virtual Agents)

RAG可以用于构建智能助手或虚拟代理,结合聊天记录回答用户的问题、提供信息和执行任务,无需进行特定任务微调。

信息检索 (Information Retrieval)

RAG可以改进信息检索系统,使其更准确深刻。用户可以提出更具体的查询,不再局限于关键词匹配。

知识图谱填充 (Knowledge Graph Population)

RAG可以用于填充知识图谱中的实体关系,通过检索文档来识别和添加新的知识点。

优势

明晰了RAG的应用范围后,可能会产生疑问:为什么这些场景需要使用RAG,而不是进行微调或者通过其他方法来实现呢?接下来,我们进一步了解RAG的优势。

RAG的具体优势:

准确性提高: RAG通过与外部知识相关联的答案来提高准确性,减少语言模型中的幻觉问题,使生成的响应更准确、可靠。

保持信息的时效性和准确性:与传统只依赖训练数据的语言模型相比,RAG可以识别最新信息,保持响应的时效性和准确性。

透明度: RAG通过引用来源提高答案的透明度,增加用户对模型输出的信任。

定制化能力: RAG可以通过索引相关文本语料库来定制不同领域的模型,为特定领域提供知识支持。

安全性和隐私管理: RAG在数据库中内置了角色和安全控制,可以更好地控制数据使用。

可扩展性: RAG能够处理大规模数据集而无需更新所有参数和创建训练集,使其在经济上更有效率。

结果的可信度: RAG从最新数据中选择确定性结果,而微调模型在处理动态数据时可能出现幻觉和不准确性,缺乏透明度和可信度。

如何系统的去学习AI大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段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.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的所有 ⚡️ 大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

全套 《LLM大模型入门+进阶学习资源包↓↓↓ 获取~

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1862958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C# Onnx Yolov8-OBB 旋转目标检测 行驶证副页条码+编号 检测,后续裁剪出图片并摆正显示

C# Onnx Yolov8-OBB 旋转目标检测 行驶证副页条码编号 检测,后续裁剪出图片并摆正显示 目录 效果 模型信息 项目 代码 下载 效果 模型信息 Model Properties ------------------------- date:2024-06-25T10:59:15.206586 description:…

第一课:SSH协议、SSHD守护进程、Openssh软件包

第一节课 6月12日 ssh协议 关键问题 一、ssh、sshd、openssh的概念和区别? 二、ssh是基于什么架构?B/S还是C/S? 三、用户远程连接服务器经历哪些过程? 四、如何查看openssh软件包是否安装? 五、rpm和yum的区别&#xf…

node带参数命令

不带参数命令示例: node /www/wwwroot/server 带参数命令示例: node /www/wwwroot/server arg1 arg2 arg3 在启动页进行参数处理: // 获取启动参数(除去前2个默认参数,示例:node /www/wwwroot/server arg1 arg2 …

SAP ABAP 之容器

文章目录 前言一、案例介绍/笔者需求二、自定义容器 a.实例化对象 b.自定义容器效果演示 c.Copy Code 三、自适应容器 a.常用 必须 参数理解 b.METRIC 度量单位 c.RATIO 百分比尺寸 d.STYLE 容器…

WMV 视频格式怎么转换?WMV 视频为什么不流行了?

目前有越来越多的视频格式类型,如常见的 MP4、FLV、AVI 等等,而技术的演变也逐渐让一些常见的视频格式变的越来越少了。 今天我们一起来聊下 WMV 这个视频格式,让我们看看它的发展以及为什么现在越来越少人使用了。 什么是 WMV 视频格式&…

微信营销自动化(朋友圈自动点赞工具):UIAutomation的解决方案

文章不用看, 是AI生成的, 请直接查看下载地址 http://www.aisisoft.top . 微信朋友圈自动点赞工具, 自动群发工具 在当今的数字化营销领域,自动化工具成为了提升工作效率、增强客户互动的关键。本文将详细介绍一款基于UIAutomation框架与Python语言构建的微信营销自…

数据容器(四)

目录 一、dict(字典、映射) 1.字典的定义 2.字典数据的获取 3.字典的嵌套 一、dict(字典、映射) 1.字典的定义 使用{},不过存储的元素是一个个的:键值对。 2.字典数据的获取 字典同集合一样&#xff…

PointCloudLib-滤波模块(Filtering)-使用统计异常值移除过滤器移除异常值

在本教程中,我们将学习如何消除噪声测量值,例如异常值, 使用统计分析技术的点云数据集。 背景 激光扫描通常会生成不同点密度的点云数据集。 此外,测量误差会导致稀疏异常值,从而破坏 结果更多。这使得本地点云的估计变得复杂 表面法线或曲率变化等特征,导致 错误的值,…

【WEB】关于react的WEB应用中使用React Developer Tools便捷快速查看元素数据

1、往扩展工具中添加React Developer Tools的扩展包 2、检查是否生效,如下图: 可以看到右上角多出来一个Components的tab选项,就是成功了

转运机器人:智能物流的得力助手

在物流行业,转运机器人已经成为提高转运效率、降低成本的重要工具。而富唯智能转运机器人凭借其出色的性能和智能化的设计,成为了众多企业的得力助手。 富唯智能转运机器人采用了先进的AMR控制系统,可以一体化控制移动机器人并实现与产线设备…

美国众议院通过ENFORCE ACT草案:AI领域的潜在冷战?

近日,美国众议院通过了“增强关键出口海外限制国家框架法案”(ENFORCE ACT),该法案旨在限制AI/ML技术和人才向中国的流动。这一举动引发了广泛讨论和担忧,许多人认为这将对在美从事AI相关工作的中国人造成重大影响。本…

【力扣】重排链表

🔥博客主页: 我要成为C领域大神 🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于分享知识,欢迎大家共同学习和交流。 给定一个单链表…

传媒行业采购堡垒机的必要性你知道吗?

随着互联网的快速发展,传媒行业也是发展速度。特别是近年来,自媒体行业的火热,如何保障网络安全,如何保障大家信息安全至关重要。虽然国家严格要求执行等保政策,但大家对于为什么传媒行业要采购堡垒机不是很了解。你知…

JDK16特性

JDK16特性 一、JAVA16概述 2021年3月16日正式发布,一共更新了17JEP https://openjdk.java.net/projects/jdk/16/ 二、语法层面变化 1.JEP 397:密封类(第二次预览) sealed class 第二次预览通过密封的类和接口来增强Java编程语言,这是新的预览特性,用于限制超类的使用密封…

Nuxt 3组件开发与管理

title: Nuxt 3组件开发与管理 date: 2024/6/20 updated: 2024/6/20 author: cmdragon excerpt: 摘要:本文深入探讨了Nuxt 3的组件开发与管理,从基础概念、安装配置、目录结构、组件分类与开发实践、生命周期与优化,到测试与维护策略。详细…

小程序注册

【 一 】小程序注册 微信公众平台 https://mp.weixin.qq.com/ https://mp.weixin.qq.com/注册 邮箱激活 小程序账户注册 微信小程序配置 微信小程序开发流程 添加项目成员 【 二 】云服务 lass 基础设施服务(组装机) 你买了一大堆的电脑配件&#x…

【AI编译器】triton学习:矩阵乘优化

Matrix Multiplication 主要内容: 块级矩阵乘法 多维指针算术 重新编排程序以提升L2缓存命 自动性能调整 Motivations 矩阵乘法是当今高性能计算系统的一个关键组件,在大多数情况下被用于构建硬件。由于该操作特别复杂,因此通常由软件提…

鸿蒙开发报错 -cppcrash happened

报错信息: cppcrash happened in ‘设备名’ 现象:打开应用就闪退,无论是模拟器还是真机都会闪退,预览器没有问题 报错原因,在入口页面添加了export, 页面是不需要导出的,只有组件需要导出&…

三,SSM整合-前后端分离(实现增删改查)

实现增删改查 实现功能03-添加家居信息需求分析/图解思路分析代码实现注意事项和细节 实现功能04-显示家居信息需求分析/图解思路分析代码实现 实现功能05-修改家居信息需求分析/图解思路分析代码实现注意事项和细节 实现功能06-删除家居信息需求分析/图解思路分析代码实现课后…

数据接入开放协议-术语表

数据与元数据 - 数据 传感器采样生成的 具有物理含义的一个或一系列值 - 实时数据 包含 时间、数据质量指示的一个或一系列数据 - 位号元数据 对于传感器采样得到的数据的物理描述 包括但不限于 时间、单位、数据范围、数据质量指示 上位机与下位机 - 上位机supOS 系统 - 下位…