Retrieval-Augmented Generation for Large Language Models: A Survey论文阅读

本文主要是介绍Retrieval-Augmented Generation for Large Language Models: A Survey论文阅读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文:https://arxiv.org/pdf/2312.10997.pdf
github:https://github.com/Tongji-KGLLM/
RAG-Survey

在这里插入图片描述

简介

大语言模型常常制造虚假事实,在处理特定领域或高度专业化的查询时缺乏知识。例如,当所需信息超出模型训练数据的范围或需要最新数据时,LLM可能无法提供准确的答案。这一限制在将生成型人工智能部署到现实世界的生产环境中构成挑战,可能不够盲目使用黑盒LLM。

  1. 神经网络通过微调模型以参数化知识来适应特定领域或专有信息。虽然这种技术取得了显著成果,但它需要大量的计算资源,成本高昂,并需要专业的技术专长,使其适应性较差。参数化知识和非参数化知识发挥着不同的作用。参数化知识通过训练LLMs获得,并存储在神经网络权重中,代表了模型对训练数据的理解和概括,构成生成回应的基础。另一方面,非参数化知识存在于外部知识源中,如向量数据库,不直接编码到模型中,而是作为可更新的补充信息。非参数化知识使LLMs能够访问和利用最新或特定领域的信息,提高回应的准确性和相关性。

  2. 纯参数化的语言模型(LLMs)将从大量语料库中获得的世界知识存储在模型的参数中。然而,这类模型存在局限性。首先,难以保留训练语料中的所有知识,尤其是较不常见和更具体的知识。其次,由于模型参数无法动态更新,参数化知识随时间容易过时。最后,参数的扩展导致训练和推理的计算开销增加。为了解决纯参数化模型的限制,语言模型可以采用半参数化方法,通过将非参数化语料库数据库与参数化模型整合。这种方法被称为检索增强生成(RAG)

检索增强生成(RAG)这一术语最初由[Lewis et al., 2020]引入。它结合了预训练的检索器和预训练的seq2seq模型(生成器),并进行端到端微调,以更可解释和模块化的方式捕获知识。在大型模型出现之前,RAG主要专注于端到端模型的直接优化。检索方面常见的做法是密集检索,如使用基于向量的密集通道检索(DPR),以及在生成方面训练较小的模型。由于整体参数规模较小,检索器和生成器通常会进行同步的端到端训练或微调。

LLMs仍面临幻觉、知识更新和数据相关问题。将RAG引入大型模型的上下文学习(ICL)中可以缓解上述问题,具有显著且易于实现的效果。在推理过程中,RAG动态地从外部知识源检索信息,使用检索到的数据作为参考来组织答案。这显著提高了回应的准确性和相关性,有效解决了LLMs中存在的幻觉问题。这种技术在LLM问世后迅速受到关注,已成为改善聊天机器人和使LLM更实用的最热门技术之一。通过将事实知识与LLMs的训练参数分离,RAG巧妙地结合了生成模型的强大能力和检索模块的灵活性,为纯参数化模型固有的知识不完整和不足问题提供了有效的解决方案。

RAG发展脉络图
在这里插入图片描述

RAG的两个关键阶段:

  1. **检索阶段:**在这个阶段,系统会根据用户的问题或查询,从大量的文本文档或知识库中检索出与之相关的信息或上下文。这个过程通常涉及使用信息检索模型如BM25、DPR等来计算查询和文档之间的相似度,然后返回最相关的文档片段。
  2. **生成阶段:**在这个阶段,系统会利用检索到的相关文档作为上下文,驱动LLM生成回答。

RAG优势:

  • RAG通过将答案与外部知识相关联来提高准确性**减少语言模型中的幻觉问题,**并使生成的回答更加准确可靠。
  • 使用检索技术可以识别最新的信息。与传统相比语言模型完全依赖于训练数据,RAG保持了响应的及时性和准确性。
  • 透明度是RAG的一个优势。通过引用来源,用户可以验证答案的准确性,从而增加对模型输出的信任。
  • RAG具有定制功能。通过索引相关的文本语料库,可以针对不同的领域定制模型,为特定领域提供知识支持。
  • 在安全和隐私管理方面,RAG凭借其在数据库中内置的角色和安全控制,可以更好地控制数据使用。相比之下,微调后的模型可能缺乏对谁可以访问哪些数据的明确管理。
  • RAG的可扩展性更强。它可以处理大规模数据集而无需更新所有参数和创建训练集,从而提高了经济效率。
  • RAG产生的结果更值得信赖。RAG从最新数据中选择确定性结果,而微调模型在处理动态数据时可能会出现幻觉和不准确,缺乏透明度和可信度。

RAG和Finetune对比:

在这里插入图片描述

RAG技术

数据索引

索引构建

数据索引的目标是将原始的文本数据转换为可以快速检索的格式。这通常涉及以下步骤:

  • 数据清洗:去除文本中无关的信息,如特殊字符、HTML标签等。
  • 分块:将清洗后的文本划分为较小的文本块。因为语言模型通常有处理文本长度的限制,所以需要将长文本切分为多个小文本块。
  • 嵌入和索引:使用语言模型将文本块编码为向量表示,然后建立索引,将文本块和对应的向量存储为键值对,以便快速检索。

