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

rag

Answer

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

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

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

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

在 RAG 系统开发中存在 12 大痛点及相应的解决方案,旨在帮助理解设计和实施 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.数据库维护起来,可以降低大模型的训练成本,毕竟新知识存储在数据库即可,不用频繁更新模型,尤其是不用因为知识的更新而训练模型。

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

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

Others are asking
RAG的原理是啥
RAG(RetrievalAugmented Generation,检索增强生成)是一种结合检索和生成能力的自然语言处理架构,其原理如下: 对于大语言模型(LLM),RAG 的作用类似于开卷考试对学生的作用。在开卷考试中,学生可借助参考资料查找解答问题的相关信息,重点考察推理能力而非记忆能力。同样,在 RAG 中,事实性知识与 LLM 的推理能力相分离,被存储在易于访问和及时更新的外部知识源中,包括参数化知识(模型在训练中学习得到,隐式存储在神经网络权重中)和非参数化知识(存储在外部知识源,如向量数据库中)。 回顾 LLM 的原理,是将互联网文献材料降维到 latent space 中,并通过 transformer 方式学习其中的“经验”。但固定文献资料可能导致无法回答某些问题,RAG 的出现解决了这一问题,它允许模型到搜索引擎上搜索问题相关资料,并结合自身知识体系综合回复。 RAG 中的“检索”环节并非简单操作,涉及传统搜索的逻辑,如对输入问题的纠错、补充、拆分,以及对搜索内容的权重逻辑等。例如,对于“中国界世杯夺冠那年的啤酒销量如何”的问题,会先纠错为“中国世界杯夺冠那年的啤酒销量如何”,然后拆分为两个问题进行综合搜索,再将搜索到的资料提供给大模型进行总结性输出。 LLM 需要 RAG 是因为 LLM 存在一些缺点: 1. 无法记住所有知识,尤其是长尾知识,对长尾知识的接受能力不高。 2. 知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。 3. 输出难以解释和验证,存在黑盒、不可控和幻觉等问题。 4. 容易泄露隐私训练数据。 5. 规模大,训练和运行成本高。 而 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,增删改查可解释,不影响原有知识。 3. 数据库内容明确、结构化,结合模型理解能力,降低大模型输出出错的可能。 4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型训练成本,新知识存储在数据库即可,无需频繁更新模型。
2025-02-20
RAG最新进展
RAG(检索增强生成)是由 Lewis 等人于 2020 年中期提出的一种大语言模型领域的范式。 其发展经历了以下阶段: 1. 2017 年创始阶段,重点是通过预训练模型吸收额外知识以增强语言模型,主要集中在优化预训练方法。 2. 大型语言模型如 GPT 系列在自然语言处理方面取得显著成功,但在处理特定领域或高度专业化查询时存在局限性,易产生错误信息或“幻觉”,特别是在查询超出训练数据或需要最新信息时。 3. RAG 包括初始的检索步骤,查询外部数据源获取相关信息后再回答问题或生成文本,此过程为后续生成提供信息,确保回答基于检索证据,提高输出准确性和相关性。 4. 在推断阶段动态检索知识库信息能解决生成事实错误内容的问题,被迅速采用,成为完善聊天机器人能力和使大语言模型更适用于实际应用的关键技术。 RAG 在多个基准测试中表现出色,如在 Natural Questions、WebQuestions 和 CuratedTrec 等中表现抢眼。用 MSMARCO 和 Jeopardy 问题进行测试时,生成的答案更符合事实、具体和多样,FEVER 事实验证使用后也有更好结果。基于检索器的方法越来越流行,常与 ChatGPT 等流行大语言模型结合使用提高能力和事实一致性,在 LangChain 文档中有相关使用例子。 同时,对增强生成检索的兴趣增长促使了嵌入模型质量的提高,传统 RAG 解决方案中的问题也得到解决。
2025-02-20
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 知识库问答的好的 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