Navigate to WaytoAGI Wiki →
Home/question.detail.breadcrumb.questionList/question.detail.breadcrumb.questionDetail

RAG到底是什么

Answer

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

具体来说:

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

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

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

References

问: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之间的关系可以概括为:

Others are asking
dify 实现rag
Dify 是一个开源的大规模语言模型(LLM)应用开发平台,具有以下特点和优势: 1. 配备 RAG 引擎,允许用户编排从代理到复杂 AI 工作流的 LLM 应用。 2. 关键特性: 快速部署,5 分钟内可部署定制化的聊天机器人或 AI 助手。 创意文档生成,能从知识库生成清晰、逻辑性强且无长度限制的文档。 长文档摘要,可轻松对长文档进行摘要。 自定义 API,能安全连接业务知识,解锁更深层次的 LLM 洞察。 连接全球 LLM。 生产就绪,比 LangChain 更接近生产环境。 开源,可被社区广泛使用和改进。 3. 资源获取:可从 Dify 的 GitHub 仓库(https://github.com/langgenius/dify.git 和 https://docs.dify.ai/)获取源代码、文档、安装指南、使用说明和贡献指南等资源。 4. 是一个结合后端即服务和 LLMOps 理念的平台,为用户提供直观界面快速构建和部署生产级别的生成式 AI 应用,具备强大工作流构建工具、广泛模型集成、功能丰富的提示词 IDE 及全面的 RAG Pipeline 用于文档处理和检索,允许定义 Agent 智能体,并通过 LLMOps 功能对应用程序性能持续监控和优化。提供云服务和本地部署选项,满足不同用户需求。其设计理念注重简单性、克制和快速迭代,个人研究可单独使用,企业级落地项目推荐多种框架结合。 5. 官方手册:https://docs.dify.ai/v/zhhans
2024-12-25
RAG
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构。 其核心目的是为大语言模型(LLM)提供额外的、来自外部知识源的信息,通过检索模式为大语言模型的生成提供帮助,使生成的答案更符合要求。 大模型需要 RAG 进行检索优化的原因在于其存在一些缺点: 1. 无法记住所有知识,尤其是长尾知识,受训练数据和学习方式限制,对长尾知识接受能力不高。 2. 知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。 3. 输出难以解释和验证,存在内容黑盒、不可控及受幻觉问题干扰的情况。 4. 容易泄露隐私训练数据。 5. 规模大,训练和运行成本高。 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,可解释且不影响原有知识。 3. 数据库内容明确、结构化,加上模型理解能力,降低大模型输出出错可能。 4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型训练成本,新知识存储在数据库即可,无需频繁更新模型。 RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。其最常见应用场景是知识问答系统,用户提出问题,RAG 模型从大规模的文档集合中检索相关的文档,然后生成回答。 RAG 由一个“检索器”和一个“生成器”组成,检索器从外部知识中快速找到与问题相关的信息,生成器则利用这些信息来制作精确和连贯的答案,非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。
2024-12-25
推荐 GraphRAG 的学习文档
以下是为您推荐的 GraphRAG 学习文档: 1. ,其中包含 GraphRAG 相关内容。 2. ,涉及 GraphRAG 内容。 3. ,有关于 GraphRAG 的介绍。 4. ,包含 GraphRAG 相关内容。 5. ,通俗易懂地介绍了 GraphRAG 的原理、与传统 RAG 的区别、GraphRAG 的优势、知识图谱的创建和利用知识图谱工作。
2024-12-24
什么是rag
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构。 其旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。通过检索的模式,为大语言模型的生成提供帮助,使大模型生成的答案更符合要求。 大模型需要 RAG 进行检索优化的原因在于其存在一些缺点: 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. Output(输出):把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示一起来生成更加合理的答案。
2024-12-23
RAG
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构。 大模型需要 RAG 进行检索优化,是因为大模型存在一些缺点: 1. 无法记住所有知识,尤其是长尾知识,受限于训练数据和学习方式,对长尾知识的接受能力不高。 2. 知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。 3. 输出难以解释和验证,存在内容黑盒、不可控及受幻觉问题干扰的情况。 4. 容易泄露隐私训练数据。 5. 规模大,训练和运行成本高。 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,可解释且不影响原有知识。 3. 数据库内容明确、结构化,加上模型的理解能力,能降低大模型输出出错的可能。 4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型的训练成本,新知识存储在数据库即可,无需频繁更新模型。 RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt 中,提交给大模型,此时大模型的回答会充分考虑到“包含答案的内容”。其最常见应用场景是知识问答系统。 RAG 由一个“检索器”和一个“生成器”组成,检索器从外部知识中快速找到与问题相关的信息,生成器利用这些信息来制作精确和连贯的答案,非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。
2024-12-19
如何搭建一个RAG应用?
搭建一个 RAG 应用可以使用 LangChain 平台,以下是相关步骤和组件: 1. 数据加载器(DocumentLoader):这是一个对象,能从数据源加载数据并转换为包含 page_content(文本内容)和 metadata(元数据,如标题、作者、日期等)的文档对象。 2. 文本分割器(DocumentSplitter):可将文档对象分割成多个较小的文档对象,方便后续检索和生成,因为大模型输入窗口有限,短文本更易找到相关信息。 3. 文本嵌入器(Embeddings):能将文本转换为高维向量的嵌入,用于衡量文本相似度以实现检索功能。 4. 向量存储器(VectorStore):可存储和查询嵌入,通常使用 Faiss 或 Annoy 等索引技术加速检索。 5. 检索器(Retriever):能根据文本查询返回相关文档对象,常见实现是向量存储器检索器,利用向量存储器的相似度搜索功能检索。 6. 聊天模型(ChatModel):可根据输入序列生成输出消息,通常基于大模型如 GPT3 实现文本生成功能。 使用 LangChain 构建 RAG 应用的一般流程如下: 首先,使用合适的数据加载器根据数据源类型加载数据。例如,数据源是网页可用 WebBaseLoader 加载和解析网页得到文档对象。 然后,用合适的文本分割器将文档对象分割成较小的符合要求的文档对象。如文本是博客文章,可用 RecursiveCharacterTextSplitter 分割。 接下来,用文本嵌入器将文档对象转换为嵌入,并存储到向量存储器中。可根据嵌入质量和速度选择合适的嵌入器和存储器,如 OpenAIEmbeddings 和 ChromaVectorStore。 之后,创建向量存储器检索器,传递向量存储器对象和文本嵌入器对象作为参数。 最后,创建聊天模型,根据性能和成本选择合适的模型,如 OpenAIChatModel。 以下是一个使用 LangChain 构建 RAG 应用的示例代码。
2024-12-15
AI智能体在电商领域到底能做什么
AI 智能体在电商领域主要有以下应用: 1. 电商导购:以“什么值得买”智能体为例,当用户输入购买需求,如“我想买个笔记本电脑”,智能体会提取关键词,通过相关 API 检索商品信息,与内置提示词组装成上下文,请求大模型回答,提供更精准的商品推荐。 2. 工作流协作:通过多个智能体的组装,解决复杂场景的搜索问题。例如给新产品取名,定义多个智能体分别负责不同功能,如给出建议名字、检索是否同名等,同时需要调度中枢协调工作,决定是继续下一步还是回溯。 3. 决策支持:如在理赔提交审核中,将付款方规则转换为有向无环图,智能体遍历决策树,利用语言模型评估相关文件是否符合规则,并在复杂任务中选择最佳方法。 4. 品牌卖点提炼:实际搭建中,遵循营销管理流程保证输出合理性,根据电商业态调整单独智能体的提示词提升信息准确度,为营销团队提供更广阔思路和灵感。
2024-12-19
AI到底是什么
AI 是一门令人兴奋的科学,它是指某种模仿人类思维,可以理解自然语言并输出自然语言的东西。 对于没有理工科背景的人来说,可以将其当成一个黑箱。AI 就像传统道教中的驱神役鬼拘灵遣将,通过特定的文字、仪轨程式来引用已有资源,驱使某种可以一定方式/程度理解人类文字的异类达成预设效果,且存在突破界限的可能。 AI 技术再怎么发展,其生态位仍是一种似人而非人的存在。 从任务角度看,最初计算机遵循明确的程序和算法进行数字运算。但对于像“根据照片判断一个人的年龄”这类无法明确编程的任务,因为我们不清楚大脑完成此任务的具体步骤,所以无法编写明确程序让计算机完成,而这类任务正是 AI 所感兴趣的。 在健身领域,AI 健身是利用人工智能技术辅助或改善健身训练和健康管理的方法,能根据用户情况提供定制化训练计划和建议。相关的 AI 工具如 Keep、Fiture、Fitness AI、Planfit 等。
2024-12-16
AI到底是什么
AI 是一门令人兴奋的科学,它是指某种模仿人类思维,可以理解自然语言并输出自然语言的东西。 对于不具备理工科背景的人来说,可以把 AI 当成一个黑箱,只需要知道它是能够理解自然语言的存在即可。其生态位是一种似人而非人的存在,即便技术再进步,这一生态位也不会改变。 从历史角度看,最初计算机是按照明确定义的程序来运算的,但对于像从照片判断人的年龄这类无法明确编程的任务,就需要人工智能来解决。 在应用方面,AI 健身是利用人工智能技术辅助或改善健身训练和健康管理的方法,能根据用户情况提供定制化训练计划和建议。比如 Keep、Fiture、Fitness AI、Planfit 等都是不错的 AI 健身工具。
2024-11-22
你觉得人工智能带给人类的到底是提升还是毁灭呢?
人工智能带给人类的影响既有提升也有潜在的挑战,但并非必然导致毁灭。 从提升的方面来看: 技术上可以解决类似于社会歧视等问题,如通过 RLHF 等方法。 优化工作效率,虽然可能导致某些岗位的调整,但实际每个工作的组成部分不是单一的,人可以和人工智能更好地协同。例如放射科医生的案例,解读 X 光照片只是其工作的一部分,实际并未失业。 可以成为解决气候变化和大流行病等问题的关键。 作为自主的个人助理,代表人们执行特定任务,如协调医疗护理。帮助构建更好的下一代系统,并在各个领域推动科学进展。 潜在的挑战和担忧包括: 可能放大人类的负面影响,需要在技术层级加以解决。 导致失业,但能掌握人工智能的人会取代不会的人。 存在人类毁灭的担忧,不过目前此类观点缺乏具体的说明和论证。 对于强人工智能,目前 ChatGPT 的崛起引发了相关讨论,但通用技术并非等同于强人工智能。对于复杂的神经网络和黑箱模型的研究仍在进行,如何使用和控制这些模型是业界和社会争论的热点。科技公司倾向于训练辅助人类的超级智能助手,而非自我改进升级的超级智能体,以推动新一轮的工业革命和经济增长。 总之,人工智能的发展带来了巨大的机遇和挑战,需要我们聪明而坚定地采取行动,以实现其正面影响并应对潜在风险。
2024-11-16
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