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

RAG

Answer

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

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

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

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

在 RAG 系统开发中存在 12 大痛点及相应的解决方案。

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-03-06
什么是RAG
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。 大模型存在一些缺点,如无法记住所有知识(尤其是长尾知识)、知识容易过时且不好更新、输出难以解释和验证、容易泄露隐私训练数据、规模大导致训练和运行成本高。而 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,增删改查可解释,且对原有知识无影响。 3. 数据库内容明确、结构化,加上模型的理解能力,能降低大模型输出出错的可能。 4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型的训练成本,新知识存储在数据库即可,无需频繁更新模型。 RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。其最常见应用场景是知识问答系统。 一个 RAG 的应用可抽象为 5 个过程: 1. 文档加载:从多种不同来源加载文档,如 PDF 等非结构化数据、SQL 等结构化数据以及 Python、Java 之类的代码等。 2. 文本分割:文本分割器把 Documents 切分为指定大小的块,称为“文档块”或者“文档片”。 3. 存储:包括将切分好的文档块进行嵌入转换成向量的形式,以及将 Embedding 后的向量数据存储到向量数据库。 4. 检索:通过某种检索算法找到与输入问题相似的嵌入片。 5. Output(输出):把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示一起来生成更加合理的答案。
2025-03-06
RAG架构图和实现案例
以下是关于 RAG 架构图和实现案例的相关内容: RAG 是当今大多数现代人工智能应用程序的标准架构。以 Sana 的企业搜索用例为例,其工作原理如下: 1. 应用程序加载和转换无结构文件(如 PDF、幻灯片、文本文件),跨越企业数据孤岛(如 Google Drive 和 Notion),通过数据预处理引擎(如 Unstructured)转换为 LLM 可查询格式。 2. 这些文件被“分块”成更小的文本块,以实现更精确的检索,并作为向量嵌入存储在数据库(如 Pinecone)中。 3. 当用户提出问题时,系统检索语义上最相关的上下文块,并将其折叠到“元提示”中,与检索到的信息一起馈送给 LLM。LLM 从检索到的上下文中合成答复返回给用户。 在生产中,AI 应用程序具有更复杂的流程,包含数十甚至数百个检索步骤,通常具有“提示链”,不同类型的任务并行执行多个“提示链”,然后将结果综合在一起生成最终输出。 随着 RAG 的发展,出现了自适应的检索(也被称作主动检索),其核心思想与 LLM Agent 相似。根据判断依据可分为 Promptbase 和 Tuningbase: 1. Promptbase:通过 Prompt Engineering 的方式让 LLM 对流程进行控制。典型实现案例是 FLARE,其核心思想是 LM 仅在缺乏所需知识时进行检索,以避免被动检索增强的 LM 中出现不必要或不适当的检索。FLARE 迭代地生成下一个临时句子,并检查是否包含低概率标记。如果是这样,系统将检索相关文档并重新生成句子。 2. Tuningbase:对 LLM 进行微调使其生成特殊的 token,以此来触发检索或生成。典型案例是 SelfRAG,具体步骤包括:给定输入提示和前面的生成结果,首先预测特殊 token“Retrieve”判断是否通过检索段落对继续的生成进行增强是有帮助;如果有帮助,调用检索模型,模型会生成一个 critique token 来评估检索段的相关性、下一个响应片段和一个批判令牌来评估响应片段中的信息是否得到了检索段的支持;最后,一个新的批判令牌评估响应的整体效用。模型会并行处理这些内容,并选择最佳结果作为最终的输出。 此外,系统的内存是 LMM 的上下文窗口,存在架构限制,窗口越大推理越慢,同时模型会失焦,降低推理的准确度。前沿模型研发团队都力争做到吞吐量、速度还有准确度的最佳平衡。大模型应用领域常用的方法是 RAG,例如 Perplexity、面向企业知识库的 Glean 以及面向个人知识库的 Maimo 等应用。
2025-03-05
RAG
RAG(RetrievalAugmented Generation,检索增强生成)是一种结合检索和生成能力的自然语言处理架构。 通用语言模型通过微调可完成常见任务,而更复杂和知识密集型任务可基于语言模型构建系统,访问外部知识源来实现。Meta AI 研究人员引入 RAG 来完成这类任务,它把信息检索组件和文本生成模型结合,可微调且内部知识修改高效,无需重新训练整个模型。 RAG 接受输入并检索相关支撑文档,给出来源,与原始提示词组合后送文本生成器得到输出,适应事实随时间变化。 大语言模型(LLM)存在一些缺点,如无法记住所有知识尤其是长尾知识、知识易过时且不好更新、输出难以解释和验证、易泄露隐私训练数据、规模大导致训练和运行成本高。而 RAG 具有数据库存储和更新稳定、数据更新敏捷且不影响原有知识、降低大模型输出出错可能、便于管控用户隐私数据、降低大模型训练成本等优点。 在 RAG 系统开发中存在 12 大痛点及相应的解决方案。
2025-03-05
RAG技术
RAG 即检索增强生成(Retrieval Augmented Generation),是一种结合了检索和生成的技术。以下是关于 RAG 的详细介绍: 应用背景:大模型的训练数据有截止日期,当需要依靠不在训练集中的数据时,RAG 可发挥作用。 抽象过程:包括文档加载(从多种来源加载文档,如 LangChain 提供 100 多种文档加载器)、文本分割(把文档切分为指定大小的块)、存储(将切分好的文档块嵌入并转换为向量形式存储到向量数据库)、检索(通过检索算法找到与输入问题相似的嵌入片)、输出(把问题及检索出的嵌入片提交给 LLM 生成更合理答案)。 与 LangChain 的关系:LangChain 是用于构建高级语言模型应用程序的框架,提供实现 RAG 必需的工具和组件。两者关系包括框架与技术、模块化实现、简化开发、提高性能、应用构建等方面。 核心流程:根据用户提问从私有知识中检索“包含答案的内容”,将其与用户提问一起放入提示词中提交给大模型,使大模型回答充分考虑该内容。 常见应用场景:如用于构建知识问答系统,用户提问后,RAG 模型从大规模文档集合中检索相关文档并生成回答。
2025-03-05
哪里可以找到了解AI模型微调和RAG知识库的外包开发团队?
以下是一些可能找到了解 AI 模型微调和 RAG 知识库的外包开发团队的途径: 1. 相关技术社区和论坛:例如一些专注于 AI 开发的社区,开发者可能会在其中分享经验和提供服务。 2. 专业的自由职业者平台:如 Upwork、Freelancer 等,您可以在这些平台上发布需求,寻找合适的团队或个人。 3. 参考行业报告和研究:部分报告中可能会提及相关的优秀开发团队或公司。 4. 联系 AI 领域的知名机构或公司:他们可能会推荐或提供相关的外包服务。 5. 社交媒体和专业群组:在如 LinkedIn 等社交媒体上的 AI 相关群组中发布需求,可能会得到相关团队的回应。 另外,从提供的资料中,以下信息可能对您有所帮助: 红杉的相关分析提到,迁移学习技术如 RLHF 和微调正变得更加可用,开发者可以从 Hugging Face 下载开源模型并微调以实现优质性能,检索增强生成(RAG)正在引入关于业务或用户的上下文,像 Pinecone 这样的公司的向量数据库已成为 RAG 的基础设施支柱。彬子的经历中,有出海垂直领域 Agent 平台的项目经理咨询 RAG 策略优化。2024 人工智能报告中提到对增强生成检索(RAG)的兴趣增长促使了嵌入模型质量的提高,传统 RAG 解决方案中的问题得到解决。
2025-03-04