#AIGC##LLM##RAG# RAG:专补LLMs短板_减少LLM幻觉并多模态/RAG 技术最新进展

RAG技术,即检索增强生成,标志着自然语言处理领域的重大进展。通过整合先前知识,它提升了大型语言模型的性能,广泛应用于多模态领域和垂直行业。本文深入探讨了RAG技术的演进历程、技术发展、LLMs问题及其解决方案,为读者提供了对这一前沿技术的全面理解。

RAG 与 LLMs

image.png

RAG 演进历程

RAG 技术的演进历程可以分为几个关键阶段,总结如下:

  1. 预训练阶段: RAG 概念首次于2020年提出,初期研究侧重于如何通过预训练模型注入额外知识,以增强语言模型的能力。这个阶段旨在使模型能够更好地利用先前的知识。
  2. ChatGPT时代: 随着ChatGPT的出现,对于运用大型模型进行深层次上下文学习的兴趣激增。这推动了 RAG 技术在研究领域的快速发展,引入了更复杂的上下文学习。
  3. LLMs潜力的开发: 随着大型语言模型(LLMs)潜力的进一步开发,研究开始关注如何提升模型的可控性,以满足不断演变的需求。RAG 技术逐渐转向增强推理能力,并尝试在微调过程中引入各种改进方法。
  4. GPT-4时代: GPT-4的发布标志着 RAG 技术的深刻变革。研究重心转向一种新的融合 RAG 和微调策略的方法,同时持续关注对预训练方法的优化。这一阶段旨在进一步提高模型的性能和适应性。

总体而言,RAG 技术从提出到今天经历了多个关键阶段,不断演化和改进,以适应不断发展的自然语言处理需求。

RAG 技术发展

在RAG技术的发展过程中,可以从技术范式的角度将其总结为以下几个阶段:

  1. 朴素(Naive RAG):
  • 索引: 将文档库分割成较短的Chunk,并通过编码器构建向量索引。
  • 检索: 根据问题和chunks的相似度检索相关文档片段。
  • 生成: 以检索到的上下文为条件,生成问题的回答。
  1. 进阶的 RAG(Advanced RAG):
  • 在Naive RAG中存在检索质量、响应生成质量和增强过程中的挑战。
  • 数据索引: 通过更精细的数据清洗、设计文档结构和添加元数据等方法提升文本的一致性、准确性和检索效率。
  • 检索前处理: 使用问题的重写、路由和扩充等方式对齐问题和文档块之间的语义差异。
  • 检索后处理: 通过重排序文档库避免 “Lost in the Middle” 现象,或通过上下文筛选与压缩缩短窗口长度。
  1. 模块化 RAG(Modular RAG):
  • 随着技术的发展,出现了模块化RAG的概念。
  • 结构上更自由和灵活: 引入更多具体功能模块,如查询搜索引擎、融合多个回答。
  • 技术融合: 将检索与微调、强化学习等技术融合,设计和编排多种RAG模式。
  • 范式的继承与发展: 模块化RAG不是突然出现的,而是Naive RAG和Advanced RAG的继承与发展关系,前者是后者的一种特例形式。

综合而言,RAG技术在朴素、进阶和模块化三个阶段的发展过程中,不断突破传统的检索-生成框架,提升了检索质量、响应生成质量和整体性能。
640.png

LLMS 问题

LLMs(大语言模型)型虽然具有令人印象深刻的能力,但也存在一些问题:

  1. 误导性的“幻觉”: 模型可能会产生误导性的结果,即其生成的信息可能不准确或不完全符合实际情况。
  2. 信息过时: 模型依赖的信息可能会过时,因为它们在训练时使用的数据可能不包括最新的信息。
  3. 处理特定知识时效率不高: 在处理某些特定领域的知识时,模型可能效率不高,可能由于缺乏足够的领域专业性或深度。
  4. 缺乏专业领域的深度洞察: 模型可能缺乏对专业领域的深度理解,从而在特定领域的任务中表现不如专业人士。
  5. 推理能力欠缺: 模型在推理方面可能存在不足,可能难以正确推断复杂或抽象的关系,从而影响其在某些任务中的表现。

在现实世界的应用中,数据需要定期更新以反映最新的发展。生成的内容必须具有透明性和可追溯性,以便有效地控制成本并确保数据隐私的保护
因此,仅仅依赖于那些被称为“黑盒”模型的简单方法是不够的。我们需要更为精细的解决方案来满足这些复杂的需求,以确保系统在不断变化的环境中能够持续提供准确和可信的信息。

