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

RAG是什么意思

Answer

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

其旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。通过检索的模式,为大语言模型的生成提供帮助,使大模型生成的答案更符合要求。

大模型需要 RAG 进行检索优化,是因为大模型存在一些缺点,如:

  1. 无法记住所有知识,尤其是长尾的。受限于训练数据和现有的学习方式,对长尾知识的接受能力不高。
  2. 知识容易过时,且不好更新。微调模型的接受能力不高且慢,甚至有丢失原有知识的风险。
  3. 输出难以解释和验证。最终输出的内容黑盒且不可控,可能受到幻觉等问题的干扰。
  4. 容易泄露隐私训练数据。用用户个人信息训练模型,会让模型可以通过诱导泄露用户的隐私。
  5. 规模大,训练和运行的成本都很大。

而 RAG 具有以下优点:

  1. 数据库对数据的存储和更新稳定,不像模型会存在学不会的风险。
  2. 数据库的数据更新敏捷,增删改查可解释,对原有的知识不会有影响。
  3. 数据库的内容明确、结构化,加上模型本身的理解能力,一般而言数据库中的内容以及检索算法不出错,大模型的输出出错的可能就大大降低。
  4. 知识库中存储用户数据,为用户隐私数据的管控带来很大的便利,而且可控、稳定、准确。
  5. 数据库维护起来,可以降低大模型的训练成本,新知识存储在数据库即可,不用频繁更新模型。

RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。其最常见应用场景是知识问答系统。

LangChain 是一个用于构建高级语言模型应用程序的框架,它提供了一系列的工具和组件,使得开发人员能够更容易地使用大型语言模型(LLM)来创建各种应用程序。LangChain 和 RAG 的关系包括:

  1. LangChain 作为框架,提供了实现 RAG 所必需的工具和组件,RAG 作为技术可在 LangChain 框架内得以实施和利用。
  2. LangChain 允许开发者通过其模块化组件来构建 RAG 应用程序。
  3. LangChain 通过提供现成的链和提示模板,简化了 RAG 应用程序的开发过程。
  4. 利用 LangChain 实现 RAG 可以帮助开发者创建更高效、更准确的应用程序。
  5. LangChain 通过其丰富的 API 和组件库,支持开发者构建复杂的 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模型从大规模的文档集合中检索相关的文档,然后生成回答。

问:LangChain 和 RAG 有什么关系?

LangChain是一个用于构建高级语言模型应用程序的框架,它提供了一系列的工具和组件,使得开发人员能够更容易地使用大型语言模型(LLM)来创建各种应用程序。LangChain的设计主张集中在模块化组件上,这些组件提供用于使用LLM的行为抽象,并为每个抽象提供实现的集合,从而允许开发人员构造新链或实现现成的链。RAG,即检索增强生成(Retrieval-Augmented Generation),是一种结合了检索(检索外部知识库中相关信息)和生成(利用LLM生成文本)的技术。RAG能够为LLM提供来自外部知识源的附加信息,使得LLM在应对下游任务时能够生成更精确和上下文相关的答案,并减少LLM的幻觉现象。LangChain和RAG之间的关系可以概括为:1.框架与技术:LangChain作为一个框架,提供了实现RAG所必需的工具和组件。RAG作为一项技术,可以在LangChain框架内得以实施和利用。2.模块化实现:LangChain允许开发者通过其模块化组件来构建RAG应用程序,例如使用LangChain的检索器(Retriever)和生成模型(LLM)来创建一个完整的RAG流程。3.简化开发:LangChain通过提供现成的链(Off-the-shelf chains)和提示模板(Prompt Templates),简化了RAG应用程序的开发过程。4.提高性能:利用LangChain实现RAG可以帮助开发者创建更高效、更准确的应用程序,特别是在需要大量外部信息来辅助决策的场景中。5.应用构建:LangChain通过其丰富的API和组件库,支持开发者构建复杂的RAG应用,如智能问答系统、内容推荐引擎等。

