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

RAG到底是什么

回答

RAG(Retrieval-Augmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构。它旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。

具体来说:

  • 利用大模型的能力搭建知识库本身就是一个 RAG 技术的应用。
  • 当需要依靠不包含在大模型训练集中的数据时,可通过 RAG 实现。其过程包括文档加载(从多种不同来源加载文档)、文本分割(把文档切分为指定大小的块)、存储(将切分好的文档块进行嵌入转换成向量形式并存储到向量数据库)、检索(通过某种检索算法找到与输入问题相似的嵌入片)。

LangChain 是一个用于构建高级语言模型应用程序的框架,它和 RAG 的关系在于:RAG 是一种结合了检索(检索外部知识库中相关信息)和生成(利用 LLM 生成文本)的技术,能够为 LLM 提供来自外部知识源的附加信息,使得 LLM 在应对下游任务时能够生成更精确和上下文相关的答案,并减少 LLM 的幻觉现象。而 LangChain 的设计主张集中在模块化组件上,为使用 LLM 提供行为抽象和实现集合,允许开发人员构造新链或实现现成的链。

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

参考资料

问:RAG 是什么?

RAG(Retrieval-Augmented Generation),即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,它旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。简单来说,就是通过检索的模式,为大语言模型的生成提供帮助,从而使大模型生成的答案更符合要求。

手把手教你本地部署大模型以及搭建个人知识库

因为利用大模型的能力搭建知识库本身就是一个RAG技术的应用。所以在进行本地知识库的搭建实操之前,我们需要先对RAG有一个大概的了解。以下内容会有些干,我会尽量用通俗易懂的描述进行讲解。我们都知道大模型的训练数据是有截止日期的,那当我们需要依靠不包含在大模型训练集中的数据时,我们该怎么做呢?实现这一点的主要方法就是通过检索增强生成RAG(Retrieval Augmented Generation)。在这个过程中,首先检索外部数据,然后在生成步骤中将这些数据传递给LLM。我们可以将一个RAG的应用抽象为下图的5个过程:文档加载(Document Loading):从多种不同来源加载文档。LangChain提供了100多种不同的文档加载器,包括PDF在内的非结构化的数据、SQL在内的结构化的数据,以及Python、Java之类的代码等文本分割(Splitting):文本分割器把Documents切分为指定大小的块,我把它们称为“文档块”或者“文档片”存储(Storage):存储涉及到两个环节,分别是:将切分好的文档块进行嵌入(Embedding)转换成向量的形式将Embedding后的向量数据存储到向量数据库检索(Retrieval):一旦数据进入向量数据库,我们仍然需要将数据检索出来,我们会通过某种检索算法找到与输入问题相似的嵌入片

问:LangChain 和 RAG 有什么关系?

LangChain是一个用于构建高级语言模型应用程序的框架,它提供了一系列的工具和组件,使得开发人员能够更容易地使用大型语言模型(LLM)来创建各种应用程序。LangChain的设计主张集中在模块化组件上,这些组件提供用于使用LLM的行为抽象,并为每个抽象提供实现的集合,从而允许开发人员构造新链或实现现成的链。RAG,即检索增强生成(Retrieval-Augmented Generation),是一种结合了检索(检索外部知识库中相关信息)和生成(利用LLM生成文本)的技术。RAG能够为LLM提供来自外部知识源的附加信息,使得LLM在应对下游任务时能够生成更精确和上下文相关的答案,并减少LLM的幻觉现象。LangChain和RAG之间的关系可以概括为:

其他人在问
RAG是什么
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构。其旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。简单来说,就是通过检索的模式,为大语言模型的生成提供帮助,从而使大模型生成的答案更符合要求。 因为利用大模型的能力搭建知识库本身就是一个 RAG 技术的应用,所以在进行本地知识库的搭建实操之前,需要先对 RAG 有大概的了解。 我们都知道大模型的训练数据是有截止日期的,那当我们需要依靠不包含在大模型训练集中的数据时,实现这一点的主要方法就是通过检索增强生成 RAG。在这个过程中,首先检索外部数据,然后在生成步骤中将这些数据传递给 LLM。 一个 RAG 的应用可以抽象为以下 5 个过程: 1. 文档加载(Document Loading):从多种不同来源加载文档。LangChain 提供了 100 多种不同的文档加载器,包括 PDF 在内的非结构化的数据、SQL 在内的结构化的数据,以及 Python、Java 之类的代码等。 2. 文本分割(Splitting):文本分割器把 Documents 切分为指定大小的块,称为“文档块”或者“文档片”。 3. 存储(Storage):存储涉及到两个环节,分别是: 将切分好的文档块进行嵌入(Embedding)转换成向量的形式。 将 Embedding 后的向量数据存储到向量数据库。 4. 检索(Retrieval):一旦数据进入向量数据库,通过某种检索算法找到与输入问题相似的嵌入片。 LangChain 是一个用于构建高级语言模型应用程序的框架,它提供了一系列的工具和组件,使得开发人员能够更容易地使用大型语言模型(LLM)来创建各种应用程序。RAG 能够为 LLM 提供来自外部知识源的附加信息,使得 LLM 在应对下游任务时能够生成更精确和上下文相关的答案,并减少 LLM 的幻觉现象。LangChain 和 RAG 之间的关系可以概括为:LangChain 的设计主张集中在模块化组件上,这些组件提供用于使用 LLM 的行为抽象,并为每个抽象提供实现的集合,从而允许开发人员构造新链或实现现成的链。
2024-09-19
RAG技术实现的原理步骤
RAG 技术实现的原理步骤主要包括以下几个方面: 1. 理解问题:AI 模型首先需要理解用户的提问或指令。 2. 文档加载:从多种不同来源加载文档,如包括 PDF 在内的非结构化数据、SQL 在内的结构化数据,以及 Python、Java 之类的代码等。 3. 文本分割:文本分割器把 Documents 切分为指定大小的块,称为“文档块”或者“文档片”。 4. 存储: 将切分好的文档块进行嵌入转换成向量的形式。 将 Embedding 后的向量数据存储到向量数据库。 5. 检索:通过某种检索算法从向量数据库中找到与输入问题相似的嵌入片。 6. 检索相关知识:AI 模型根据对问题的理解,从外部知识库中检索相关的信息。 7. 整合知识与推理:AI 模型将检索到的知识与自身的推理能力相结合,生成最终的答案或内容。 例如,在医疗领域,RAG 技术可以帮助医疗 AI 助手获取最新的医学知识和临床案例,从而提高其诊断和治疗建议的准确性。但需要注意的是,在将大型文档转换为可检索内容的过程中,如文档解析和文本切分、嵌入向量生成等步骤,每一步都可能导致信息损失,复合损失会显著影响 RAG 响应的效果。
2024-09-17
RAG技术原理
RAG(RetrievalAugmented Generation,检索增强生成)是一种自然语言处理技术,主要用于提高语言模型的效果和准确性。其原理包括以下几个方面: 1. 由于大模型的训练数据有截止日期,当需要依靠不在训练集中的数据时,RAG发挥作用。 2. 过程包括文档加载,从多种来源加载包括非结构化、结构化和代码等不同类型的文档。 3. 进行文本分割,把文档切分为指定大小的块。 4. 涉及存储环节,包括将切分好的文档块嵌入转换成向量形式,并将向量数据存储到向量数据库。 5. 通过某种检索算法从向量数据库中检索出与输入问题相似的嵌入片。 6. 结合了检索和生成两种主要的自然语言处理方法。 检索部分从大量文本数据中检索出与输入问题最相关的信息,通常使用检索系统在大规模文档集合中寻找相关文段。 生成部分使用类似 GPT 的语言模型,根据检索到的信息生成响应或回答,涉及理解检索内容并生成连贯、相关且信息丰富的文本。 7. RAG 的出现解决了语言模型仅依靠固定资料回答问题的局限性,允许模型到搜索引擎上搜索相关资料,并结合自身知识体系综合回复。 其中的检索环节并非简单操作,还包含对输入问题的纠错、补充、拆分以及对搜索内容的权重逻辑等。
2024-09-17
RAG技术
RAG 即检索增强生成(RetrievalAugmented Generation),是一种结合了检索(检索外部知识库中相关信息)和生成(利用大型语言模型生成文本)的技术。 其工作原理包括以下几个步骤: 1. 理解问题:AI 模型首先理解用户的提问或指令。 2. 检索相关知识:根据对问题的理解,从外部知识库中检索相关信息。例如,用户问“埃菲尔铁塔有多高?”,AI 模型会从知识库中检索关于埃菲尔铁塔的信息。 3. 整合知识与推理:将检索到的知识与自身的推理能力相结合,生成最终的答案或内容。 RAG 技术的优势在于能够将 AI 模型与外部知识库连接起来,从而扩展 AI 模型的知识范围,提高其回答问题和生成内容的准确性。例如在医疗领域,可帮助医疗 AI 助手获取最新的医学知识和临床案例,提高诊断和治疗建议的准确性。 RAG 由两部分组成:一个“检索器”和一个“生成器”。检索器从外部知识中快速找到与问题相关的信息,生成器则利用这些信息来制作精确和连贯的答案。这种结合使得 RAG 非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。 LangChain 是一个用于构建高级语言模型应用程序的框架,与 RAG 的关系在于,RAG 能够为大型语言模型提供来自外部知识源的附加信息,使得模型在应对下游任务时能够生成更精确和上下文相关的答案,并减少幻觉现象,而 LangChain 的设计主张集中在模块化组件上,为开发人员使用大型语言模型创建应用程序提供便利。
2024-09-17
rag与ai agent的区别
RAG(检索增强生成)与 AI Agent 存在以下区别: RAG 是给大模型提供一个浏览器工具来使用,而 AI Agent 则是给大模型提供了更多的工具,如长期记忆(相当于给大模型一个数据库工具来记录重要信息)、规划和行动(在大模型的 prompt 层进行目标拆解,并输出不同的固定格式 action 指令给工具)。 在实际应用中,外置知识的集成和管理常常采用 RAG 架构,它通过检索外部知识源来增强模型的生成能力。而 AI Agent 不仅依赖内置知识,还能实时检索和整合最新的外部信息来完成任务,例如可以让大模型帮忙安排差旅,它会判断完成目标所需的步骤,搜索差旅记录,预订酒店和机票等。 总的来说,AI Agent 在 RAG 的基础上有了更多的功能和更广泛的应用空间。
2024-09-06
对于大语言模型使用的未来趋势,是闭源云端还是开源本地部署,作为普通用户是否有必要了解本地部署知识,并且是否有必要自己搭建agent以及rag?
大语言模型的未来趋势在闭源云端和开源本地部署方面存在多种可能性。 对于开源本地部署,以下是一些相关信息: Ollama 是一个方便用户在本地运行和管理大型语言模型的框架,具有以下特点: 支持多种大型语言模型,如通义千问、Llama 2、Mistral 和 Gemma 等,适用于不同应用场景。 易于使用,适用于 macOS、Windows 和 Linux 系统,同时支持 CPU 和 GPU。 提供模型库,用户可从中下载不同模型,以满足不同需求和硬件条件,模型库可通过 https://ollama.com/library 查找。 支持用户自定义模型,例如修改温度参数调整创造性和连贯性,或设置特定系统消息。 提供 REST API 用于运行和管理模型,以及与其他应用程序的集成选项。 社区贡献丰富,包括多种集成插件和界面,如 Web 和桌面应用、Telegram 机器人、Obsidian 插件等。 安装可访问 https://ollama.com/download/ 。 可以通过一些教程学习如何本地部署大模型以及搭建个人知识库,例如了解如何使用 Ollama 一键部署本地大模型、通过搭建本地聊天工具了解 ChatGPT 信息流转、RAG 的概念及核心技术、通过 AnythingLLM 搭建完全本地化的数据库等。 同时,采用开源或国内企业提供的 13B 级模型本地部署在内部系统中,虽需投入算力,但有其价值。智能客服的大量优质大客户可能会选择自己搭建智能客服平台,并结合大模型企业提供的技术服务,基于大模型搭建 LangChain、RAG 框架,实现 RPA 自动流程。 对于普通用户是否有必要了解本地部署知识以及是否有必要自己搭建 agent 以及 rag,这取决于个人需求和兴趣。如果您希望更深入了解大模型的工作原理和运行机制,或者有特定的个性化需求,那么了解和尝试本地部署可能是有意义的。但如果只是一般的使用需求,可能无需深入了解和自行搭建。
2024-09-03
ai到底有何用
AI 具有广泛的用途,以下为您详细介绍: 在新工业革命中,特别是生物科技领域,AI 有助于将过去昂贵、人力密集、效率较低且难以获得的事物转变为更低成本、更高效、甚至更有效的“计算”。 医疗保健方面: 医学影像分析,辅助诊断疾病。 加速药物研发,识别潜在药物候选物和设计新治疗方法。 提供个性化医疗,分析患者数据制定个性化治疗方案。 控制手术机器人,提高手术精度和安全性。 金融服务领域: 风控和反欺诈,降低金融机构风险。 评估借款人信用风险,辅助贷款决策。 分析市场数据,助力投资决策。 提供 24/7 客户服务,回答常见问题。 零售和电子商务行业: 分析客户数据进行产品推荐。 改善搜索结果和提供个性化购物体验。 实现动态定价。 汽车行业: 自动驾驶技术,进行图像识别、传感器数据分析和决策制定。 增强车辆安全性能,如自动紧急制动、车道保持辅助和盲点检测。 提供个性化用户体验,根据驾驶员偏好和习惯调整车辆设置。 进行预测性维护,减少停机时间和维修成本。 实现生产自动化,提高生产效率和质量控制。 辅助销售和市场分析。
2024-09-11
大模型到底是什么
大模型是指输入大量语料,从而让计算机获得类似人类“思考”能力,能够进行文本生成、推理问答、对话、文档摘要等工作的模型。 大模型之所以被称为“大”,主要体现在以下几个方面: 1. 拥有庞大的参数数量,通常包含从数十亿到数千亿的参数,这些参数包括权重和偏置,例如 GPT3 拥有 1750 亿参数。 2. 需要大量的数据进行训练,无论是文本、图像还是音频数据,都是其学习的基础。通过对海量数据的学习,模型能够掌握丰富的知识和技能。 可以用“上学参加工作”这件事来类比大模型的训练和使用过程: 1. 找学校:训练大模型需要大量的计算,因此 GPU 更合适,只有购买得起大量 GPU 的才有资本训练自己的大模型。 2. 确定教材:大模型需要的数据量特别多,几千亿序列(Token)的输入基本是标配。 3. 找老师:即用合适的算法讲述“书本”中的内容,让大模型能够更好理解 Token 之间的关系。 4. 就业指导:为了让大模型能够更好胜任某一行业,需要进行微调(fine tuning)指导。 5. 搬砖:就业指导完成后,正式干活,比如进行一次翻译、问答等,在大模型里称之为推导(infer)。
2024-08-28