RAG 解决LLMs 幻觉

检索增强:能够与外部世界互动,以不同的形式和方式获取知识,从而提高所生成内容的事实性和合理性。
然而,世界上还有更多的知识存储在不同的结构和模式中,如图像和视频,这些知识往往是传统文本语料库无法访问、无法获得或无法描述的。
检索多模态知识以增强生成模型。
解决当前面临的事实性、推理、可解释性和鲁棒性等挑战提供了一个前景广阔的解决方案
640.png

RAG 核心 :Retrieval、Augmentation、Generation

在构建一个优秀的RAG系统时,三个核心部分分别是“检索”(Retrieval)、“增强”(Augmentation)和“生成”(Generation)。这三个部分正好对应了RAG的首字母,是系统中不可或缺的关键组成部分。在注重增强部分的前提下,需要考虑以下三个关键问题:

  1. 检索什么?
  • 确定在检索阶段要获取的信息,这直接影响到生成阶段的输入。选择合适的检索内容能够为模型提供更有价值的上下文信息,提高生成的准确性和相关性。
  1. 什么时候检索?
  • 确定检索增强应该在RAG系统的哪个阶段进行。这可能包括预训练、微调和推理三个阶段。决定检索的时机会影响外部知识的参数化程度,以及所需的计算资源。
  1. 怎么用检索的内容?
  • 确定如何有效地利用检索到的内容进行增强。这可能涉及到如何整合外部知识,将其融入生成模型的过程中。有效的使用检索的内容对于提升系统性能至关重要。

在检索增强的阶段,有一些关键方面需要考虑:

  • 检索增强的数据源:
    • 可以选择多种形式的数据作为增强的来源,包括非结构化的文本数据(段落、短语、单词),结构化数据(带有索引的文档、三元组数据、子图),或者充分发挥LLMs自身生成内容的能力,从模型自身生成的内容中检索。
  • 检索增强的过程:
    • 最初的检索可以是一次性过程,但在RAG的发展过程中,出现了更复杂的方法,如迭代检索、递归检索以及由LLMs自行判断检索时机的自适应检索方法。选择合适的检索过程能够更好地适应不同场景和需求。

构建一个强大的RAG系统需要综合考虑上述问题,平衡检索的精度和效率,以及如何将检索到的信息融入到生成模型中,从而实现更准确、相关和可信的语言生成。
640.png

RAG 和微调如何选择

RAG,LLMs 主要优化手段还包括了提示工程 (Prompt Engineering)、微调 (Fine-tuning,FT)。他们都有自己独特的特点。根据对外部知识的依赖性和模型调整要求上的不同,各自有适合的场景。
RAG vs. FT:

  • RAG(Retrieval-Augmented Generation):
    • 类比:给模型一本教科书,用于特定查询的信息检索。
    • 优点:适用于特定问题,信息检索高效。
    • 注意:擅长整合新知识,适用于快速迭代新的用例。
  • FT(Fine-Tuning):
    • 类比:学生随着时间内化知识,模仿特定结构、风格或格式。
    • 优点:通过增强模型知识、调整输出和教授复杂指令提高性能和效率。
    • 注意:不太擅长整合新知识,相对固定于已学知识。
  • 互补关系:
    • RAG和FT并非相互排斥,可相互补充使用。
    • 联合使用可能产生最佳性能,充分发挥各自优势。

640.png
640.png

评估RAG的方法RAG评估方法概述:

质量评分:

  1. 上下文相关性: 评估生成的答案是否与上下文相关。
  2. 答案忠实性: 确保生成的答案忠实于检索到的信息。
  3. 答案相关性: 衡量答案是否与用户查询相关。

关键能力评估:

  1. 噪声鲁棒性: 模型对输入中的噪声或干扰的处理能力。
  2. 拒答能力: 评估模型是否能够合理拒绝某些查询。
  3. 信息整合: 能否有效整合多个信息源。
  4. 反事实鲁棒性: 模型对虚构或不准确信息的处理能力。

评估框架:

  • 基准测试: 包括RGB和RECALL等传统量化指标。
  • 自动化评估工具: RAGAS、ARES、TruLens等,提供全面的性能评估。

评估维度总结:

  • 评估对象: 主要关注RAG模型的生成答案。
  • 评估维度: 包括上下文相关性、答案忠实性、答案相关性以及关键能力的多个方面。
  • 评估指标: 通过多种基准测试和自动化评估工具来全面衡量性能。