Others are asking
RAG可以学习多大的知识库
RAG 可以让大模型从权威的、预先确定的知识来源中检索、组织相关信息,更好地控制大模型生成的文本输出,并且用户可以深入了解 LLM 如何生成最终的结果。 RAG 对大语言模型的作用就像开卷考试对学生一样,事实性知识与 LLM 的推理能力相分离,被存储在容易访问和及时更新的外部知识源中,具体分为参数化知识(模型在训练过程中学习得到,隐式地储存在神经网络的权重中)和非参数化知识(存储在外部知识源,例如向量数据库中)。 但目前没有关于 RAG 可以学习知识库大小的明确说明。
2025-01-10
是否有推荐的RAG 框架
以下为您推荐常用的 RAG 框架: LangChain 是一个为简化大模型应用开发而设计的开源框架。它通过提供一套模块化的工具和库,允许开发者轻松集成和操作多种大模型,使开发者能将更多精力投入到创造应用的核心价值上。其设计注重简化开发流程,支持广泛的模型,具有良好的可扩展性,以适应不断变化的业务需求。作为一个得到社区广泛支持的开源项目,LangChain 拥有活跃的贡献者和持续的更新,同时提供了全面的文档和示例代码帮助新用户快速掌握。此外,LangChain 在设计时充分考虑了应用的安全性和用户数据的隐私保护,是一个多语言支持的灵活框架,适用于各种规模的项目和不同背景的开发者。 LangChain 官方手册:https://python.langchain.com/docs/get_started/introduction/
2025-01-08
那个框架特别适用于RAG,比如LlamaIndex、LangChain等
LlamaIndex 是一个专为构建大型语言模型(LLM)应用而设计的开发框架,为开发人员提供了强大且灵活的工具,能更有效地理解和处理文本数据。对于熟悉 LangChain 的开发者而言,它并不陌生。 其核心优势在于对大型语言模型的深度支持,允许开发者利用如 GPT3.5 Turbo 等模型执行多种文本处理任务,如文档问答、文章生成和自动翻译等。特别地,它提供了构建文档问答系统的功能,能自动从大量文档中检索相关信息并生成答案,这在处理大量知识信息的领域极具价值。 LlamaIndex 还允许对嵌入模型进行微调以适应特定任务需求,提升文档问答系统的性能。它支持连接结构化、半结构化和非结构化等不同类型的数据源,为应用程序提供全面信息。 此外,其设计注重简化开发流程,即使复杂的 NLP 任务也能通过少量代码实现,无需深入了解底层复杂性。这种设计哲学不仅降低了开发大型语言模型应用的门槛,还极大提升了开发效率和应用性能。 LlamaIndex 的 GitHub 地址:https://github.com/runllama/llama_index/
2025-01-07
目前的 rag 框架都有哪些
目前常用的 RAG 框架有 LangChain。 LangChain 是一个为简化大模型应用开发而设计的开源框架。它具有以下特点: 1. 提供一套模块化的工具和库,便于开发者轻松集成和操作多种大模型。 2. 设计注重简化开发流程,能让开发者将更多精力投入到创造应用的核心价值上。 3. 支持广泛的模型,具备良好的可扩展性,以适应不断变化的业务需求。 4. 作为得到社区广泛支持的开源项目,拥有活跃的贡献者和持续的更新。 5. 提供了全面的文档和示例代码,有助于新用户快速掌握。 6. 在设计时充分考虑了应用的安全性和用户数据的隐私保护。 7. 是一个多语言支持的灵活框架,适用于各种规模的项目和不同背景的开发者。 LangChain 官方手册:https://python.langchain.com/docs/get_started/introduction/
2025-01-07
RAG工作流对话调试
RAG(检索增强生成)工作流主要包括以下几个阶段: 1. 问题解析阶段:接收并预处理问题,通过嵌入模型(如 Word2Vec、GloVe、BERT)将问题文本转化为向量,以用于后续检索。 2. 知识库检索阶段:知识库中的文档同样向量化后,比较问题向量与文档向量,选择最相关的信息片段并抽取传递给下一步骤。 3. 信息整合阶段:接收检索到的信息,与上下文构建形成融合、全面的信息文本,整合信息准备进入生成阶段。 4. 大模型生成回答:整合后的信息被转化为向量并输入到 LLM(大语言模型),模型逐词构建回答,最终输出给用户。 RAG 的基本概念: RAG 是一种结合了检索和生成的技术,能让大模型在生成文本时利用额外的数据源,提高生成的质量和准确性。其基本流程为,首先给定用户输入(如问题或话题),RAG 从数据源中检索出相关文本片段(称为上下文),然后将用户输入和检索到的上下文拼接成完整输入传递给大模型(如 GPT),输入通常包含提示指导模型生成期望输出(如答案或摘要),最后从大模型的输出中提取或格式化所需信息返回给用户。 在实际调试预览中,例如: 1. 知识库检索部分:把输入的问题通过 Embedding 做向量化,使用语言模型优化问题、添加接近的检索词,知识库向量检索时抽取条件包含相似度 0.85,通过检索抽取出多个内容块。 2. 大模型对话部分:将相关信息传递给 LLM 最终得到 AI 的回答。
2025-01-06
RAG工作流搭建
RAG(检索增强生成)工作流搭建主要包括以下步骤: 1. 文档加载:从多种不同来源加载文档,如非结构化的 PDF 数据、结构化的 SQL 数据、代码等,LangChain 提供了 100 多种不同的文档加载器。 2. 文本分割:文本分割器把文档切分为指定大小的块,称为“文档块”或者“文档片”。 3. 存储: 将切分好的文档块进行嵌入转换成向量的形式。 将 Embedding 后的向量数据存储到向量数据库。 4. 检索:通过某种检索算法从向量数据库中找到与输入问题相似的嵌入片。 5. 输出:把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示一起来生成更加合理的答案。 RAG 是一种结合了检索和生成的技术,其基本流程为:首先,给定用户输入,如问题或话题,从数据源中检索出相关文本片段作为上下文。然后,将用户输入和检索到的上下文拼接成完整输入传递给大模型,并包含提示指导模型生成期望输出。最后,从大模型输出中提取或格式化所需信息返回给用户。 此外,您还可以通过以下方式学习 RAG: 1. 观看视频演示,如: 2. 利用相关 Bot 进行学习,如: Query 改写效果对比 Bot:https://www.coze.cn/store/bot/7400553639514800182?panel=1&bid=6dkplh1r43g15 RAG 全流程学习 Bot:结合大模型,模拟 RAG 的离线存储和在线检索全流程。 您还可以参考如何使用 LangChain 开发一个简单的 RAG 问答应用。
2025-01-06
AGI是什么意思
AGI 即 artificial general intelligence,意为通用人工智能。它指的是能够做任何人类可以做的事的人工智能。 在 AI 领域,AI 分为 ANI 和 AGI,ANI(artificial narrow intelligence,弱人工智能)只可做一件事,如智能音箱、网站搜索、自动驾驶、工厂与农场的应用等,而 AGI 则涵盖了广泛的认知技能和能力,包括推理、规划、解决问题、抽象思维、理解复杂思想、快速学习和从经验中学习等。 在 1990 年代末至 2000 年代,越来越多的人呼吁开发更普适的 AI 系统,名词“通用人工智能”(AGI)在 2000 年代初流行起来,以强调从“狭义 AI”到更广泛的智能概念的追求。我们使用 AGI 来指代符合 1994 年定义所捕捉到的智能广泛能力的系统,且包括了这些能力在或超过人类水平的附加要求。然而,目前并没有一个被广泛接受的 AGI 定义。
2025-01-10
AGI 是什么意思
AGI 是 artificial general intelligence 的缩写,意思是通用人工智能,即能够做任何人类可以做的事。目前 AI 分为 ANI 和 AGI,ANI(artificial narrow intelligence 弱人工智能)得到了巨大发展,可应用于智能音箱、网站搜索、自动驾驶、工厂与农场等领域,但 AGI 还未取得巨大进展。在生成式 AI 的发展中,也对 AGI 有所展望,期待其成为技术发展的下一个阶段。同时,Web3 和人工智能初创公司 AGII 获得了 1500 万美元融资,AGII 是一个 AI 驱动的平台,能为用户提供多种生成内容的功能。
2025-01-08
SOTA是什么意思?
SOTA 是“State Of The Art”的缩写,意思是“最先进的”“当前最佳水平”。 在 AI 领域中,例如在多模态的研究中,(c)类方法虽然是 SOTA,但很多想法都受到(d)类的代表作 ViLT 启发。ViLT 把 VE 彻底换成简单的 patch projection 模块,借鉴了 ViT 的思维,其出发点是对视觉数据处理方式的创新。 以往的许多研究通过使用各种方法对视频数据进行生成建模,包括循环网络、生成对抗网络、自回归变换器和扩散模型。但这些工作通常存在一些局限性,而 Sora 作为一个视觉数据的通用模型,可以生成持续时间、纵横比和分辨率各异的视频和图像,长达一分钟的高清视频。
2025-01-07
GPT是什么意思
GPT 是“生成式预训练变换器”(Generative Pretrained Transformer)的缩写,是一种大型语言模型(LLM),也是生成式人工智能的重要框架。 首个 GPT 由 OpenAI 于 2018 年推出。GPT 模型是基于 Transformer 模型的人工神经网络,在大型未标记文本数据集上进行预训练,并能够生成类似于人类自然语言的文本。 截至 2023 年,大多数 LLM 都具备这些特征,并广泛被称为 GPT。而所谓的生成式预训练,其实是机器学习领域一个由来已久的概念。 2018 年,OpenAI 发表了一篇名为《通过生成式预训练提高语言理解能力》的文章,首次介绍了基于转换器的生成式预训练模型(GPT)系统,即我们所说的“GPT1”。 ChatGPT 是一种基于 GPT 架构的人工智能模型,由 OpenAI 开发。它是一种自然语言处理(NLP)工具,能够理解和生成接近人类水平的文本。目前 ChatGPT 官网有 GPT3.5 和 GPT4 两个版本。
2025-01-07
API是什么意思
API 就像是一个信差,它接受一端的请求,告诉那边的系统您想要做的事情,然后把返回的信息发回给您。 以搜索“奥本海默”电影为例,在这个过程中,通过特定的网址(如 https://www.themoviedb.org/search?query=奥本海默 ),其中域名(www.themoviedb.org)指定了网站的位置,路径(/search)指定了特定页面的位置,而 query(奥本海默)则是查询参数。 在 GPT 中,它可以通过预先配置的 Action 里的 TMDB API 获取电影相关的专有信息。当您询问“奥本海默”这部电影讲了什么时,GPT 会识别您的意图,使用 Action 去 The Movie DB 寻找相关数据,处理并返回最终结果。 配置一个 Action 通常需要:Schema(相当于操作手册,告诉它可以去哪、干什么、需要准备什么)、Available actions(可用行动)、Authentication(认证)、Privacy policy(隐私政策)。但 Schema 的结构可能涉及前端工程师相关领域的知识。 如果您对 Action 很感兴趣,可以从系统学习 API 相关知识、寻找可用的 API 练习、发掘 GPT Action 更多潜力等方向继续深入。
2025-01-07
多模态大模型是什么意思
多模态大模型(MLLM)是一种在统一框架下,集成多种不同类型数据处理能力的深度学习模型,这些数据包括文本、图像、音频和视频等。通过整合多样化的数据,MLLM 能够更全面地理解和解释现实世界中的复杂信息,在面对复杂任务时表现出更高的准确性和鲁棒性。其架构通常包括一个编码器、一个连接器和一个 LLM,还可选择性地在 LLM 上附加一个生成器以生成除文本之外的更多模态。连接器大致可分为基于投影的、基于查询的和基于融合的三类。 Google 的人工智能多模态大模型叫 Gemini,是 Google DeepMind 团队开发的。Gemini 不仅支持文本、图片等提示,还支持视频、音频和代码提示,能够理解和处理几乎任何输入,结合不同类型的信息,并生成几乎任何输出,被称为 Google 迄今为止最强大、最全面的模型,从设计之初就支持多模态,能够处理语言、视觉、听觉等不同形式的数据。 学习多模态大模型很有必要,因为它可以从图像中提取文本,理解图像或视频中发生的事情,识别物体、场景甚至情绪。例如,有人想为猫买新衣服,可给模型提供猫的图片和文本提示,模型会给出适合猫的衣服建议;在学生解决物理问题的例子中,模型能根据包含问题和答案的图像以及文本提示,进行推理并判断答案是否正确。输入可以是文本、图像、音频的混合,顺序很重要。
2025-01-02