直达「 通往AGI之路 」飞书知识库 →
首页/问答列表/问答详情

RAG

回答

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

大语言模型(LLM)需要 RAG 进行检索优化,原因在于 LLM 存在一些缺点:

  1. 无法记住所有知识,尤其是长尾知识,受限于训练数据和学习方式,对长尾知识的接受能力不高。
  2. 知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。
  3. 输出难以解释和验证,存在内容黑盒、不可控及受幻觉问题干扰的情况。
  4. 容易泄露隐私训练数据。
  5. 规模大,训练和运行成本高。

RAG 具有以下优点:

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

RAG 在 Natural Questions、WebQuestions 和 CuratedTrec 等基准测试中表现出色,在知识密集型任务中能增强语言模型的输出。基于检索器的方法越来越流行,常与 ChatGPT 等流行 LLM 结合使用。

在商业化问答场景中,优化 AI 更准确回答问题的过程称为 RAG。RAG 由检索器和生成器组成,检索器从外部知识中找到与问题相关的信息,生成器利用这些信息制作精确连贯的答案,适合处理需要广泛知识的任务,如问答系统。

内容由 AI 大模型生成,请仔细甄别(powered by aily)

参考资料

问:RAG 是什么?

众所周知,大模型已经在很多领域和问题下都取得了很好的效果,那为什么还需要RAG进行检索优化呢?[heading3]LLM的缺点[content]1.LLM无法记住所有知识,尤其是长尾的。受限于训练数据、现有的学习方式,对长尾知识的接受能力并不是很高;长尾数据是指数据集中某些类别数量较少,而其他类别样本数较多的不平衡“长尾”状态。例如在自然语言处理中,一些少见的词汇出现频率很低,而常见的词汇出现频率很高。2.LLM的知识容易过时,而且不好更新。只是通过微调,模型的接受能力其实并不高而且很慢,甚至有丢失原有知识的风险;3.LLM的输出难以解释和验证。一方面最终的输出的内容黑盒且不可控,另一方面最终的结果输出可能会受到幻觉之类的问题的干扰;4.LLM容易泄露隐私训练数据。用用户个人信息训练模型,会让模型可以通过诱导泄露用户的隐私;5.LLM的规模大,训练和运行的成本都很大。[heading3]RAG的优点[content]1.数据库对数据的存储和更新是稳定的,不像模型会存在学不会的风险。2.数据库的数据更新可以做得很敏捷,增删改查可解释,而且对原有的知识不会有影响。3.数据库的内容是明确、结构化的,加上模型本身的理解能力,一般而言数据库中的内容以及检索算法不出错,大模型的输出出错的可能就大大降低。4.知识库中存储用户数据,为用户隐私数据的管控带来很大的便利,而且可控、稳定、准确。5.数据库维护起来,可以降低大模型的训练成本,毕竟新知识存储在数据库即可,不用频繁更新模型,尤其是不用因为知识的更新而训练模型。

检索增强生成 (RAG)

