RAG 检索过程(Retrieval Process)详解:从查询向量化到近似最近邻搜索 文档教程知识库【免费下载链接】developer-roadmapInteractive roadmaps, guides and other educational content to help developers grow in their careers.项目地址https://gitcode.com/GitHub_Trending/de/developer-roadmap点击查看免费下载检索过程是检索增强生成RAG中承上启下的核心环节系统收到用户查询后先将其转换为向量embedding再在预索引的向量库中找出最相似的数据点为生成阶段提供上下文依据。本文以roadmaps/ai-engineer路线图中的检索过程文档为主体结合仓库内相关的 Embeddings、向量数据库、相似度搜索与 FAISS 等章节完整梳理检索链路中的每一步原理与工程要点帮助读者在 AI 应用中落地可复现的检索方案。一、检索过程在 RAG 中的定位检索增强生成RAG将信息检索与语言生成结合起来先从知识库或外部数据源检索相关数据再交给语言模型基于这些信息生成响应从而把生成模型的输出锚定在真实数据上更适合问答、摘要、聊天机器人等对准确性和时效性有要求的任务参见仓库中的 RAG 概述。在整个 RAG 流水线中检索过程承担找到依据的职责。原文档Retrieval Process对其的定义可以拆解为四个关键动作接收查询用户提出一个自然语言问题或指令向量化查询将查询转换为向量embedding使文本语义变成可计算的数值形式搜索预索引库用该向量在预先索引好的 embedding 数据库中查找最相似、最相关的数据点加速策略借助近似最近邻ANN搜索等手段在保持质量的前提下显著提升检索速度。也就是说检索过程是否高效、准确直接决定了生成阶段能拿到什么样的上下文进而影响最终回答的质量。二、查询向量化把自然语言变成向量检索的第一步是把用户查询从自然语言转换成向量。向量embedding是数据在低维连续空间中的稠密数值表示能够刻画数据之间的语义关系与模式语义相近的内容在向量空间中距离更近参见仓库中的 Embeddings。负责完成这一转换的是嵌入模型embedding model。嵌入模型把文本、图像等数据映射为向量表示捕获其语义含义与相互关系由于数据被表示为向量就可以通过数学运算来判断相似性、聚类相关内容参见仓库中的 Embedding Models。工程上有三点需要注意查询与文档必须使用同一套嵌入模型如果索引阶段用模型 A 生成文档向量、检索阶段用模型 B 生成查询向量两者所处的向量空间不一致相似度计算将失去意义向量维度保持统一同一向量库中的向量维度必须与索引结构一致维度改变意味着需要重新索引预训练模型的选择如基于 BERT 的文本编码器或针对图像的神经网络决定了向量对语义的刻画能力参见仓库中的 Performing Similarity Search。三、预索引 embedding 库检索的数据基础检索之所以快是因为数据在查询到来之前就已经被组织成便于搜索的结构。这一阶段通常称为索引阶段的流程是切分Chunking把大文档拆成较小的、语义完整的片段通常是一个段落或一个小节既便于检索器在大规模数据中高效搜索也让片段长度适配模型的 token 或输入上限参见仓库中的 Chunking向量化为每个 chunk 生成 embedding入库将向量连同元数据原始文本、标识符等一起存入向量数据库并建立索引以支撑高效的相似度搜索。从仓库中的 Indexing Embeddings 章节可以看到完整定义嵌入向量由机器学习模型从文本、图像、音频等数据转换而来索引时每条向量都附带元数据原始内容或标识符向量数据库会将这些向量组织起来通常借助近似最近邻ANN技术支撑高效检索。向量数据库与传统数据库的差异向量数据库是专门存储、索引和检索高维向量的系统与传统面向结构化数据的数据库不同它在管理非结构化数据方面更具优势——通过向量之间的比较快速找到最接近的匹配因而天然适合语义搜索、推荐系统与内容发现等场景参见仓库中的 Vector Databases。在 RAG 实现中向量数据库负责保存 embedding 并在查询时返回最相关的片段检索结果再交由生成模型产出上下文感知的答案参见仓库中的 Vector Database。四、相似性搜索找到最相关的数据点查询向量化完成、索引库就绪之后检索过程的核心动作就是相似性搜索把查询向量与库中所有向量逐一比较找出最相似的那些。相似度度量方式是这一步的关键选择。仓库中 FAISS 章节明确提到了两类常用度量参见 FAISS余弦相似度cosine similarity衡量两个向量方向的接近程度对向量的绝对长度不敏感常用于文本语义检索归一化后的向量配合点积计算即可等价实现欧氏距离Euclidean distance衡量向量在多维空间中的实际距离距离越小越相似适合对向量幅度敏感的检索任务。检索过程通常遵循以下步骤用户查询文本、图像等经预训练模型转为 embedding查询向量与向量库中预存储的 embedding 逐一或通过索引结构批量比对按相似度/距离排序返回 Top-K 个最相关的数据点参见仓库中的 Performing Similarity Search。K 值的选取是常见的工程调参点K 过小可能漏掉相关证据K 过大则会把噪声上下文灌进生成模型。实践中常结合相似度阈值过滤低质量片段。五、ANN 加速近似最近邻搜索当数据量达到数十万、数百万甚至数十亿向量时对查询向量做全量线性扫描暴力搜索的代价不可接受。这正是近似最近邻Approximate Nearest Neighbor, ANN搜索的用武之地它在检索速度与召回质量之间做权衡牺牲少量精度换取数量级的速度提升参见仓库中的 Retrieval Process 与 Vector Databases。常见的 ANN 索引思路从行业常见做法与仓库文档描述可以归纳出几类主流索引结构基于图HNSW构建多层可导航的小世界图检索时从粗粒度层快速下探到细粒度层兼顾速度与召回是当前应用最广的方案之一基于倒排IVF / 量化先对向量空间聚类划分查询时只扫描与查询最近的少数几个聚类再配合乘积量化PQ压缩向量体积基于树如随机投影树通过空间划分缩小搜索范围适合特定分布的数据。具体选择哪种索引取决于数据规模、维度、内存预算和对召回率的要求——高召回场景优先 HNSW超大库且内存受限时 IVF PQ 更合适。FAISS工程实践参考FAISSFacebook AI Similarity Search是面向大规模稠密向量相似度搜索与聚类的开源库专门针对 embedding 场景做了优化支持基于余弦相似度或欧氏距离的快速最近邻检索提供多种索引方法并可扩展到数十亿向量广泛用于图像/文本检索、推荐系统和大规模搜索系统参见仓库中的 FAISS。在 RAG 工程中FAISS 常被用作向量索引引擎也可作为自研向量数据库的底层依赖是理解 ANN 索引原理的良好起点。六、检索结果如何支撑生成检索过程并不在找到相似向量处终止其价值最终体现为对生成的支撑检索返回的 Top-K 片段原始文本被拼装为上下文注入提示词生成模型基于该上下文输出事实更准确、上下文感知的响应由于知识来自外部知识库而非模型参数RAG 可以低成本更新知识、缓解幻觉回答也能追溯证据来源。因此检索质量的评估不能只看相似度分数还要关注片段与查询的语义匹配度、覆盖度以及上下文冗余度——这些都受切分粒度、Top-K、相似度阈值与索引结构的综合影响属于检索过程上线后需要持续调优的环节。七、在 AI Engineer 路线图中的位置与延伸阅读检索过程是 AI Engineer 路线图 中 RAG 知识链路的中间一环上游是数据切分与嵌入生成下游是向量存储与生成模型。仓库中与本主题直接相关的章节可作为继续深入阅读的入口Retrieval Process关联文档检索过程总述Embeddings向量表示的基本概念Embedding Models嵌入模型的作用Chunking索引前的文档切分Indexing Embeddings向量入库与索引Vector Databases向量数据库的设计目标Performing Similarity Search相似度搜索的执行过程FAISSANN 索引的工程实现参考RAG 概述检索过程所在的上层框架。按查询向量化 → 预索引库搜索 → 相似度度量 → ANN 加速 → 上下文注入的顺序理解并逐环节实验即可在自建知识库上构建出可运行的 RAG 检索链路。赞分享文档教程知识库【免费下载链接】developer-roadmapInteractive roadmaps, guides and other educational content to help developers grow in their careers.项目地址https://gitcode.com/GitHub_Trending/de/developer-roadmap点击查看免费下载相关推荐StarRocks向量索引技术详解实现高效近似最近邻搜索StarRocks向量索引技术详解实现高效近似最近邻搜索 概述 在当今大数据和人工智能时代向量数据如嵌入向量、特征向量等的处理变得越来越重要。StarR数据库OLAP数据仓库大数据湖仓一体数据分析Gensim 中的 NMSLIB 近似最近邻搜索用 NmslibIndexer 加速 most_similar 相似度查询Gensim 中的 NMSLIB 近似最近邻搜索用 NmslibIndexer 加速 most_similar 相似度查询 本文基于 Gensim 仓库中的人工智能NLP机器学习深度学习StickySwitch高级定制教程创建独特动画效果和主题风格StickySwitch高级定制教程创建独特动画效果和主题风格 StickySwitch是一款功能强大的Android开关组件以其流畅的粘性动画效果著称。本创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考