这些评估维度结合了传统量化指标和专门的RAG评估标准,为深入理解RAG模型的性能和应用提供了全面的评估框架。
image.png

多模态检索增强生成

多模态检索增强生成(RAG)是指通过检索与生成目标相关的信息,来增强生成模型性能的技术。RAG 具有广阔的应用前景,包括文本生成、图像生成、视频生成等。
多模态学习的确是一个很有趣且具有挑战性的领域。通过整合不同模态的数据,我们可以获得更全面、丰富的信息,从而提高机器学习系统在各种任务中的性能。
在多模态生成模型中,文本-图像生成是一个典型的应用场景。通过将文本描述与图像关联,模型可以学习到语义上的联系,实现生成与描述相符的图像。这在创意写作生成和多语言翻译等任务中都具有很大的潜力。
当然,这个领域也面临一些挑战,如获取大量多模态数据以训练模型、设计能够产生有语义输出的网络结构等问题。解决这些挑战将有助于进一步推动多模态学习的发展,使其在实际应用中更加有效。
640.png

原理

RAG 通常包括两个阶段:

  • 检索阶段:从多模态数据库中检索与生成目标相关的信息。
  • 生成阶段:使用检索到的知识或信息指导生成模型的生成过程。

挑战

首先,由于生成模型依赖于内在知识(权重),可能导致产生许多虚幻的结果。其次,由于参数量庞大,传统的预训练和微调方法的更新成本极高,已经变得难以实际应用。作为一种解决之道,RAG 方法为语言模型与外部世界有效互动提供了一个极具前景的解决方案。
640.png
RAG 在近年来取得了显著的进展,但仍面临一些挑战,包括:

  • 数据稀缺问题:多模态数据集的获取和标注成本高昂,因此数据稀缺问题一直是多模态生成领域的挑战。
  • 模态不一致问题:不同模态的数据往往存在不一致性,这给多模态检索和合成带来了困难。
  • 模型复杂度问题:多模态检索增强生成模型往往具有复杂的结构,这给模型的训练和部署带来了挑战。

未来的研究将致力于解决这些挑战,以推动多模态检索增强生成领域的发展。

趋势

RAG 已经在多个下游 NLP 任务中得到广泛应用,包括机器翻译、对话生成、抽象概括和知识密集型生成。其中,许多方法着重于利用检索文本信息。例如,Guu等人(2020b)和Izacard等人(2022)采用了将检索系统与编码器或序列到序列语言模型进行联合训练的方法,在性能上取得了与使用更多参数的大型语言模型相当的成果。近期的研究还提出了将检索系统与思维链(CoT)推理提示相结合的方法,以增强语言模型的性能。
以下是一些值得关注的趋势:

  • 多模态检索和合成技术的融合:未来的研究将致力于将多模态检索和合成技术进行深入融合,以提高生成模型的性能。
  • 多模态生成模型的泛化能力研究:多模态生成模型在特定任务上取得了显著的进展,但它们的泛化能力仍有待提高。
  • 多模态生成模型的安全和可靠性研究:多模态生成模型可以生成逼真的文本、图像、音频等,因此它们可能被用于生成虚假信息或传播有害内容。

640.png

应用场景

640.png

图片

**视觉问题解答(Visual question answering, VQA) **
图片说明 (Image captioning)
有视觉基础的对话 (Visually grounded dialogue)
文本生成(Text generation)

代码

借助于NLP深度学习的进展,出现了一种通用的检索增强生成范式,为软件开发人员提供了有效的工具。这种范式不仅在代码补全中表现良好,还在代码生成和自动程序修复等任务中取得了显著的成果。然而,现有方法通常将编程语言和自然语言视为等价的标记序列,忽略了源代码的丰富语义。为了解决这一问题,最新的研究集中在多模态学习上,将代码注释、标识符标签和抽象语法树等附加模态纳入代码预训练模型,以提高代码的泛化性能。这种多模态检索增强生成方法在特定代码任务中已经证明了其可行性。
文本到代码生成(Text-to-Code Generation)
代码到文本的生成(Code-to-Text Generation)
代码补全(Code Completion)
**自动程序修复 (Automatic Program Repair,APR) **
作为中间步骤的代码推理(Reasoning over Codes)

结构化知识

幻觉的一个解决方案是利用检索到的结构化知识(如知识图谱、表格和数据库)进行基础生成。
问题解答(Question Answering,QA)
一般文本生成(General text generation)
用知识推理(Reasoning with knowledge)
以知识为基础的对话(Knowledge-grounded dialogue)

音频

