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

RAG

Answer

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合检索和生成能力的自然语言处理架构。

通用语言模型通过微调可完成常见任务,而更复杂和知识密集型任务可基于语言模型构建系统,访问外部知识源来实现。Meta AI 的研究人员引入了 RAG 来完成这类任务,它把信息检索组件和文本生成模型结合在一起,可微调且内部知识修改高效,无需重新训练整个模型。

RAG 会接受输入并检索相关支撑文档,给出来源(如维基百科),这些文档与原始提示词组合后送给文本生成器得到最终输出,能适应事实变化,让语言模型获取最新信息并生成可靠输出。

大语言模型(LLM)存在一些缺点,如无法记住所有知识(尤其是长尾知识)、知识容易过时且不好更新、输出难以解释和验证、容易泄露隐私训练数据、规模大导致训练和运行成本高。而 RAG 具有诸多优点,如数据库存储和更新稳定、数据更新敏捷且可解释、降低大模型输出出错可能、便于管控用户隐私数据、降低大模型训练成本。

在本地部署方面,可基于用户问题从向量数据库中检索相关段落,根据阈值过滤,让模型参考上下文信息回答问题来实现 RAG。通过创建网页 UI 并进行评测,如对多种模型进行测试,发现 GPT-4 表现最好,上下文数据质量和大模型性能决定 RAG 系统性能上限,RAG 能提升答案质量和相关性,但不能完全消除问题。

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

References

检索增强生成 (RAG)

