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

rag

Answer

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

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

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

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

在 RAG 系统开发中存在 12 大痛点及相应解决方案,包括原论文中的 7 个和额外发现的 5 个。

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

RAG 系统开发中的 12 大痛点及解决方案

我们研究了在开发检索增强生成(RAG)系统时遇到的12个主要难题(包括原论文中的7个和我们额外发现的5个),并提出了针对每个难题的解决策略。以下图表改编自原始论文《开发检索增强生成系统时的七个常见挑战》中的图表,详见下方链接。图示改编自《开发检索增强生成系统时的七个常见挑战》。通过将这12个挑战及其建议的解决方法并列在一张表中,我们现在可以更直观地理解这些问题及其对策:论文《开发检索增强生成系统时的七个常见挑战》中提到的问题标有星号。尽管这份列表并不完整,但旨在向我们展示设计和实施RAG系统时面临的复杂挑战。我希望通过这份摘要,能够帮助读者更深入地理解这一领域,并激发开发更为强大且适用于生产环境的RAG应用的兴趣。祝编程愉快![heading3]

Others are asking
rag
RAG(RetrievalAugmented Generation,检索增强生成)是一种结合检索和生成能力的自然语言处理架构。 通用语言模型通过微调可完成常见任务,而更复杂和知识密集型任务可基于语言模型构建系统,访问外部知识源来完成,如 Meta AI 引入的 RAG 方法。RAG 把信息检索组件和文本生成模型结合,可微调,内部知识修改高效,无需重新训练整个模型。它会接受输入并检索相关支撑文档,给出来源,与原始提示词组合后送给文本生成器得到输出,能适应事实变化,让语言模型获取最新信息并生成可靠输出。 大语言模型(LLM)存在一些缺点,如无法记住所有知识尤其是长尾知识、知识易过时且不好更新、输出难以解释和验证、易泄露隐私训练数据、规模大导致训练和运行成本高。而 RAG 具有诸多优点,如数据库存储和更新稳定且无学习风险、数据更新敏捷且不影响原有知识、降低大模型输出出错可能、便于管控用户隐私数据、降低大模型训练成本。 在 RAG 系统开发中存在 12 个主要难题,并已有相应的解决策略。
2025-04-15
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-04-14
详细讲解一下ragflow框架,同时对比一下ragflow与常规知识库有什么优势,在graphrag的实现方面ragflow又是怎么做的?
RAG(检索增强生成)是一种有效的解决方案,下面为您详细讲解: RAG 工作流程: 1. 检索(Retrieval):如同在图书馆中,系统会从知识库或文档集合中找出与用户问题相关的内容。 2. 增强(Augmented):对检索到的信息进行筛选和优化,挑出最相关和有用的部分。 3. 生成(Generation):将整合的信息生成自然流畅、易于理解的回答。 RAG 类似于一个超级智能的图书馆员,综合起来: 1. 检索:从庞大知识库中找到相关信息。 2. 增强:筛选优化确保找到最相关部分。 3. 生成:整合信息给出连贯回答。 RAG 的优势: 1. 成本效益:相比训练和维护大型专有模型,实现成本更低。 2. 灵活性:能利用多种数据源,包括结构化和非结构化数据,迅速适应不同领域和变化的数据。 3. 可扩展性:随时增加或更新知识库内容,无需重新训练模型。 RAG 与常规知识库的对比优势: 常规知识库可能存在知识更新不及时、数据来源单一等问题。而 RAG 能够从多种数据源获取信息,并且可以根据用户的实时需求进行检索和优化,生成更贴合需求的回答。 在 GraphRAG 的实现方面,目前提供的内容中未明确提及相关具体实现方式。 同时需要注意的是,RAG 也存在一些缺点,比如相比于专有模型的方案,回答准确性可能不够。
2025-03-28
我想搭建个人rag知识库,实现本地化部署,可以调用本地大模型去分析知识库的内容进行解答
以下是搭建个人 rag 知识库并实现本地化部署,调用本地大模型分析知识库内容进行解答的详细步骤: 一、通过 Open WebUI 使用大模型 1. 访问相关网址,使用邮箱注册账号。 2. 登陆成功后,Open WebUI 一般有两种使用方式,包括聊天对话和 RAG 能力(让模型根据文档内容回答问题,这是构建知识库的基础之一)。 3. 如果要求不高,此时已搭建本地大模型,并通过 Web UI 实现与大模型对话。ChatGPT 访问速度快且回答效果好的原因在于其服务器配置高、训练参数多、数据更优及训练算法更好。 二、本地知识库进阶 1. 若要更灵活掌控知识库,需使用额外软件 AnythingLLM,其包含 Open WebUI 的所有能力,并额外支持选择文本嵌入模型和向量数据库。 2. 安装地址:https://useanything.com/download 。安装完成后进入配置页面,主要分为三步:选择大模型、选择文本嵌入模型、选择向量数据库。 3. 在 AnythingLLM 中有 Workspace 的概念,可创建独有 Workspace 与其他项目数据隔离。首先创建工作空间,然后上传文档并在工作空间中进行文本嵌入,选择对话模式(包括 Chat 模式和 Query 模式),最后进行测试对话。 三、RAG 是什么 利用大模型搭建知识库是 RAG 技术的应用。在进行本地知识库搭建实操前,需对 RAG 有大概了解。RAG 应用可抽象为 5 个过程: 1. 文档加载:从多种来源加载文档,LangChain 提供 100 多种不同的文档加载器,包括非结构化、结构化数据及代码等。 2. 文本分割:文本分割器把 Documents 切分为指定大小的块,称为“文档块”或“文档片”。 3. 存储:涉及将切分好的文档块嵌入转换成向量形式,并将向量数据存储到向量数据库。 4. 检索:通过检索算法找到与输入问题相似的嵌入片。 5. 输出:把问题及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示生成更合理的答案。 文本加载器是将用户提供的文本加载到内存中,便于后续处理。
2025-03-25
请推荐一份学习rag的资料
以下是为您推荐的学习 RAG(RetrievalAugmented Generation,检索增强生成)的资料: 1. 《RetrievalAugmented Generation for Large Language Models:A Survey》(https://arxiv.org/pdf/2312.10997.pdf),该资料对 RAG 进行了较为全面的介绍和分析。 2. 关于新知识的学习,您可以参考“胎教级教程:万字长文带你理解 RAG 全流程”。其中提到可以通过 Claude 帮助了解细节概念,然后再通过 Coze 搭建 Demo 来实践学习。还不知道 Coze 是什么的同学可以看公开分享: 。 3. 了解“RAG 是什么?”:RAG 是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型提供额外的、来自外部知识源的信息。通过检索模式为大语言模型的生成提供帮助,使生成的答案更符合要求。同时,还介绍了大模型存在的缺点以及 RAG 的优点,如数据库对数据存储和更新稳定、敏捷、可解释等。 希望这些资料对您学习 RAG 有所帮助。
2025-03-25
ragflow
RAGflow 能力拆解: 文档拆分方式: 通用模式:主要参考每个块的 token 数量,同时考虑语意完整性,切分段落点通常在句号或叹号等完整句子结束处。拆分结果和 langchain 的拆分大同小异。 Q&A 问答对:将左边内容加上“问题:”,右边内容加上“回答:”,数据清洗工作量大。 简历:解析容易失败,需要匹配关键词才能解析,建议官方给出简历模板。 手册:一整段文字提取,分割处在页面分页、段落分段处,块大小通常较大。 表格:拆分后每一行被当成一个块,第一行表头插入到每一块头部。对没有特殊字符的表格信息处理较好,对图片内的公式做了 OCR 检测。 数据清洗:RAGflow 提供分段后的数据处理,可自行添加、修改数据或添加标签。测试发现,RAGflow 召回会同时使用向量相似度和关键词相似度并加权得到混合相似度,关键词相似度不仅匹配文本段内容还匹配关键词标签内容,单个实体在关键词中出现即为 100%。但需注意,检索获得的内容块需同时包含“问题信息”和“答案信息”,大模型才能解答。此外,RAGflow 没提供对外接口,做聊天或其他应用时不方便。 大模型 RAG 问答行业最佳案例及微调、推理双阶段实现模式:基于模块化RAG 的相关工作,本文将从典型的 RAG Flow 模式、特定的 RAG 流实现以及最佳的行业案例三个方面深入探讨 RAG Flow 的设计思路,在典型的 RAG Flow 模式方面,将介绍 3 种微调阶段模式和 4 种推理阶段模式。
2025-03-19