文本音频数据增强(Text-audio data augmentation)
**音乐字幕(Music captioning) **
音乐生成(Music generation)

视频

视频对话(Video-grounded dialogue)
**视频字幕(Video captioning) **
LLM增强(LLM augmentation)

研究挑战

垂直优化面临的挑战与解决方案:

  1. 长下文长度的挑战:
  • 问题: 当检索内容过多,超过LLMs上下文窗口限制时,如何处理?
  • 解决方案: 探索更灵活的上下文处理方式,考虑引入分段机制或动态选择关键信息以适应长下文。
  1. 鲁棒性的挑战:
  • 问题: 如何处理检索到的错误内容,进行过滤和验证?怎么提高模型的抗毒、抗噪声能力?
  • 解决方案: 引入强化学习机制,让模型学习对错误信息的过滤,加强对异常情况的处理,提高模型的鲁棒性。
  1. 与微调协同的挑战:
  • 问题: 如何协同RAG和FT,组织串行、交替还是端到端的训练方式?
  • 解决方案: 探索混合训练策略,通过串行或交替的方式融合RAG和FT的训练,使它们相互协同提升性能。
  1. Scaling-Law的挑战:
  • 问题: RAG模型是否满足Scaling Law?在什么场景下可能出现Inverse Scaling Law?
  • 解决方案: 进行规模化实验和评估,了解RAG在不同规模下的性能表现,寻找可能存在的Scaling Law或Inverse Scaling Law现象。
  1. LLMs的角色的挑战:
  • 问题: 如何更充分地挖掘LLMs在RAG中的潜力?
  • 解决方案: 考虑在检索、生成、评估阶段中更灵活地使用LLMs,探索新的架构和方法以优化LLMs在RAG中的表现。
  1. 工程实践的挑战:
  • 问题: 如何降低超大规模语料的检索时延?如何保证检索内容不被大模型泄露?
  • 解决方案: 优化检索引擎的工程实践,使用分布式计算和高效索引技术来提高检索效率;引入隐私保护机制以防止泄露。

发展方向

检索增强型多模态推理(Retrieval Augmented Multimodal Reasoning)
构建多模态知识索引(Building a Multimodal Knowledge Index)
多模态检索预训练(Pretraining with Multimodal Retrieval)

参考文献

https://arxiv.org/abs/2312.10997 Retrieval-Augmented Generation for Large Language Models: A Survey
https://arxiv.org/abs/2401.05856 Seven Failure Points When Engineering a Retrieval Augmented Generation System
https://download.csdn.net/download/weixin_45312236/88720208 2023 中国开源开发者报告

**

**

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

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

相关文章

【RT-DETR有效改进】ShapeIoU、InnerShapeIoU关注边界框本身的IoU(包含二次创新)

前言 大家好,我是Snu77,这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进,内容持续更新,每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本,同时修改内容也支持Re…

十、Three场景实现多个物体的合并

Three场景实现多个物体的合并 目的 产品需求是让物体的光柱墙包含一个多边形的区域,二而我的多边形只能使用原型,方向,多边形。那么再研究的时候就需要将这些多边形合并成为一个形状,那么就行实现了。 原先的图形 如上图,是两个mesh组成的。首先寻找mesh合并的方法。 第…

分布式限流要注意的问题

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 为什么需要匀速限流 同学们回想一下在Guava小节里…

MySQL运维篇(二)主从复制

一、概述 主从复制是指将主数据库的 DDL 和 DML 操作通过 二进制日志 传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL 支持一台主库同时向多台从库进行复制, 从…

聊一聊 C# 的线程本地存储TLS到底是什么

一:背景 1. 讲故事 有朋友在后台留言让我说一下C#的 ThreadStatic 线程本地存储是怎么玩的?这么说吧,C#的ThreadStatic是假的,因为C#完全是由CLR(C)承载的,言外之意C#的线程本地存储&#xff…

基于Java+SSM+MYSQL的助农特色农产品销售系统详细设计和实现【附源码】

基于JavaSSM助农特色农产品销售系统详细设计和实现【附源码】 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定…

调试openjdk11源码报段错误异常Segmentation fault解决方案

解决方案-忽略信号:(gdb) handle SIGSEGV pass noprint nostop ##openjdk11源码编译简单教程 传送门centos7下openjdk11源码下载编译安装_openjdk11下载-CSDN博客 ##调试openjdk11源码报段错误异常Segmentation fault解决方案 Program received signal SIGSEGV,…

连接器应用案例详解 | prodesign加速卡采用Samtec NovaRay® 极高密度阵列

