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

解释一下RAG

Answer

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

大模型存在一些缺点,如无法记住所有知识(尤其是长尾知识)、知识容易过时且不好更新、输出难以解释和验证、容易泄露隐私训练数据、规模大导致训练和运行成本高。而 RAG 具有诸多优点:

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

在实际应用中,如本地部署大模型以及搭建个人知识库时,利用大模型搭建知识库就是 RAG 技术的应用。RAG 的应用可抽象为文档加载、文本分割、存储(包括嵌入和向量数据存储)、检索、输出这 5 个过程。在产品视角下,RAG 常见应用于知识问答系统,其核心流程是根据用户提问从私有知识中检索相关内容,与提问一起提交给大模型生成回答。

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有一个大概的了解。以下内容会有些干,我会尽量用通俗易懂的描述进行讲解。我们都知道大模型的训练数据是有截止日期的,那当我们需要依靠不包含在大模型训练集中的数据时,我们该怎么做呢?实现这一点的主要方法就是通过检索增强生成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]文本加载器就是将用户提供的文本加载到内存中,便于进行后续的处理

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

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

Others are asking
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
RAG是什么
RAG(RetrievalAugmented 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 生成答案)。
2025-02-17
langchain 大白话解释一下给我听
LangChain 是一个用于构建高级语言模型应用程序的框架。它能简化开发人员使用语言模型构建端到端应用程序的流程,提供了一系列工具、组件和接口,让创建由大型语言模型和聊天模型支持的应用程序更轻松。 其核心概念包括组件和链,组件是模块化的构建块,可组合创建强大应用,链则是一系列组件或其他链的组合,用于完成特定任务。 主要特点有: 1. 模型抽象:提供对大型语言模型和聊天模型的抽象,方便开发人员选择合适模型并利用组件构建应用。 2. 提示模板和值:支持创建和管理提示模板,引导语言模型生成特定输出。 3. 链:允许开发人员定义一系列处理步骤,按顺序执行完成复杂任务。 4. 代理:支持构建代理,能使用语言模型做决策,并根据用户输入调用工具。 LangChain 支持多种用例,如针对特定文档的问答、聊天机器人、代理等,能与外部数据源交互收集数据,还提供内存功能维护状态。它旨在为开发人员提供强大工具集,构建适应性强、高效且能处理复杂用例的高级语言模型应用程序。
2025-02-08
帮我用最简单的方法解释一下时间序列模型
时间序列模型是用于分析和处理随时间变化的数据的一类模型。 例如,在评估 GPT4V 对时间序列和视频内容的理解时,会考虑其对现实世界中随时间展开的事件的理解能力,像时间预测、排序、定位、推理和基于时间的理解等。 在视频生成方面,如 Video LDM 模型,先训练图像生成器,再微调添加时间维度以生成视频。 总的来说,时间序列模型旨在理解和预测数据在时间上的变化规律和趋势。
2025-01-23
解释一下RAG
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。 大模型存在一些缺点,如无法记住所有知识(尤其是长尾知识)、知识容易过时且不好更新、输出难以解释和验证、容易泄露隐私训练数据、规模大导致训练和运行成本高。而 RAG 具有诸多优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,增删改查可解释,且对原有知识无影响。 3. 数据库内容明确、结构化,加上模型的理解能力,能降低大模型输出出错的可能。 4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型的训练成本。 在实际应用中,如本地部署大模型以及搭建个人知识库时,利用大模型搭建知识库就是 RAG 技术的应用。RAG 的应用可抽象为文档加载、文本分割、存储(包括嵌入和向量数据存储)、检索、输出这 5 个过程。在产品视角下,RAG 常见应用于知识问答系统,其核心流程是根据用户提问从私有知识中检索相关内容,与提问一起提交给大模型生成回答。
2025-01-16
请解释一下AI智能体的概念及功能
AI 智能体是指类似于 AI 机器人小助手的存在。简单理解,参照移动互联网,它类似 APP 应用的概念。AI 大模型是技术,而面向用户提供服务的产品形式就是智能体,所以很多公司关注 AI 应用层的产品机会。 在 C 端,比如社交方向,用户注册后先创建自己的智能体,然后让其与他人的智能体聊天,聊到一起后真人再介入,这是一种有趣的场景;还有借 Onlyfans 入局打造个性化聊天的创业公司。在 B 端,如果字节扣子和腾讯元器是面向普通人的低代码平台,类似 APP 时代的个人开发者,那还有帮助 B 端商家搭建智能体的机会,类似 APP 时代专业做 APP 的。 目前有不少大厂推出自己的 AI 智能体平台,如字节的扣子、阿里的魔搭社区等。AI 智能体拥有各项能力,能帮我们做特定的事情。它包含了自己的知识库、工作流,还可以调用外部工具,再结合大模型的自然语言理解能力,就可以完成比较复杂的工作。AI 智能体的出现是为了解决像 GPT 或者文心一言大模型存在的胡编乱造、时效性、无法满足个性化需求等问题,结合自身业务场景和需求,定制出适合自己的智能体来解决问题。 例如,扣子(Coze)是字节跳动旗下的新一代一站式 AI Bot 开发平台,无论用户是否具备编程基础,都能在该平台上迅速构建基于 AI 模型的各类问答 Bot,开发完成后还可将其发布到各种社交平台和通讯软件上供用户交互聊天。创建智能体通常包括起名称、写介绍、使用 AI 创建头像等简单步骤。
2024-12-17
帮我解释一下AI和人工智能、机器学习的关系
AI 即人工智能,是一个广泛的概念,旨在让计算机模拟人类智能。 机器学习是人工智能的一个重要分支。它指的是计算机通过寻找数据中的规律进行学习,包括监督学习、无监督学习和强化学习等方式。 监督学习使用有标签的训练数据,目标是学习输入和输出之间的映射关系,包括分类和回归任务。 无监督学习处理的数据没有标签,算法自主发现规律,经典任务如聚类。 强化学习则是从反馈中学习,以最大化奖励或最小化损失,类似于训练小狗。 深度学习是一种参照人脑神经网络和神经元的方法,由于具有很多层所以称为深度。神经网络可用于监督学习、无监督学习和强化学习。 生成式 AI 能够生成文本、图片、音频、视频等内容形式。 LLM 是大语言模型,对于生成式 AI ,生成图像的扩散模型不属于大语言模型;对于大语言模型,生成只是其中一个处理任务,如谷歌的 BERT 模型可用于语义理解,像上下文理解、情感分析、文本分类等,但不擅长文本生成。 2017 年 6 月,谷歌团队发表论文《Attention is All You Need》,首次提出了 Transformer 模型,它基于自注意力机制处理序列数据,比 RNN 更适合处理文本的长距离依赖性。
2024-10-15
帮我解释一下transformer
Transformer 的工作流程如下: 1. 输入嵌入(Input Embeddings):将每个单词映射为一个向量,例如将“ I ”映射为一个 512 维的向量。 2. 位置编码(Positional Encodings):由于 Transformer 没有能捕获序列顺序的结构,如递归或卷积,所以给每个词位置加上位置编码,让模型知晓词语的相对位置。 3. 编码器(Encoder):输入序列的嵌入向量和位置编码相加后被送入编码器层。编码器由多个相同的层组成,每层有两个核心部分,一是多头注意力机制(MultiHead Attention),用于捕捉单词间的依赖关系;二是前馈神经网络(FeedForward NN),对 attention 的结果进行进一步编码。 4. 解码器(Decoder):编码器的输出被送入解码器层。解码器同样由多个相同层组成,每层除了编码器组件外,还有一个额外的注意力模块,对编码器的输出序列建模依赖关系。 5. 输出嵌入(Output Embeddings):解码器最后一层的输出被映射为输出单词概率分布,例如生成“我”“是”等单词的概率。 6. 生成(Generation):基于概率分布,以贪婪或 beam search 等解码策略生成完整的输出序列。 注意力机制是 Transformer 最关键的创新,允许模型捕获长距离依赖关系。多头注意力可并行计算,因此高效。残差连接和层归一化有助于优化网络。整体上,Transformer 无递归和卷积结构,计算并行化程度高,更适合并行加速。 Transformer 是一个大参数(千亿级别)的回归方程,其底层是 function loss 损失函数。它是在一定 prompt condition 情况下,repeat 曾经出现过的数据内容,实现“生成”能力。回归方程的 Function loss 拟合 A to B mapping 关系,实现数据集的压缩与还原。 在公众传播层面,AIGC 指用 Stable Diffusion 或 Midjourney 生成图像内容,后来泛指用 AI 生成音乐、图像、视频等内容;LLM 指 NLP 领域的大语言模型,如 ChatGPT;GenAI 是生成式人工智能模型,国内官方政策文件使用这个词相对科学,涵盖了 LLM 和 AIGC;AGI 指通用人工智能。公众传播一般会混用上述名词,但底层是 Transformer 结构。 大语言模型是一个 perfect memory,repeat 曾经出现的内容。它与 Alpha Go 有差异,Alpha Go 是一个增强学习模型,学习结果会调整模型自身参数,有推理能力,但大语言模型在推理这块很弱。Transformer 决定 LLM 是一个生成式模型。
2024-10-12