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

RAG搜索

Answer

RAG(Retrieval Augmented Generation,检索增强生成)是一种利用大模型能力搭建知识库的技术。以下是关于 RAG 的详细介绍:

  • 背景:大模型训练数据有截止日期,当需要依靠不在训练集中的数据时,RAG 应运而生。
  • 过程:
    • 文档加载:从多种来源加载文档,如 PDF 等非结构化数据、SQL 等结构化数据、Python 等代码。
    • 文本分割:把文档切分为指定大小的块。
    • 存储:包括将切分好的文档块嵌入转换成向量形式,并将向量数据存储到向量数据库。
    • 检索:通过检索算法找到与输入问题相似的嵌入片。
    • 输出:把问题及检索出来的嵌入片提交给 LLM,生成更合理的答案。
  • 核心组件:分为检索、增强、生成三部分。其中检索是核心组件之一,负责从外部数据源或知识库中获取与用户查询相关的信息,其质量和效率对 RAG 系统性能至关重要。涉及检索策略、检索粒度、检索方法、检索效率、外部数据源等关键概念和技术。
  • 引入方式:可以从 AI 搜索切入来理解 RAG。AI 大模型擅长语义理解和文本总结,但不擅长获取实时信息;搜索引擎擅长获取实时信息但信息分散。AI 与搜索引擎结合,给 AI 配备知识库,类似于 RAG 原理。
Content generated by AI large model, please carefully verify (powered by aily)

References

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

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

开发:产品视角的大模型 RAG 应用

开发:产品视角的大模型RAG应用[heading1]一文看懂RAG:大语言模型落地应用的未来[heading2]RAG中的核心组件RAG的核心组件分为三个部分检索(Retrieval)、增强(Augmentation)、生成(Generation),其分类结构如下图:[heading3]RAG中的检索(Retrieval)[content]检索是检索增强生成(RAG)框架的核心组件之一,它负责从外部数据源或知识库中获取与用户查询相关的信息。检索的质量和效率对于RAG系统的性能至关重要,因为它直接影响生成的文本或回答的准确性和相关性。以下是与检索相关的一些关键概念和技术:检索策略:RAG系统需要确定何时进行检索以及如何选择要检索的信息。检索策略可以根据任务和上下文进行调整,以提高系统的效率和性能。检索粒度:检索可以以不同的粒度进行,从单个标记或实体到更大的文本块或知识图。选择适当的检索粒度取决于任务的要求和数据的结构。检索方法:有多种检索方法可供选择,包括基于关键字的检索、实体检索、自然语言查询和知识图检索等。每种方法都有其适用的情境和优势。检索效率:高效的检索是关键因素之一,尤其是在实时应用中。优化检索过程以降低延迟和资源消耗是重要任务之一。外部数据源:RAG系统可以从各种外部数据源中进行检索,包括互联网上的文档、知识库、数据库和API。选择合适的数据源对于获取准确和丰富的信息至关重要。在RAG框架中,检索与生成和增强技术密切合作,以生成最终的文本或回答。因此,检索的质量和效率对于整个RAG系统的性能和效果至关重要。

胎教级教程:万字长文带你理解 RAG 全流程