【摘要/前言】 ChatGPT最近受到的欢迎和关注凸显了人工智能在影响日常生活方面所取得的进展。 有谁曾使用 ChatGPT 完成家庭作业或撰写博客?提前申明:这一篇文章绝对是真人撰写~ 无论如何,像ChatGPT这样的聊天机器人和类似服务的支柱都是高…

芯片有关新闻-China chip imports suffer steepest drop on record after US curbs

Jan 16, 2024 9:01 am 由于长期的经济不确定性和美国的出口管制,中国的芯片进口去年遭遇了有记录以来的最大降幅。 全球最大半导体市场的集成电路进口额下降了15.4%,至3494亿美元,这是自2004年中国海关数据公布以来的最大跌幅,并…

Controller层自定义注解拦截request请求校验

一、背景 笔者工作中遇到一个需求,需要开发一个注解,放在controller层的类或者方法上,用以校验请求参数中(不管是url还是body体内,都要检查,有token参数,且符合校验规则就放行)是否传了一个token的参数&am…

BigDecimal中使用ROUND_HALF_UP进行四舍五入

一、BigDecimal 简介 BigDecimal 类位于 java.math 包中,它提供了更加精确的算术运算,使用户完全控制舍入行为。 如果未指定舍入模式,并且无法表示确切的结果,则抛出异常; 否则,可以通过操作提供适当的 MathContext 对…

学生党有必要买台灯吗?央视公认最好的护眼灯

我认为学生党还是很有必要买台灯的!现在的孩子学业压力都比较大,白天光线亮度比较充足,对眼睛没有太大影响。不过夜晚的时候周围环境的光线都逐渐暗下来,如果单靠室内的灯光来学习,那肯定是远远不够的!不仅…

Pandas加载大数据集

Scaling to large datasets — pandas 2.1.4 documentationhttps://pandas.pydata.org/docs/user_guide/scale.html#use-efficient-datatypes官方文档提供了4种方法:只加载需要的列、转化数据类型、使用chunking(转化文件存储格式)、使用Dask…

山海鲸:助力企业实现内外数据整合与价值挖掘

作为山海鲸的开发者,我们深知数字化转型对于企业发展的重要性。在不断钻研如何提升山海鲸可视化这款免费产品的实用性同时,也在不断推出各行实用解决方案,本文将介绍山海鲸企业数字化转型发展解决方案,探讨如何通过数据驱动创新&a…

类和对象特性

#include<iostream> #include<string> using namespace std; class peron{ public:peron(string person){cout << "peron调用构造函数" << endl;tperson person;}~peron(){cout << "peron调用析构函数" << endl;}//手…

compose部署

目录 本章目标&#xff1a; 自定义网络数据库 正文&#xff1a; 注&#xff1a;创建两个网络mynet和mynetwork 1. 自定义网络-mynet 创建自定义网络&#xff1a; docker network create --subnet172.33.0.0/16 mynet 查看网络信息 docker network list 查看指定网络的详细信…

电脑提示“ureg.dll文件丢失”解决方法,ureg.dll文件下载修复安装教程

ureg.dll是Windows操作系统中的一个动态链接库文件&#xff0c;主要与Microsoft Office软件相关&#xff0c;它基本上是为了支持和启动与Office相关的程序和功能。 如果ureg.dll文件丢失或损坏&#xff0c;可能会导致与Microsoft Office相关的程序或功能无法正常工作。对于用户…

CSS中的width与height

CSS中的width与height 1 display: inline-block2 width: auto2.1 外部尺寸与流体特性2.1.1 正常流宽度2.1.2 格式化宽度 2.2 内部尺寸与流体特性2.2.1 包裹性2.2.2 首选最小宽度2.2.3 最大宽度 3 height: 100%3.1 如何让元素支持height: 100%效果 1 display: inline-block 我们…

基于振弦采集仪的地下工程振动监测技术研究

基于振弦采集仪的地下工程振动监测技术研究 地下工程振动监测技术是为了监测地下工程施工过程中产生的振动而进行的研究。振弦采集仪是一种常用的地下工程振动监测设备&#xff0c;它通过固定在地下工程附近的振弦仪来实时采集工程施工过程中产生的振动信号。 基于振弦采集仪的…

@Transactional注解导致@DS切换数据源失效

原因 spring 的Transactional声明式事务管理时通过动态代理实现的。 删除事物的注解 增加其他数据库的事务注解 Transactional(rollbackFor Exception.class, propagation Propagation.REQUIRES_NEW)