优化索引

  • 增加数据粒度:可以对嵌入向量进行聚类,划分为更细粒度的索引,提高检索的精度。
  • 优化索引结构:调整分块大小,使用多路径索引,引入图结构等,都可以优化索引的效果。
  • 添加元数据:在索引中添加文本的元数据如章节、时间等信息,有助于提高检索的效率。
  • 嵌入向量的优化:可以对嵌入向量进行降维、聚类等处理,以减少计算量。

检索

检索在索引构建好后,就可以使用查询文本得到向量,通过计算与索引中向量的相似度来进行检索,找到最相关的文本块。这个阶段也可以应用一些优化技术如重排序、重新检索等。

后处理

检索到的文本块可能需要进一步处理,如去除冗余、提高可读性等,才能用于后续的生成阶段。总体来说,索引构建是RAG中的重要环节,直接影响到检索效果,需要针对具体任务和数据进行多方面的优化。

这篇关于Retrieval-Augmented Generation for Large Language Models: A Survey论文阅读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051572

相关文章

shader language学习(1)——shader language简介背景

shader language,称为着色语言,shade在英语是阴影、颜色深浅的意思。shader language基于物体本身属性和光照条件,计算美格橡塑的颜色值。 实际上这种解释具有明显的时代局限性,在GPU编程发展的早期,shader language的提出目标是加强对图形处理算法的控制,所以对该语言的定义也针对于此。但随着技术的进步,目前的shader language早已经用于通用计算

Retrieval-Augmented Generation for Large Language Models A Survey

Retrieval-Augmented Generation for Large Language Models: A Survey 文献综述 文章目录 Retrieval-Augmented Generation for Large Language Models: A Survey 文献综述 Abstract背景介绍 RAG概述原始RAG先进RAG预检索过程后检索过程 模块化RAGMo

ssh在本地虚拟机中的应用——解决虚拟机中编写和阅读代码不方便问题的一个小技巧

虚拟机中编程小技巧分享——ssh的使用 事情的起因是这样的:前几天一位工程师过来我这边,他看到我在主机和虚拟机运行了两个vscode环境,不经意间提了句:“这么艰苦的环境写代码啊”。 后来我一想:确实。 我长时间以来都是直接在虚拟机里写的代码,但是毕竟是虚拟机嘛,有时候编辑器没那么流畅,在文件比较多的时候跳转很麻烦,容易卡住。因此,我当晚简单思考了一下,想到了一个可行的解决方法——即用ssh

康奈尔大学之论文审稿模型Reviewer2及我司七月对其的实现(含PeerRead)

前言 自从我司于23年7月开始涉足论文审稿领域之后「截止到24年6月份,我司的七月论文审稿GPT已经迭代到了第五版,详见此文的8.1 七月论文审稿GPT(从第1版到第5版)」,在业界的影响力越来越大,所以身边朋友如发现业界有相似的工作,一般都会第一时间发给我,比如本部分要介绍的康奈尔大学的reviewer2 当然,我自己也会各种看类似工作的论文,毕竟同行之间的工作一定会互相借鉴的,我们会学他们

芯片后端之 PT 使用 report_timing 产生报告如何阅读

今天,就PT常用的命令,做一个介绍,希望对大家以后的工作,起到帮助作用。 在PrimeTime中,使用report_timing -delay max命令生成此报告。switch -delay max表示定时报告用于设置(这是默认值)。 首先,我们整体看一下通过report_timing 运行之后,报告产生的整体样式。 pt_shell> report_timing -from start_

【论文精读】分类扩散模型:重振密度比估计(Revitalizing Density Ratio Estimation)

文章目录 一、文章概览(一)问题的提出(二)文章工作 二、理论背景(一)密度比估计DRE(二)去噪扩散模型 三、方法(一)推导分类和去噪之间的关系(二)组合训练方法(三)一步精确的似然计算 四、实验(一)使用两种损失对于实现最佳分类器的重要性(二)去噪结果、图像质量和负对数似然 论文:Classification Diffusion Models: Revitalizing

【python】python葡萄酒国家分布情况数据分析pyecharts可视化(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 python葡萄酒国家分布情况数据分析pyecharts可视化(源码+数据集+论文)【独一无二】 目录 python葡

论文阅读--Efficient Hybrid Zoom using Camera Fusion on Mobile Phones

这是谷歌影像团队 2023 年发表在 Siggraph Asia 上的一篇文章,主要介绍的是利用多摄融合的思路进行变焦。 单反相机因为卓越的硬件性能,可以非常方便的实现光学变焦。不过目前的智能手机,受制于物理空间的限制,还不能做到像单反一样的光学变焦。目前主流的智能手机,都是采用多摄的设计,一般来说一个主摄搭配一个长焦,为了实现主摄与长焦之间的变焦,目前都是采用数字变焦的方式,数字变焦相比于光学

【LLM之KG】CoK论文阅读笔记

研究背景 大规模语言模型(LLMs)在许多自然语言处理(NLP)任务中取得了显著进展,特别是在零样本/少样本学习(In-Context Learning, ICL)方面。ICL不需要更新模型参数,只需利用几个标注示例就可以生成预测。然而,现有的ICL和链式思维(Chain-of-Thought, CoT)方法在复杂推理任务上仍存在生成的推理链常常伴随错误的问题,导致不真实和不可靠的推理结果。

【python】python基于akshare企业财务数据对比分析可视化(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 系列文章目录 目录 系列文章目录一、设计要求二、设计思路三、可视化分析 一、设计要求 选取中铁和贵州茅