旁白:在学习RAG之初,你不知道如何切入,这时候你认识了一个叫做大圣的老师。他说,你可以从AI搜索切入,帮助你理解RAGRAG的流程相对复杂,为了让大家更好的理解RAG,我们先用大家比较熟悉的AI搜索来引出RAG。AI大模型最擅长的是语义理解和文本总结,最不擅长的就是获取实时的信息。搜索引擎最擅长的就是获取实时的信息,但是缺点就是信息太分散了,每次都需要人为进行总结。AI+搜索引擎的结合,就是我们上面讲到的,给AI配备了一个活字典,让AI可以随时进行查阅。下图是一个简化版本的AI搜索工作原理,其中搜索引擎在这里就充当着知识库的角色。下面则是我用Coze制作的一个秘塔搜索机器人,感兴趣可以看下他的工作过程[20240828234529_rec_.mp4](https://bytedance.feishu.cn/space/api/box/stream/download/all/QsLabWiPzoXN6GxVqpmc4Z9Vntb?allow_redirect=1)OK,关于AI搜索我们就简单介绍到这里,下面我们正式开始介绍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 大模型特点和应用: RAG(检索增强生成):通过引用外部数据源为模型做数据补充,适用于动态知识更新需求高的任务。其原理是在基础大模型基础上引用外部数据,对搜索到的数据信息进行切片、拆分和语义理解,再根据用户提问进行检索和回答,但比基座模型更耗时。RAG 是一个检索生成框架,能够支持在本地运行。 AI 搜索:结合了多种能力,如 fine tuning、实时联网查询和查询知识源等,能够为用户整理出想要的内容。一些 AI 搜索平台专注于特定领域,如为程序员提供代码搜索。 多模态大模型:像能唱会跳、精通多种技能的机器人,能看见、听见、思考、说话,例如能识别物体、听取指令等。 生成式模型和决策式模型:决策式模型偏向逻辑判断,按预设程序固定输出;生成式模型偏随机性,能动态组合并结构化呈现,如在图像识别中,决策式模型返回关键词,生成式模型用语言表达结构化信息。
2024-12-25
ai怎样精准搜索
AI 精准搜索可以通过以下几个关键步骤来实现: 1. 意图识别:对用户提问进行分类,如导航类、信息查询类、交易类、本地信息类等,还包括多级子分类。通过分类匹配更准的信息源和更好的回复提示词,很大程度提升检索召回率。目前主流的实现方案主要是通过提示词请求大模型完成,但准确度不够高,大模型的 Function Calling 能力也可理解为一种意图识别。 2. 问题改写(Query Rewrite):在完成意图识别并确认需要联网检索后,对用户的 query 进行改写,目的是得到更高的检索召回率。主要包括三个维度的改写,即让提问有更精准/更专业的表达、补全上下文做指代消解、名词提取。改写可以通过设置提示词请求大模型完成。 3. 多信息源聚合(Multi Source):提升 AI 搜索准确度的另一个关键措施是做多信息源整合。结合意图识别和问题改写,假设用户搜索特定问题,可根据意图判断是否联网及搜索类型,提取概念名词,除常见检索外,还可检索其他信息源获取更多内容。多信息源的整合可能涉及海量数据处理和自建信息源索引等技术,传统搜索厂商和依靠 UGC 建立数据飞轮的超级 App 在这方面有优势。 4. 搜索结果重排(Reranking):AI 搜索做多信息源整合时,需要对检索结果重排。重排目的主要是过滤不相关参考信息和对相关性进行排序,便于截取权重最高的 top_k 条记录作为引用参考。重排方案有使用 zilliz 向量数据库+llamaindex 框架做相似度匹配和使用 FlashRank 开源框架,但前者效率低,后者准确度不够高。 5. 搜索内容读取(Read Content)
2024-12-22
我想用coze搭建一个智能体,关于自然语言课程的期末复习指南,要将我的教材导入扣子作为知识库,智能体支持用户提问,搜索知识点,结合知识库和互联网搜索的内容给出问答,需要使用多智能体或工作流,使用卡片功能进行显示,请给出我搭建这个智能体的步骤
以下是使用 Coze 搭建一个关于自然语言课程期末复习指南智能体的步骤: 1. 访问 Coze 官网(https://www.coze.cn),注册并登录。 2. 点击页面左上角的⊕,通过【标准创建】填入智能体的基本信息。 3. 了解 Bot 开发调试界面: 人设与回复逻辑(左侧区域):设定智能体的对话风格、专业领域定位,配置回复的逻辑规则和限制条件,调整回复的语气和专业程度。 功能模块(中间区域): 技能配置: 插件:扩展智能体的专业能力,如计算器、日历等工具。 工作流:设置固定的处理流程和业务逻辑。 图像流:处理和生成图像的相关功能。 触发器:设置自动化响应条件。 知识库管理: 文本:存储文字类知识材料。 表格:结构化数据的存储和调用。 照片:图像素材库。 记忆系统: 变量:存储对话过程中的临时信息。 数据库:管理持久化的结构化数据。 长期记忆:保存重要的历史对话信息。 文件盒子:管理各类文档资料。 交互优化(底部区域): 开场白:设置初次对话的问候语。 用户问题建议:配置智能推荐的后续问题。 快捷指令:设置常用功能的快速访问。 背景图片:自定义对话界面的视觉效果。 预览与调试(右侧区域):实时测试智能体的各项功能,调试响应效果,优化交互体验。 4. 设定智能体的人设与回复逻辑后,为智能体配置对应的技能,以保证其可以按照预期完成目标任务。例如,以获取 AI 新闻的智能体为例,需要为它添加一个搜索新闻的接口来获取相关新闻。具体操作如下: 在智能体编排页面的技能区域,单击插件功能对应的+图标。 在添加插件页面,选择相关功能,然后单击新增。 修改人设与回复逻辑,指示智能体使用相应插件来搜索所需内容。 (可选)为智能体添加开场白,让用户更好地了解智能体的功能。开场白功能目前支持豆包、微信公众号(服务号)。 5. 配置好智能体后,在预览与调试区域中测试智能体是否符合预期。可单击清除图标清除对话记录。 6. 完成测试后,将智能体发布到社交渠道中使用。具体操作如下: 在智能体的编排页面右上角,单击发布。 在发布页面输入发布记录,并勾选发布渠道。 单击发布。 更多内容,请访问 Coze 官方文档: 英文版:https://www.coze.com/docs/welcome.html 中文版:https://www.coze.cn/docs/guides/welcome
2024-12-20
帮我找一个搜索企业联系方式的AI
目前暂时没有专门用于搜索企业联系方式的 AI 工具。但您可以利用一些常见的搜索引擎,并结合相关的企业信息查询网站来获取企业联系方式。例如,天眼查、企查查等网站可以提供一定的企业信息,包括联系方式。
2024-12-18
如何将网站搜索,修改成al聊天提问回答
要将网站搜索修改为 AI 聊天提问回答,您可以参考以下内容: 在 Cursor 中: Chat 聊天:允许您与看到您代码库的 AI 交谈,始终能看到当前文件和光标,可通过“⌘+Shift+L 或‘@’将特定代码块添加到上下文中,使用“⌘+Enter 与整个代码库聊天。 Codebase Answers 代码库答案:使用“@Codebase 或“⌘Enter 询问有关代码库的问题,Cursor 会搜索代码库以查找相关代码。 Reference your Code 引用您的代码:通过带有“@符号的参考代码用作 AI 的上下文,只需键入“@即可查看文件夹中所有文件和代码符号的列表。 Use Images 使用图像:点击聊天下方的图片按钮或拖入图片到输入框以包含视觉上下文。 Ask the Web 询问 Web:使用“@Web 从 Internet 获取最新信息,Cursor 会为您搜索网络并使用最新信息回答问题。 在 Customize 自定义方面: 可以在 Cursor Settings>Features>Chat 下自定义光标聊天。相关设置包括: 始终在网上搜索答案:这会使 AI 模型在每个查询中浏览网络以获取最新信息。 添加聊天淡入淡出动画:为生成的 AI 消息添加平滑动画。 默认为无上下文:使 AI 模型仅使用用户消息作为上下文,不包含其他上下文如当前文件。 自动滚动聊天:在 AI 在线程底部生成文本时自动滚动聊天。 在聊天窗格中缩小滚动条。 开始新聊天时显示聊天历史记录。
2024-12-18
如何有效的利用ai搜索网页信息
以下是有效利用 AI 搜索网页信息的方法: 1. 收集相关资料: 明确文章主题后,借助 AI 工具如 Perplexity.AI 来高效完成。访问该网站并使用其搜索功能,为获得更专业和深入的结果,可启用 Pro 功能(每天有一定次数免费使用,常使用可考虑开通会员)。在搜索框中输入具体 Prompt 来快速定位相关资讯。 通过 AI 工具获取搜索结果后,点击回答内容下方的拷贝按钮获取相关引用网站链接。同理,微软的 Bing 搜索引擎等也有类似功能,可快速搜集大量资料,提升文章专业度和说服力。 2. 整理资料: 可使用月之暗面开发的 Kimi 这个 AI 会话助手,它具备读取网页内容并生成一定内容的能力,但可能存在阅读能力限制,可分批次提供资料确保其有效读取和理解。 此外,能联网检索的 AI 有: ChatGPT Plus 用户可开启 web browsing 功能实现联网。 Perplexity 结合了 ChatGPT 式的问答和普通搜索引擎的功能,可指定希望聊天机器人在制定响应时搜索的源类型。 Bing Copilot 作为 AI 助手,可简化在线查询和浏览活动。 还有如 You.com 和 Neeva AI 等搜索引擎,提供基于人工智能的定制搜索体验,并保持用户数据的私密性。 需注意,这些内容由 AI 大模型生成,请仔细甄别。
2024-12-15