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

rag

Answer

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

大模型需要 RAG 进行检索优化的原因在于其存在一些缺点:

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

RAG 的优点包括:

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

RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt 中,提交给大模型,让其回答充分考虑“包含答案的内容”。其最常见应用场景是知识问答系统。RAG 由“检索器”和“生成器”两部分组成,检索器从外部知识中快速找到与问题相关的信息,生成器利用这些信息制作精确连贯的答案,适合处理需要广泛知识的任务,如问答系统,能提供详细准确的回答。

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

References

问: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性能提升策略和评估方法(产品视角)

作者:牛大局原文:[RAG性能提升策略和评估方法(产品视角)](https://iac2rhlh02p.feishu.cn/wiki/WL4Lwx5dyigl4zkZQojc7esQnWf)[heading1]一、前言[content]相信经过一年的知识沉淀,RAG是什么大家都不陌生了。RAG是检索增强生成(Retrieval-Augmented Generation)的缩写,它是一种结合了检索模型和生成模型的技术。其核心目的是通过某种途径把知识告诉给AI大模型,让大模型“知道”我们的私有知识,变得越来越“懂”我们。RAG的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。RAG的最常见应用场景知识问答系统:RAG可以用于构建问答系统,用户提出问题,RAG模型从大规模的文档集合中检索相关的文档,然后生成回答。

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

其中,她是陈美嘉,这里是人设中的设定。吵架的经过是知识库中的内容。在我提问了之后,大模型去知识库里找到了相关内容,然后回复了我。这就是一个简单的正确回复的demo示例。然而,我们会发现,有时候她的回答会十分不准确。图二明显回答的牛头不对马嘴。图三是知识库截图,其中是有“一菲为美嘉找了一份助教工作”的内容的。但是回答这个问题时,AI并没有根据正确的知识库内容回答。这,就是基于知识库问答中的一个非常常见的错误场景。在其他情况下,甚至有可能出现报价错误、胡编乱造等等。这在严肃场景中,是不能接受的出错。现在应该能够直观的理解,为什么需要让大模型根据知识库回答的更加准确、更符合我们的要求。在AI领域中,优化AI更准确回答问题的过程,有一个更加专业的术语,叫做RAG。接下来,咱们进入正题,一步一步探索,如何优化回答。二、基础概念如果我们要优化幻觉问题和提高准确性,就务必要了解清楚从“问题输入”--“得到回复”,这个过程中,究竟发生了什么。然后针对每一个环节,逐个调优,以达到效果最佳化。因此,我们先深入其中了解问答全貌。[heading3]1、RAG介绍[content]RAG(Retrieval-Augmented Generation),即检索增强生成,是一种结合信息检索和文本生成能力的技术,它由两部分组成:一个“检索器”和一个“生成器”。检索器从外部知识中快速找到与问题相关的信息,生成器则利用这些信息来制作精确和连贯的答案。这种结合使得RAG非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。

Others are asking
模型能力测评方法有哪些,比如ragas这种
以下是一些常见的模型能力测评方法: 1. 从模型角度(generation): 回答真实性:评估模型结果的真实性,减少模型幻觉。 回答相关度:衡量结果与问题的相关性,避免南辕北辙。 2. 从检索角度(retrieval): 召回率(recall):考查相关信息在返回的检索内容中的包含程度,越全越好。 准确率(precision):评估返回的检索内容中有用信息的占比,越多越好。 RAGAS 是一个用于 RAG 评估的知名开源库,您可以通过了解和使用。 RAG 具有一定的优势和局限性: 优势: 能够解决大语言模型技术中输出结果的不可预测性、知识的局限性、幻觉问题、数据安全性等问题。 可以让大模型从权威的、预先确定的知识来源中检索、组织相关信息,更好地控制大模型生成的文本输出,并且用户可以深入了解 LLM 如何生成最终的结果。 可以和微调结合使用。 局限性: 适合打造专才,不适合打造通才,不适合为模型提供通用领域知识。 难以让模型保持稳定的风格或结构输出,降低 token 消耗等,需要使用微调技术解决。
2025-02-07
lmstudio可以支持联网搜索和本地知识库rag吗?如何实现?
LMStudio 能否支持联网搜索和本地知识库 RAG 以及如何实现的问题如下: 实现本地知识库 RAG 需加载所需的库和模块,如用于解析 RSS 订阅源的 feedparse,用于在 Python 程序中跑大模型的 ollama(使用前需确保 ollama 服务已开启并下载好模型)。 从订阅源获取内容,通过特定函数从指定的 RSS 订阅 URL 提取内容,若需接收多个 URL 稍作改动即可。然后用专门的文本拆分器将长文本拆分成较小的块,并附带相关元数据,最终合并成列表返回用于后续处理或提取。 为文档内容生成向量,可使用文本向量模型 bgem3(从 hf 下载好模型假设放置在某个路径,通过函数利用 FAISS 创建高效的向量存储)。 实现 RAG 包括文档加载(从多种来源加载文档,LangChain 提供 100 多种文档加载器)、文本分割(把 Documents 切分为指定大小的块)、存储(将切分好的文档块嵌入转换成向量形式并存储到向量数据库)、检索(通过检索算法找到与输入问题相似的嵌入片)、Output(把问题及检索出的嵌入片提交给 LLM 生成答案)。 基于用户问题从向量数据库中检索相关段落,根据设定阈值过滤,让模型参考上下文信息回答,从而实现 RAG。 还可创建网页 UI 并进行评测,对于同样的问题和上下文,基于不同模型进行多次测试,其中 GPT4 表现最好,Mixtral 次之,Qwen7b 第三,Gemma 和 Mistral 表现一般。总结来说,本文展示了如何使用 Langchain 和 Ollama 技术栈在本地部署资讯问答机器人,结合 RSSHub 处理和提供资讯,上下文数据质量和大模型性能决定 RAG 系统性能上限,RAG 能提升答案质量和相关性,但不能完全消除大模型幻觉和信息滞后问题。
2025-02-04
RAG相关的 论文
以下是关于 RAG 的相关论文内容: 《大模型 RAG 问答行业最佳案例及微调、推理双阶段实现模式:基于模块化RAG 自定义 RAG Flow》:介绍了从 RAG Flow 的角度的几个行业最佳的 RAG 实践,如 OpenAI 团队在提升 RAG 准确率方面的尝试,包括多种方法的试验,最终通过提示工程、查询扩展等方法达到了 98%的准确率,并强调了模型精调和 RAG 结合使用的潜力。 《开发:产品视角的大模型 RAG 应用》:对 RAG 的技术原理、历史发展、应用方法、应用场景和未来的发展方向进行了完整解读,文本内容源自论文《RetrievalAugmented Generation for Large Language Models:A Survey》。 《RAG 系统开发中的 12 大痛点及解决方案》:受到 Barnett 等人论文《工程化检索增强生成系统时的七大挑战》的启发,探讨了论文中的七个挑战及开发 RAG 系统时遇到的五个常见难题,并深入讨论了这些难题的解决策略。
2025-02-04
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 个过程: 1. 文档加载:从多种不同来源加载文档,LangChain 提供了 100 多种不同的文档加载器,包括 PDF 在内的非结构化数据、SQL 在内的结构化数据,以及 Python、Java 之类的代码等。 2. 文本分割:文本分割器把 Documents 切分为指定大小的块,称为“文档块”或者“文档片”。 3. 存储:涉及将切分好的文档块进行嵌入转换成向量的形式,并将 Embedding 后的向量数据存储到向量数据库。 4. 检索:通过某种检索算法找到与输入问题相似的嵌入片。 5. 输出:把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示一起来生成更加合理的答案。
2025-02-03
RAG
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构。 大模型需要 RAG 进行检索优化的原因在于其存在一些缺点: 1. 无法记住所有知识,尤其是长尾知识,受限于训练数据和学习方式,对长尾知识的接受能力不高。 2. 知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。 3. 输出难以解释和验证,存在内容黑盒、不可控以及受幻觉问题干扰的情况。 4. 容易泄露隐私训练数据。 5. 规模大,训练和运行成本高。 RAG 的优点包括: 1. 数据库对数据的存储和更新稳定,不存在学不会的风险。 2. 数据更新敏捷,增删改查可解释,对原有知识无影响。 3. 数据库内容明确、结构化,加上模型的理解能力,降低大模型输出出错的可能。 4. 便于管控用户隐私数据,且可控、稳定、准确。 5. 可降低大模型的训练成本,新知识存储在数据库即可,无需频繁更新模型。 RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt 中,提交给大模型,让大模型的回答充分考虑到“包含答案的内容”。其最常见应用场景是知识问答系统。RAG 由检索器和生成器两部分组成,检索器从外部知识中快速找到与问题相关的信息,生成器利用这些信息制作精确和连贯的答案,非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。
2025-01-29
RAG与agent
RAG(RetrievalAugmented Generation,检索增强生成)是一种方法,例如在餐饮生活助手的应用中,它能根据用户需求从大规模餐饮数据集中检索出最合适的餐厅并提供相关信息和服务。实现餐饮生活助手的 RAG 实战,需要将餐饮数据集转化为 LangChain 可识别和操作的数据源,并定义 LLM 的代理,让其根据用户问题提取核心信息和条件,形成标准查询语句检索数据源并生成答案。 Agent 是大模型的一个重要概念,被认为是大模型未来的主要发展方向。它可以通过为 LLM 增加工具、记忆、行动、规划等能力来实现。目前行业里主要使用 LangChain 框架将 LLM 与工具串接。例如在 RAG 基础上,Agent 给大模型提供了更多工具,如长期记忆(数据库工具),还在 prompt 层和工具层完成规划和行动等逻辑设计。 在大模型请求中,最大的两个变量是 Messages 和 Tools,两者组合形成整个 Prompt。Agent 应用开发的本质是动态 Prompt 拼接,通过工程化手段将业务需求转述成新的 prompt。RAG 可以是向量相似性检索,放在 system prompt 里或通过 tools 触发检索。Action 触发 tool_calls 标记进入请求循环,拿模型生成的请求参数进行 API request,再把结果返回给大模型进行交互,没有 tool_calls 标记则循环结束。Multi Agents 则是通过更换 system prompt 和 tools 实现。
2025-01-28