[title]检索增强生成(RAG)RAG在[Natural Questions(opens in a new tab)](https://ai.google.com/research/NaturalQuestions)、[WebQuestions(opens in a new tab)](https://paperswithcode.com/dataset/webquestions)和CuratedTrec等基准测试中表现抢眼。用MS-MARCO和Jeopardy问题进行测试时,RAG生成的答案更符合事实、更具体、更多样。FEVER事实验证使用RAG后也得到了更好的结果。这说明RAG是一种可行的方案,能在知识密集型任务中增强语言模型的输出。最近,基于检索器的方法越来越流行,经常与ChatGPT等流行LLM结合使用来提高其能力和事实一致性。LangChain文档中可以找到[一个使用检索器和LLM回答问题并给出知识来源的简单例子(opens in a new tab)](https://python.langchain.com/docs/use_cases/question_answering/quickstart)。

【AI+知识库】商业化问答场景,让AI回复更准确,一篇专为所有“小白”讲透RAG的实例教程(上篇)

RAG(Retrieval-Augmented Generation),即检索增强生成,是一种结合信息检索和文本生成能力的技术,它由两部分组成:一个“检索器”和一个“生成器”。检索器从外部知识中快速找到与问题相关的信息,生成器则利用这些信息来制作精确和连贯的答案。这种结合使得RAG非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。

其他人在问
专门为大模型RAG设计的知识库产品 有哪些?
以下是一些专门为大模型 RAG 设计的知识库产品: 1. Metaso.cn:适用于学术、研究领域。 2. So.360.com:在生活方面提供便捷的搜索服务。 3. Felo.ai/search:具有综合性的特点。 4. Devv.ai:主要面向程序员、开发者。 5. Perplexity:属于付费产品,提供高质量的服务。 6. Bing.com:具有通用性。 7. Google.com:在全球范围内提供精准的搜索结果。 RAG 就像一个超级智能的图书馆员,其工作流程包括检索、增强和生成三个环节。在不改变大模型本身的基础上,通过外挂知识库等方式,为模型提供特定领域的数据信息输入,让模型能基于特定的数据生成内容、降低幻觉,实现对该内容更准确的信息检索和生成。 RAG 具有成本效益、灵活性和可扩展性等优点,比如实现成本更低,可以利用多种数据源,能随时增加或更新知识库中的内容。但也存在回答准确性不够的缺点。 在一些示例中,如设定使用阿里千问模型作为 AI 模型,将角色设定为“美嘉”并按照其人设、背景和对话风格设定提示词,放入《爱情公寓》全季剧情作为知识库,从而让“美嘉”拥有过往“记忆”。
2024-10-28
怎么写文档会让RAG 效果更好
要让 RAG 效果更好地写文档,您可以参考以下要点: 1. 文档切割: 合理的文档切割能让系统返回更完整、连贯的结果。例如,对于“猫咪的饮食习惯是什么?”的查询,将相关内容切割为“猫咪的饮食习惯取决于它们的年龄、健康状况和品种。”和“幼猫需要更多的蛋白质,而成年猫则需要均衡的营养。”这样的文档块。 目前免费平台一般提供智能切割和手动切割两种方式。但在当下技术水平下,智能切割效果一般,对于以问答为主的客服场景,将一个问答对切成一个文档片,检索效果会很好。 2. 整理知识库文档阶段: 确定知识库包含的文档类型,如政策原文文档、业务积累的 QA、操作指引、产品说明等,并进行预处理。 知识库本身质量对最终效果至关重要,是大模型生成回答的原始语料。 优化方向包括: 文档格式:PDF 文档格式信息相对简洁,干扰少,但也有说.docx 效果更优的,需根据场景测试。 文档命名:尽量控制在 10 字左右,涵义简洁明了,避免无意义的数字、符号或缩写。 文档语言:尽量统一为同一种,避免中英文混切导致乱码和无用数据。 文档内容:设置清晰的一二级标题,对特殊元素进行处理。 构建问答对:能达到更好效果,但耗费人力和运营成本,需综合考虑。 3. 通用语言模型微调可完成常见任务,更复杂和知识密集型任务可基于语言模型构建系统,访问外部知识源。Meta AI 引入的 RAG 方法把信息检索组件和文本生成模型结合,可接受输入并检索相关文档,给出来源,适应事实变化,不用重新训练就能获取最新信息并生成可靠输出。Lewis 等人(2021)提出通用的 RAG 微调方法,使用预训练的 seq2seq 作为参数记忆,用维基百科的密集向量索引作为非参数记忆。
2024-10-21
大模型中的RAG
RAG 即 RetrievalaugmentedGeneration(检索增强技术),是大模型中的一个重要概念。 首先回顾 LLM 的原理,它是把互联网文献材料降维到 latent space 中,并通过 transformer 方式学习其中的“经验”。但固定文献资料存在局限性,可能无法回答某些问题。 RAG 的出现解决了这一问题,它允许模型到搜索引擎上搜索问题相关资料,并结合自身知识体系综合回复。其中,RAG 的“R”即搜索环节并非简单操作,还涉及传统搜索的逻辑,如对输入问题的纠错、补充、拆分,以及对搜索内容的权重逻辑等。 例如,对于“中国界世杯夺冠那年的啤酒销量如何”的问题,会先纠错为“中国世界杯夺冠那年的啤酒销量如何”,然后拆分问题进行综合搜索,将搜索到的资料提供给大模型进行总结性输出。 RAG 是一种结合检索和生成的技术,能让大模型在生成文本时利用额外数据源,提高生成质量和准确性。其基本流程为:首先,给定用户输入(如问题或话题),RAG 从数据源中检索出相关文本片段(称为上下文);然后,将用户输入和检索到的上下文拼接成完整输入传递给大模型(如 GPT),输入通常包含提示,指导模型生成期望输出(如答案或摘要);最后,从大模型输出中提取或格式化所需信息返回给用户。
2024-10-20
RAG应用的案例,结合本地知识库和开放搜索
以下是一些 RAG 应用的案例: 1. 用户向 ChatGPT 查询最近引起广泛关注的事件,如 OpenAI 首席执行官的突然解雇和复职,由于 ChatGPT 预训练数据的限制缺乏对最新事件的了解。RAG 通过从外部知识库中检索最新的文档摘录来解决这一问题,获取相关新闻文章并与最初的问题合并成丰富的提示,使 ChatGPT 能够合成知情的回答,展示了其通过实时信息检索增强模型响应能力的过程。 2. 在本地知识库的搭建中,利用大模型的能力搭建知识库本身就是一个 RAG 技术的应用。RAG 应用可抽象为 5 个过程:文档加载,从多种来源加载文档;文本分割,把文档切分为指定大小的块;存储,包括将切分好的文档块嵌入转换成向量形式并存储到向量数据库;检索,通过检索算法找到与输入问题相似的嵌入片;输出,把问题及检索出来的嵌入片一起提交给 LLM,让其生成更合理的答案。 3. 在了解 RAG 全貌时,其流程分为离线数据处理和在线检索两个过程。离线数据处理目的是构建知识库这本“活字典”,在线检索则是利用知识库和大模型进行查询的过程。以构建智能问答客服这一最经典的应用场景为例,可深入了解 RAG 所有流程中的“What”与“Why”。
2024-10-20
有没有RAG 基本架构的中文图示
以下是关于 RAG 基本架构的介绍: RAG 是当今大多数现代人工智能应用程序的标准架构。以 Sana 的企业搜索用例为例,其工作原理如下: 1. 应用程序加载和转换无结构文件(如 PDF、幻灯片、文本文件),跨越企业数据孤岛(如 Google Drive 和 Notion),通过数据预处理引擎(如 Unstructured)转换为 LLM 可查询格式。 2. 这些文件被“分块”成更小的文本块,作为向量嵌入并存储在数据库(如 Pinecone)中,以实现更精确的检索。 3. 当用户提出问题时,系统检索语义上最相关的上下文块,并将其折叠到“元提示”中,与检索到的信息一起馈送给 LLM。 4. LLM 从检索到的上下文中合成答复返回给用户。 RAG 的基本概念: RAG 是一种结合了检索和生成的技术,能让大模型在生成文本时利用额外的数据源,提高生成的质量和准确性。其基本流程为: 首先,给定用户输入(如问题或话题),RAG 从数据源中检索出相关文本片段(称为上下文)。 然后,将用户输入和检索到的上下文拼接成完整输入传递给大模型(如 GPT),输入通常包含提示,指导模型生成期望输出(如答案或摘要)。 最后,从大模型的输出中提取或格式化所需信息返回给用户。
2024-10-17
基于飞书的知识库RAG的搭建,需要什么接口进行全文搜索
基于飞书的知识库 RAG 搭建,可用于全文搜索的接口方式主要有以下几种: 1. 语义检索:语义匹配关注查询和文档内容的意义,而非仅仅表面的词汇匹配。通过向量的相似性来判断语义的相似性。 2. 全文检索:这是基于关键词的检索方式。例如,对于句子“猫的饮食习惯包括吃鱼和鸡肉”,输入“猫”“饮食”“猫的饮食习惯”“吃鱼”等关键词可搜索到该句子,但输入“猫喜欢吃什么呀”则无法搜索到。 3. 混合检索:结合了语义匹配和全文检索的优点,通常系统先进行全文检索获取初步结果,然后再对这些结果进行语义匹配和排序。 此外,在本地部署资讯问答机器人实现 RAG 时,会涉及加载所需的库和模块,如 feedparse 用于解析 RSS 订阅源,ollama 用于在 python 程序中跑大模型。还会为文档内容生成向量,如使用文本向量模型 bgem3 等。 在开发 LangChain 应用开发指南中,实现 LangChain 和 RAG 的结合时,需要加载数据、分割文档、转换嵌入并存储到向量存储器、创建检索器以及聊天模型等步骤。
2024-10-17