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

检索是什么

回答

检索是检索增强生成(RAG)框架的核心组件之一,负责从外部数据源或知识库中获取与用户查询相关的信息。其质量和效率对 RAG 系统的性能至关重要,直接影响生成的文本或回答的准确性和相关性。

与检索相关的一些关键概念和技术包括:

  1. 检索策略:RAG 系统需确定何时进行检索以及如何选择要检索的信息,可根据任务和上下文调整以提高效率和性能。
  2. 检索粒度:能以不同粒度进行,如单个标记、实体、更大的文本块或知识图,选择取决于任务要求和数据结构。
  3. 检索方法:有多种可选,如基于关键字的检索、实体检索、自然语言查询和知识图检索等,每种方法都有适用情境和优势。
  4. 检索效率:高效检索是关键,尤其在实时应用中,需优化检索过程以降低延迟和资源消耗。
  5. 外部数据源:RAG 系统可从多种外部数据源检索,包括互联网上的文档、知识库、数据库和 API,选择合适的数据源对获取准确丰富的信息很重要。

在 LangChain 应用开发中,检索器是一个能根据文本查询返回相关文档对象的对象,常见实现如向量存储器检索器,它利用向量存储器的相似度搜索功能实现检索。使用 LangChain 构建 RAG 应用的一般流程为:首先加载数据,根据数据源类型选择合适的数据加载器,如网页可使用 WebBaseLoader;然后将文档对象分割成较小的对象,根据文本特点选择合适的文本分割器,如博客文章可用 RecursiveCharacterTextSplitter。

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

参考资料

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

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

开发:LangChain应用开发指南-大模型的知识外挂RAG

检索器(Retriever):检索器是一个对象,可以根据一个文本查询返回相关的文档对象。检索器的一种常见实现是向量存储器检索器(VectorStoreRetriever),它使用向量存储器的相似度搜索功能来实现检索。聊天模型(ChatModel):聊天模型是一个对象,可以根据一个输入序列生成一个输出消息。聊天模型通常基于大模型,例如GPT-3,来实现文本生成的功能。使用LangChain构建RAG应用的一般流程如下:首先,我们需要加载我们的数据。我们可以使用数据加载器来实现这一步,根据数据源的类型选择合适的数据加载器。例如,如果我们的数据源是一个网页,我们可以使用WebBaseLoader,它可以使用urllib和BeautifulSoup()来加载和解析网页,返回一个文档对象。然后,我们需要将我们的文档对象分割成较小的文档对象。我们可以使用文本分割器来实现这一步,根据文本的特点选择合适的文本分割器。例如,如果我们的文本是一个博客文章,我们可以使用RecursiveCharacterTextSplitter,它可以递归地使用常见的分隔符(如换行符)来分割文本,直到每个文档对象的大小符合要求。

开发:LangChain应用开发指南-大模型的知识外挂RAG

检索器(Retriever):检索器是一个对象,可以根据一个文本查询返回相关的文档对象。检索器的一种常见实现是向量存储器检索器(VectorStoreRetriever),它使用向量存储器的相似度搜索功能来实现检索。聊天模型(ChatModel):聊天模型是一个对象,可以根据一个输入序列生成一个输出消息。聊天模型通常基于大模型,例如GPT-3,来实现文本生成的功能。使用LangChain构建RAG应用的一般流程如下:首先,我们需要加载我们的数据。我们可以使用数据加载器来实现这一步,根据数据源的类型选择合适的数据加载器。例如,如果我们的数据源是一个网页,我们可以使用WebBaseLoader,它可以使用urllib和BeautifulSoup来加载和解析网页,返回一个文档对象。然后,我们需要将我们的文档对象分割成较小的文档对象。我们可以使用文本分割器来实现这一步,根据文本的特点选择合适的文本分割器。例如,如果我们的文本是一个博客文章,我们可以使用RecursiveCharacterTextSplitter,它可以递归地使用常见的分隔符(如换行符)来分割文本,直到每个文档对象的大小符合要求。