通用语言模型通过微调就可以完成几类常见任务,比如分析情绪和识别命名实体。这些任务不需要额外的背景知识就可以完成。要完成更复杂和知识密集型的任务,可以基于语言模型构建一个系统,访问外部知识源来做到。这样的实现与事实更加一性,生成的答案更可靠,还有助于缓解“幻觉”问题。Meta AI的研究人员引入了一种叫做[检索增强生成(Retrieval Augmented Generation,RAG)(opens in a new tab)](https://ai.facebook.com/blog/retrieval-augmented-generation-streamlining-the-creation-of-intelligent-natural-language-processing-models/)的方法来完成这类知识密集型的任务。RAG把一个信息检索组件和文本生成模型结合在一起。RAG可以微调,其内部知识的修改方式很高效,不需要对整个模型进行重新训练。RAG会接受输入并检索出一组相关/支撑的文档,并给出文档的来源(例如维基百科)。这些文档作为上下文和输入的原始提示词组合,送给文本生成器得到最终的输出。这样RAG更加适应事实会随时间变化的情况。这非常有用,因为LLM的参数化知识是静态的。RAG让语言模型不用重新训练就能够获取最新的信息,基于检索生成产生可靠的输出。Lewis等人(2021)提出一个通用的RAG微调方法。这种方法使用预训练的seq2seq作为参数记忆,用维基百科的密集向量索引作为非参数记忆(使通过神经网络预训练的检索器访问)。这种方法工作原理概况如下:图片援引自:[Lewis et el.(2021)(opens in a new tab)](https://arxiv.org/pdf/2005.11401.pdf)

问: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.数据库维护起来,可以降低大模型的训练成本,毕竟新知识存储在数据库即可,不用频繁更新模型,尤其是不用因为知识的更新而训练模型。

本地部署资讯问答机器人:Langchain+Ollama+RSSHub 实现 RAG

基于用户的问题,从向量数据库中检索相关段落,并根据设定的阈值进行过滤,最后让模型参考上下文信息回答用户的问题,从而实现RAG。|创建网页UI最后,通过gradio创建网页UI,并进行评测。生成的Web UI如下:需要上述完整代码的读者,关注本公众号,然后发送fin,即可获取github仓库代码链接。问答测试对于同样的问题和上下文,我基于Qwen-7b、Gemma、Mistral、Mixtral和GPT-4分别进行了多次测试。下面是一些case:qwengemmamistralmixtralgpt4主要结论(只是针对有限的几次测试,个人主观评判)如下:👍GPT-4表现最好,指令遵循能力很强,在回答的时候能附上引用段落编号✌️Mixtral表现第二,但没有在回答的时候附上引用💪Qwen-7b表现第三,也没有在回答的时候附上引用😅Gemma表现一般,而且回答里面有一些幻觉😅Mistral表现一般,使用英文回复,不过在回答的时候附上了引用段落编号总结1.本文展示了如何使用Langchain和Ollama技术栈在本地部署一个资讯问答机器人,同时结合RSSHub来处理和提供资讯。2.上下文数据质量和大模型的性能决定了RAG系统性能的上限。3.RAG通过结合检索技术和生成模型来提升答案的质量和相关性,可以缓解大模型幻觉、信息滞后的问题,但并不意味着可以消除。

Others are asking
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
RAG是什么
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。 大模型需要 RAG 进行检索优化的原因在于其存在一些缺点: 1. LLM 无法记住所有知识,尤其是长尾知识,受限于训练数据和学习方式,对长尾知识的接受能力不高。 2. LLM 的知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。 3. LLM 的输出难以解释和验证,存在内容黑盒、不可控以及受幻觉干扰等问题。 4. LLM 容易泄露隐私训练数据。 5. LLM 的规模大,训练和运行成本高。 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,可解释且对原有知识无影响。 3. 数据库内容明确、结构化,加上模型的理解能力,能降低大模型输出出错的可能。 4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型的训练成本,新知识存储在数据库即可,无需频繁更新模型。 RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。其最常见应用场景是知识问答系统。 一个 RAG 的应用可抽象为 5 个过程: 1. 文档加载:从多种不同来源加载文档,LangChain 提供了 100 多种不同的文档加载器,包括 PDF 在内的非结构化数据、SQL 在内的结构化数据,以及 Python、Java 之类的代码等。 2. 文本分割:文本分割器把 Documents 切分为指定大小的块,称为“文档块”或者“文档片”。 3. 存储:涉及将切分好的文档块进行嵌入转换成向量的形式,并将 Embedding 后的向量数据存储到向量数据库。 4. 检索:通过某种检索算法找到与输入问题相似的嵌入片。 5. 输出:把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示一起来生成更加合理的答案。
2025-02-17
知识库RAG方案
RAG(检索增强生成)是一种在 AI 领域中用于处理知识库的方案。 大模型的训练数据有截止日期,当需要依靠不包含在大模型训练集中的数据时,RAG 是主要方法之一。 RAG 的应用可以抽象为以下 5 个过程: 1. 文档加载:从多种不同来源加载文档,如 PDF 等非结构化数据、SQL 等结构化数据以及代码等。 2. 文本分割:把文档切分为指定大小的块,称为“文档块”或“文档片”。 3. 存储:包括将切分好的文档块进行嵌入转换成向量形式,并将向量数据存储到向量数据库。 4. 检索:通过某种检索算法找到与输入问题相似的嵌入片。 5. 输出:把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示生成更合理的答案。 基于 Coze 的知识库问答是典型的 RAG 方案,其重要一环是文档切片。但 RAG 方案存在一些缺点,如跨分片总结和推理能力弱、文档有序性被打破、表格解析失败等。 相关的海外官方文档:https://www.coze.com/docs/zh_cn/knowledge.html ,国内官方文档:https://www.coze.cn/docs/guides/use_knowledge 。 在实际操作中,如使用外贸大师产品的帮助文档创建知识库时,要注意文档的分片策略会严重影响查询结果。
2025-02-16
知识库中是否有搭建在线RAG知识库的相关内容?
知识库中有搭建在线 RAG 知识库的相关内容。 RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型提供额外的、来自外部知识源的信息。 自顶向下,RAG 的流程分为离线数据处理和在线检索两个过程。离线数据处理的目的是构建知识库,知识按某种格式及排列方式存储在其中等待使用。在线检索是利用知识库和大模型进行查询的过程。 对于 RAG 来讲,检索的质量直接影响生成的结果,常见的检索方法有关键词检索和语义检索。关键词检索是最传统和基础的方法,基于查询词与文档中词语的精确或近似匹配,实现简单但难以处理同义词和上下文语义。语义检索将查询和文档映射到同一语义空间,通过计算向量相似度判断相关性,能捕捉深层语义但计算成本较高。 在构建知识库的流程中,在线检索各个流程的“是什么”与“为什么”同等重要。例如在检索环节,选择合适的检索方法或组合对系统性能至关重要。 大模型存在无法记住所有知识尤其是长尾知识、知识容易过时且不好更新、输出难以解释和验证、容易泄露隐私训练数据、规模大导致训练和运行成本高等缺点,而 RAG 具有数据库存储和更新稳定、数据更新敏捷且可解释、降低大模型输出出错可能、便于管控用户隐私数据、降低大模型训练成本等优点。
2025-02-14
RAG
RAG(RetrievalAugmented Generation,检索增强生成)是一种结合检索和生成能力的自然语言处理架构。 通用语言模型通过微调可完成常见任务,而更复杂和知识密集型任务可基于语言模型构建系统,访问外部知识源来实现。Meta AI 研究人员引入 RAG 来完成这类任务,它将信息检索组件和文本生成模型结合。 RAG 会接受输入并检索相关支撑文档,给出文档来源(如维基百科),这些文档与原始提示词组合后送给文本生成器得到最终输出,能适应事实随时间变化,让语言模型获取最新信息并生成可靠输出。 大语言模型(LLM)存在一些缺点,如无法记住所有知识(尤其是长尾知识)、知识容易过时且不好更新、输出难以解释和验证、容易泄露隐私训练数据、规模大导致训练和运行成本高。而 RAG 具有诸多优点,如数据库对数据的存储和更新稳定,数据更新敏捷且可解释,能降低大模型输出出错可能,便于管控用户隐私数据,降低大模型训练成本。 在本地部署资讯问答机器人方面,可基于用户问题从向量数据库中检索相关段落并过滤,让模型参考上下文信息回答,通过 gradio 创建网页 UI 并进行评测。测试表明,不同模型在回答表现上有所差异,上下文数据质量和大模型性能决定 RAG 系统性能上限,RAG 能提升答案质量和相关性,但不能完全消除问题。
2025-02-13