Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

RAG是什么

Answer

RAG(Retrieval-Augmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。

大模型需要 RAG 进行检索优化,是因为 LLM 存在一些缺点:

  1. LLM 无法记住所有知识,尤其是长尾知识,受限于训练数据和学习方式,对长尾知识的接受能力不高。
  2. LLM 的知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。
  3. LLM 的输出难以解释和验证,存在内容黑盒、不可控以及受幻觉干扰等问题。
  4. LLM 容易泄露隐私训练数据。
  5. LLM 的规模大,训练和运行成本高。

RAG 具有以下优点:

  1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。
  2. 数据库的数据更新敏捷,可解释且对原有知识无影响。
  3. 数据库内容明确、结构化,加上模型的理解能力,能降低大模型输出出错的可能。
  4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。
  5. 数据库维护可降低大模型的训练成本,新知识存储在数据库即可,无需频繁更新模型。

RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。其最常见应用场景是知识问答系统。

在 RAG 的应用中,可以将其抽象为 5 个过程:文档加载、文本分割、存储(包括将文档块嵌入转换成向量形式并存储到向量数据库)、检索、输出(把问题以及检索出来的嵌入片一起提交给 LLM 生成答案)。

Content generated by AI large model, please carefully verify (powered by aily)

References

问:RAG 是什么?

RAG(Retrieval-Augmented Generation),即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,它旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。简单来说,就是通过检索的模式,为大语言模型的生成提供帮助,从而使大模型生成的答案更符合要求。[heading2]为什么LLM需要RAG?[content]众所周知,大模型已经在很多领域和问题下都取得了很好的效果,那为什么还需要RAG进行检索优化呢?[heading3]LLM的缺点[content]1.LLM无法记住所有知识,尤其是长尾的。受限于训练数据、现有的学习方式,对长尾知识的接受能力并不是很高;长尾数据是指数据集中某些类别数量较少,而其他类别样本数较多的不平衡“长尾”状态。例如在自然语言处理中,一些少见的词汇出现频率很低,而常见的词汇出现频率很高。2.LLM的知识容易过时,而且不好更新。只是通过微调,模型的接受能力其实并不高而且很慢,甚至有丢失原有知识的风险;3.LLM的输出难以解释和验证。一方面最终的输出的内容黑盒且不可控,另一方面最终的结果输出可能会受到幻觉之类的问题的干扰;4.LLM容易泄露隐私训练数据。用用户个人信息训练模型,会让模型可以通过诱导泄露用户的隐私;5.LLM的规模大,训练和运行的成本都很大。[heading3]RAG的优点[content]1.数据库对数据的存储和更新是稳定的,不像模型会存在学不会的风险。2.数据库的数据更新可以做得很敏捷,增删改查可解释,而且对原有的知识不会有影响。3.数据库的内容是明确、结构化的,加上模型本身的理解能力,一般而言数据库中的内容以及检索算法不出错,大模型的输出出错的可能就大大降低。4.知识库中存储用户数据,为用户隐私数据的管控带来很大的便利,而且可控、稳定、准确。5.数据库维护起来,可以降低大模型的训练成本,毕竟新知识存储在数据库即可,不用频繁更新模型,尤其是不用因为知识的更新而训练模型。

RAG性能提升策略和评估方法(产品视角)

作者:牛大局原文:[RAG性能提升策略和评估方法(产品视角)](https://iac2rhlh02p.feishu.cn/wiki/WL4Lwx5dyigl4zkZQojc7esQnWf)[heading1]一、前言[content]相信经过一年的知识沉淀,RAG是什么大家都不陌生了。RAG是检索增强生成(Retrieval-Augmented Generation)的缩写,它是一种结合了检索模型和生成模型的技术。其核心目的是通过某种途径把知识告诉给AI大模型,让大模型“知道”我们的私有知识,变得越来越“懂”我们。RAG的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。RAG的最常见应用场景知识问答系统:RAG可以用于构建问答系统,用户提出问题,RAG模型从大规模的文档集合中检索相关的文档,然后生成回答。

手把手教你本地部署大模型以及搭建个人知识库

因为利用大模型的能力搭建知识库本身就是一个RAG技术的应用。所以在进行本地知识库的搭建实操之前,我们需要先对RAG有一个大概的了解。以下内容会有些干,我会尽量用通俗易懂的描述进行讲解。我们都知道大模型的训练数据是有截止日期的,那当我们需要依靠不包含在大模型训练集中的数据时,我们该怎么做呢?实现这一点的主要方法就是通过检索增强生成RAG(Retrieval Augmented Generation)。在这个过程中,首先检索外部数据,然后在生成步骤中将这些数据传递给LLM。我们可以将一个RAG的应用抽象为下图的5个过程:文档加载(Document Loading):从多种不同来源加载文档。LangChain提供了100多种不同的文档加载器,包括PDF在内的非结构化的数据、SQL在内的结构化的数据,以及Python、Java之类的代码等文本分割(Splitting):文本分割器把Documents切分为指定大小的块,我把它们称为“文档块”或者“文档片”存储(Storage):存储涉及到两个环节,分别是:将切分好的文档块进行嵌入(Embedding)转换成向量的形式将Embedding后的向量数据存储到向量数据库检索(Retrieval):一旦数据进入向量数据库,我们仍然需要将数据检索出来,我们会通过某种检索算法找到与输入问题相似的嵌入片Output(输出):把问题以及检索出来的嵌入片一起提交给LLM,LLM会通过问题和检索出来的提示一起来生成更加合理的答案[heading2]文本加载器(Document Loaders)[content]文本加载器就是将用户提供的文本加载到内存中,便于进行后续的处理

Others are asking
RAG和微调是什么,分别详细讲讲一下它是怎么实现的
RAG(RetrievalAugmented Generation,检索增强生成)是解决大语言模型在实际应用中存在的一些问题的有效方案。 大语言模型存在以下问题: 1. 知识的局限性:模型自身的知识完全源于训练数据,对于实时性、非公开或离线的数据无法获取。 2. 幻觉问题:基于数学概率的文字预测导致可能提供虚假、过时或通用的信息。 3. 数据安全性:企业担心私域数据上传第三方平台训练导致泄露。 RAG 可以让大语言模型从权威的、预先确定的知识来源中检索、组织相关信息,更好地控制生成的文本输出,用户也能深入了解模型如何生成最终结果。它类似于为模型提供教科书,适用于回答特定询问或解决特定信息检索任务,但不适合教模型理解广泛领域或学习新的语言、格式或样式。 微调类似于让学生通过广泛学习内化知识。这种方法在模型需要复制特定结构、样式或格式时非常有用。微调可以提高非微调模型的性能,使交互更有效率,特别适合强调基础模型中的现有知识,修改或自定义模型的输出,并向模型提供复杂的指令。然而,微调不适合合并模型中的新知识或需要新用例的快速迭代。 参考资料:《RetrievalAugmented Generation for Large Language Models:A Survey》(https://arxiv.org/pdf/2312.10997.pdf)
2025-02-19
rag
RAG(RetrievalAugmented Generation,检索增强生成)是一种结合检索和生成能力的自然语言处理架构。 通用语言模型通过微调可完成常见任务,而更复杂和知识密集型任务可基于语言模型构建系统,访问外部知识源来实现。Meta AI 引入 RAG 来完成这类任务,它把信息检索组件和文本生成模型结合,可微调且内部知识修改高效,无需重新训练整个模型。 RAG 接受输入并检索相关支撑文档,给出来源,与原始提示词组合后送给文本生成器得到输出,能适应事实变化,让语言模型获取最新信息并生成可靠输出。 大语言模型(LLM)存在一些缺点,如无法记住所有知识尤其是长尾知识、知识易过时且不好更新、输出难以解释和验证、易泄露隐私训练数据、规模大导致训练和运行成本高。而 RAG 具有数据库存储和更新稳定、数据更新敏捷且不影响原有知识、降低大模型输出出错可能、便于管控用户隐私数据、降低大模型训练成本等优点。 在 RAG 系统开发中存在 12 大痛点及相应的解决方案,旨在帮助理解设计和实施 RAG 系统面临的复杂挑战,激发开发更强大且适用于生产环境的 RAG 应用。
2025-02-18
有什么提升 RAG 知识库问答的好的 prompt
以下是一些提升 RAG 知识库问答的好的 prompt 相关内容: RAG 在 Natural Questions、WebQuestions 和 CuratedTrec 等基准测试中表现出色,在使用 MSMARCO 和 Jeopardy 问题进行测试时,生成的答案更符合事实、具体且多样,FEVER 事实验证使用 RAG 后也有更好结果,说明 RAG 是可行方案,能增强知识密集型任务中语言模型的输出,基于检索器的方法常与 ChatGPT 等流行 LLM 结合提高能力和事实一致性,可在 LangChain 文档中找到相关例子。 RAG 能显著提高大模型在处理私域知识或垂直领域问答时的效果。其流程包括:上传文档(支持多种格式,会转换为 Markdown 格式)、文本切割、文本向量化(存入向量数据库)、问句向量化、语义检索匹配(匹配出与问句向量最相似的 top k 个)、提交 Prompt 至 LLM、生成回答返回给用户。RAG 研究范式分为基础 RAG、高级 RAG 和模块化 RAG。 高级 RAG 特点:支持多模态数据处理,增强对话性,具备自适应检索策略,能进行知识融合,扩展了基础 RAG 功能,解决复杂任务局限,在广泛应用中表现出色,推动自然语言处理和人工智能发展。 模块化 RAG 侧重于提供更高定制性和灵活性,将系统拆分成多个独立模块或组件,每个组件负责特定功能,便于根据不同需求灵活组合和定制。
2025-02-18
大语言模型、多模态、数据、算力、算法、预训练、微调、RAG、自注意力机制、transformer、token、神经网络、向量、scaling law这些内容的含义
以下是对您所提到的这些内容含义的解释: 大语言模型:是一种基于大量文本数据进行训练的语言处理模型,其工作原理包括训练数据、算力、模型参数等。在训练数据一致的情况下,模型参数越大能力越强。 多模态:指能够处理多种不同类型的数据模态,如文本、图像、音频等,并将它们融合进行理解和生成。 数据:是大语言模型训练和应用的基础,包括各种文本、图像、音频等信息。 算力:指用于支持大语言模型训练和运行的计算能力。 算法:是大语言模型实现各种功能的数学和逻辑方法。 预训练:在大语言模型中,先在大规模数据上进行无特定任务的初步训练。 微调:基于通用大模型,针对特定领域任务提供数据进行学习和调整,以适应特定领域的需求。 RAG:检索增强生成,通过引用外部数据源为模型做数据补充,适用于动态知识更新需求高的任务。其工作流程包括检索、数据库索引、数据索引、分块、嵌入和创建索引、增强、生成等步骤。 自注意力机制:是 Transformer 架构中的重要部分,能理解上下文和文本关联,通过不断检索和匹配来寻找依赖关系,处理词和词之间的位置组合,预测下一个词的概率。 Transformer:是大语言模型训练架构,用于翻译等任务,具备自注意力机制。 Token:在自然语言处理中,是文本的基本单位。 神经网络:是大语言模型的基础架构,模拟人脑神经元的连接和信息处理方式。 向量:在大语言模型中,用于表示文本等数据的数学形式。 Scaling Law:关于大语言模型规模和性能之间关系的规律。
2025-02-18
大语言模型、多模态、数据、算力、算法、预训练、微调、RAG、自注意力机制、transformer、token、神经网络、向量、scaling law这些内容的含义
以下是对您所提到的这些内容含义的解释: 大语言模型:是一种基于大量文本数据进行训练的语言处理模型,其工作原理包括训练数据、算力、模型参数等。在训练数据一致的情况下,模型参数越大能力越强。 多模态:指能够处理多种不同类型的数据模态,如文本、图像、音频等,并将它们融合进行理解和生成。 数据:是大语言模型训练和应用的基础,包括各种文本、图像、音频等信息。 算力:指用于支持大语言模型训练和运行的计算能力。 算法:是大语言模型实现各种功能的数学和逻辑方法。 预训练:在大语言模型中,先在大规模数据上进行无特定任务的初步训练。 微调:基于通用大模型,针对特定领域任务提供数据进行学习和调整,以适应特定领域的需求。 RAG:检索增强生成,通过引用外部数据源为模型做数据补充,适用于动态知识更新需求高的任务。其工作流程包括检索、数据库索引、数据索引、分块、嵌入和创建索引、增强、生成等步骤。 自注意力机制:是 Transformer 架构中的重要部分,能理解上下文和文本关联,通过不断检索和匹配来寻找依赖关系,处理词和词之间的位置组合,预测下一个词的概率。 Transformer:是大语言模型训练架构,用于翻译等任务,具备自注意力机制。 Token:在自然语言处理中,是文本的基本单位。 神经网络:是大语言模型的基础架构,模拟人脑神经元的连接和信息处理方式。 向量:在大语言模型中,用于表示文本等数据的数学形式。 Scaling Law:关于大语言模型规模和性能之间关系的规律。
2025-02-18
rag
RAG(RetrievalAugmented Generation,检索增强生成)是一种结合检索和生成能力的自然语言处理架构。 通用语言模型通过微调可完成常见任务,而更复杂和知识密集型任务可基于语言模型构建系统,访问外部知识源来实现。Meta AI 引入 RAG 来完成这类任务,它把信息检索组件和文本生成模型结合,可微调且内部知识修改高效,无需重新训练整个模型。 RAG 接受输入并检索相关/支撑文档,给出来源(如维基百科),这些文档作为上下文和原始提示词组合给文本生成器得到最终输出,能适应事实随时间变化,让语言模型获取最新信息并生成可靠输出。 大语言模型(LLM)存在一些缺点,如无法记住所有知识(尤其是长尾知识)、知识容易过时且不好更新、输出难以解释和验证、容易泄露隐私训练数据、规模大导致训练和运行成本高。而 RAG 具有以下优点:数据库对数据的存储和更新稳定,无学习风险;数据更新敏捷,可解释且不影响原有知识;降低大模型输出出错可能;便于管控用户隐私数据;降低大模型训练成本。 在 RAG 系统开发中存在 12 大痛点及相应解决方案,包括原论文中的 7 个和额外发现的 5 个。
2025-02-17