其他人在问
联网检索的ai
以下是关于联网检索的 AI 的相关信息: 存在能联网检索的 AI,它们通过连接互联网,实时搜索、筛选并整合所需数据,为用户提供更精准和个性化的信息。 例如 ChatGPT Plus 用户现在可以开启 web browsing 功能实现联网。 Perplexity 结合了 ChatGPT 式的问答和普通搜索引擎的功能,允许用户指定希望聊天机器人在制定响应时搜索的源类型。 Bing Copilot 作为 AI 助手,旨在简化在线查询和浏览活动。 还有如 You.com 和 Neeva AI 等搜索引擎,提供基于人工智能的定制搜索体验,并保持用户数据的私密性。 常见的 AI 助手采用通过联网搜索获取实时信息。当用户开启联网搜索时,助手先将用户的请求发送至搜索引擎,再将返回内容与用户输入一起提供给大模型,最终生成回答。搜索引擎在此作为实时信息源,为大语言模型提供额外的上下文。 如果希望 AI 能提供行业内部信息、或者研发的自有系统内的信息,AI 联网搜索的效果就很不好,甚至无法实现。用户可以自行搭建 AI 代理,将自有系统的数据通过 API 的形式接入 AI 助手,为大语言模型补充提供丰富的上下文信息。 MCP 协议解决了 AI 大模型与数据源集成碎片化的问题,提供统一标准,让开发者无需为每个数据源和 AI 助手单独开发连接器。通过 MCP,数据源和 AI 工具可建立安全双向连接,使 AI 在不同工具和数据集间流畅协作,实现更可持续的架构。 在完成意图识别,确认需要联网检索之后,可以对用户的 query 进行改写(Rewrite)。Query Rewrite 的目的,是为了得到更高的检索召回率。Query Rewrite 可以通过设置提示词请求大模型完成,主要包括三个维度的改写: 让提问有更精准/更专业的表达。比如用户搜索“ThinkAny”,改写后的 query 可以是“ThinkAny 是什么?”,再把问题翻译成英文“ What is ThinkAny ”,同一个问题,双语分别检索一次,得到更多的参考信息。 补全上下文,做指代消解。比如用户搜索“ThinkAny 是什么?”,得到第一次回复后继续追问“它有什么特点?”,用历史对话内容作为上下文,把第二次 query 改写成“ThinkAny 有什么特点?”,指代消解后再去检索,会有更高的召回率。 名词提取。比如用户搜索“ThinkAny 和 Perplexity 有什么区别?”,可以把“ThinkAny”和“Perplexity”两个名词提取出来,分别检索。 提升 AI 搜索准确度,另一个关键措施就是做多信息源整合。结合上面提到的意图识别和问题改写,假设用户搜索“ThinkAny 和 Perplexity 的区别是什么?”,根据意图识别,判断需要联网,并且是信息查询类的搜索意图。在问题改写阶段,提取出来“ThinkAny”和“Perplexity”两个概念名词,除谷歌检索之外,还可以检索 Wikipedia/Twitter 等信息源,拿到百科词条内容和 Twitter 的用户反馈信息,可以更好地回答这个问题。AI 搜索最大的壁垒在于数据。 内容由 AI 大模型生成,请仔细甄别。
2025-04-09
你这个知识库和检索是用什么搭建的?
我们的知识库和检索主要基于以下原理和流程搭建: 1. 文本预处理:包括去除无关字符、标准化文本(如将所有字符转换为小写)、分词等,以清洁和准备文本数据。 2. 嵌入表示:将预处理后的文本(词或短语)转换为向量。通常通过使用预训练的嵌入模型,如 Word2Vec、GloVe、BERT 等,将每个词或短语映射到高维空间中的一个点(即向量)。 3. 特征提取:对于整个问题句子,可能应用进一步的特征提取技术,比如句子级别的嵌入,或使用深度学习模型(如 BERT)直接提取整个句子的表示,以捕捉句子的上下文信息。 4. 向量优化:在某些情况下,问题的向量表示可能会根据具体任务进行优化,例如通过调整模型参数来更好地与检索系统的其他部分协同工作。 在知识库检索阶段: 1. 首先需要有一个知识库。在大模型的检索中,并非依靠传统的关键字搜索,而是依靠问题在空间中的向量位置,去寻找距离这个向量最近的其他词句,然后完成检索。 2. 要在向量中进行检索,我们的知识库会被转化成一个巨大的向量库。具体流程包括文档向量化、文档加载(从多种不同来源加载文档)、文本分割(把文档切分为指定大小的块)、存储(将切分好的文档块进行嵌入转换成向量的形式,并将向量数据存储到向量数据库)、检索(通过某种检索算法找到与输入问题相似的嵌入片)以及输出(把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示一起生成更加合理的答案)。
2025-03-25
检索有关AI入门必读书籍
以下是为您推荐的 AI 入门必读书籍: 1. 「」,有助于熟悉 AI 的术语和基础概念。 2. 「」,其中包含为初学者设计的课程。 3. GPT1 到 Deepseek R1 所有公开论文 The 2025 AI Engineer Reading List:涉及人工智能工程的 10 个领域,包括 LLMs、基准、提示、RAG、代理、CodeGen、视觉、语音、扩散、微调。如果您想从零开始,可以从此处开始。 4. 入门经典必读:作者为 ,原文地址:https://a16z.com/2023/05/25/aicanon/ 。文中分享了一份用于更深入了解现代 AI 的精选资源列表。
2025-03-17
如何设置知识库才可以提高检索效率
以下是一些提高知识库检索效率的方法: 1. 文档分块: 分块是为了后续的检索能返回更精准的答案。 避免把整个使用手册作为一个整体检索,防止返回大量无关信息。 适应模型输入限制,确保能将相关信息输入到模型中,不超出其处理能力。 提升回答质量,让大语言模型更集中地理解和回答特定问题。 优化向量表示,得到更精确的向量,提高检索准确性。 2. 选择合适的工具和平台: 如使用 Coze 时: 可以使用外贸大师产品的帮助文档进行演示。 选择其中一个文档创建知识库,如“购买后新人常见问题汇总·语雀”。 点击创建知识库,从知识库中添加知识单元,使用 Local doucuments 的方式,上传 Markdown 格式文档,注意每个问题使用“”开头。 但要注意文档的分片策略会严重影响查询结果,跨分片总结和推理能力弱、文档有序性被打破、表格解析失败等是基于 RAG 方案自身原理导致的问题。 如使用百炼时: 在百炼控制台的中的非结构化数据页签中点击导入数据,上传相关文档。 根据文档大小,百炼需要一定时间解析,通常占用 1 6 分钟。 进入,创建新的知识库并选择上传的文件,其他参数保持默认,建立索引。 选择向量存储类型时,若希望集中存储、灵活管理多个应用的向量数据,可选择 ADB PG。 完成知识库创建后,返回,打开知识检索增强开关、选择目标知识库,测试验证符合预期后点击发布。 特别需要注意的是,不同工具和平台可能存在各自的特点和限制,需要根据实际情况进行选择和优化。
2025-03-14
有没有路径可以围绕DS、豆包等大模型的检索结果做优化的路径
围绕 DS、豆包等大模型的检索结果做优化的路径包括以下方面: 首先,通过集成收集 AI 反馈(AIF)聊天模型完成情况,然后利用 GPT4(UltraFeedback)进行评分并二值化为偏好。其中,Step2AIF 在某种程度上是一种 selfplay,通过多模型 prompt 生成来进行 RL。在模型最终采用的 DPO 算法的 SFT 过程中,用于最终模型 SFT 所训练的 AIF 数据集与原始 pretraining 数据集在数据(tokens)序列组织构象上存在差异,这是一种 Synthetic Data 的路径,关键在于这种 Synthetic Data 与原始 Data 在特征与知识分布上的差异。 DPO 算法通俗来讲,当一个答案是好的答案时,模型要尽可能增大其被策略模型生成的概率;当一个答案是差的答案时,模型则需要尽可能降低其被策略模型生成的概率。 以上是在 RL×LLM 方面的一些探索,接下来需要将上述模型案例以及延展的思考进行沉淀,回归第一性原理进行更进一步的本质探寻,以找到两者之间隐含的共性、差异以及呈现当前技术发展路径与现状的必然性。
2025-03-04
增强检索生成
RAG(RetrievalAugmented Generation,检索增强生成)是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。 通用语言模型通过微调可完成常见任务,而对于更复杂和知识密集型任务,基于语言模型构建访问外部知识源的系统能使结果更符合事实、更可靠,缓解“幻觉”问题。Meta AI 的研究人员引入了 RAG 方法来完成这类任务,它把信息检索组件和文本生成模型结合在一起,可微调且内部知识修改高效,无需重新训练整个模型。 RAG 工作流程如下: 1. 检索:利用用户查询从外部知识源获取相关信息,将查询转化为向量与向量数据库比对,找到最匹配的前 k 个数据作为补充背景信息。 2. 数据库索引:包括离线获取数据、清理提取原始数据、转换文件格式、分块、嵌入和创建索引等步骤。 3. 增强:将用户查询和检索到的额外信息嵌入预设提示模板。 4. 生成:将问题与相关文档合并为新提示信息,由大语言模型回答问题,可选择依赖知识库或仅基于给定信息,也可融入历史对话信息支持多轮对话。 LLM 需要 RAG 的原因在于 LLM 存在一些缺点: 1. 无法记住所有知识,尤其是长尾知识,接受能力不高。 2. 知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。 3. 输出难以解释和验证,易受幻觉等问题干扰。 4. 容易泄露隐私训练数据。 5. 规模大,训练和运行成本高。 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,无学习风险。 2. 数据库数据更新敏捷,可解释且不影响原有知识。 3. 数据库内容明确结构化,降低大模型输出出错可能。 4. 便于管控用户隐私数据,可控、稳定、准确。 5. 降低大模型训练成本,新知识存储在数据库无需频繁更新模型。
2025-02-24