首页/新闻资讯/正文详情

RAG原理-倒排索引和KNN

发布时间:2026/9/27 21:53:13 来源:云帆数科 栏目:资讯中心
RAG原理-倒排索引和KNN
本节从两条检索路线展开倒排索引用关键词快速定位文档KNN 则在向量空间中寻找与查询最接近的 Top-K 数据。理解二者是继续学习 ANN、聚类索引和向量数据库的基础。一、倒排索引从“文档找词”变成“词找文档”1. 什么是倒排索引普通文档可以看成“文档 → 词语”的关系倒排索引把它反过来建立“词语 → 文档”的映射。词项 term - [(文档 ID, 出现位置), ...]查询某个关键词时不需要逐篇扫描全部文档只要在词典中找到该词再读取对应的文档列表即可。2. 视频中的分词示例原始文本大模型的应用在2025年会有哪些发展经过 Tokenization 后可以拆分为[大模型, 的, 应用, 在, 2025年, 会, 有哪些, 发展]随后为每个词项记录它出现在哪些文档、哪些位置。例如大模型 - [(doc_1, [0]), (doc_3, [5])] 2025年 - [(doc_1, [4])] 发展 - [(doc_1, [7]), (doc_2, [2])]上述 posting list 是结构示意。真实系统还可能保存词频、字段、位置、文档长度等信息用于短语查询和相关性排序。3. 建立与查询流程原始文档 - 文本清洗 - 分词与标准化 - 生成 term - posting list - 查询词分词 - 合并命中文档 - 相关性排序倒排索引擅长精确关键词、专有名词、编号和短语检索但如果查询与文档用词不同即使语义相近也可能无法命中。二、KNN在向量空间中寻找最近邻KNNK-Nearest NeighborsK 近邻搜索的核心过程是先把查询转换成向量再与数据库中的向量计算距离或相似度最终选出最接近的 K 个结果。查询文本 - Embedding 向量 q - 与所有候选向量计算距离/相似度 - 排序 - 返回 Top-K 最近邻1. 常见度量方式度量方式判断规则适用说明余弦相似度值越大越相似关注向量方向文本语义检索中常用欧氏距离L2距离越小越相似关注向量在空间中的直线距离点积Inner Product值越大越相似会受到向量模长影响余弦相似度公式cosine⁡(A,B)A⋅B∥A∥ ∥B∥ \operatorname{cosine}(A,B)\frac{A\cdot B}{\|A\|\,\|B\|}cosine(A,B)∥A∥∥B∥A⋅B​2. 暴力搜索Brute Force Search视频重点介绍了最直接的精确 KNN查询向量与数据集中的每一个向量都计算一次距离再排序并取前 K 个。for each vector x_i: score_i similarity(query, x_i) sort all scores return top_k设数据库共有N个向量每个向量维度为D距离计算量约为O(N × D)若对全部得分完整排序还会产生排序开销优点是结果精确、实现简单不会因为索引近似而漏掉真正的最近邻缺点是数据规模增大后查询延迟与计算成本会明显上升。因此暴力搜索更适合数据量较小、对精度要求高或用于效果基线的场景。三、精确 KNN 的 Python 实现下面使用余弦相似度完成一个不依赖第三方库的精确搜索示例frommathimportsqrtdefcosine_similarity(vector_a,vector_b):计算两个等长非零向量的余弦相似度。iflen(vector_a)!len(vector_b):raiseValueError(向量维度必须一致)dot_productsum(a*bfora,binzip(vector_a,vector_b))norm_asqrt(sum(a*aforainvector_a))norm_bsqrt(sum(b*bforbinvector_b))ifnorm_a0.0ornorm_b0.0:raiseValueError(不能计算零向量的余弦相似度)returndot_product/(norm_a*norm_b)defexact_knn(query_vector,document_vectors,k3):遍历全部向量返回相似度最高的 Top-K。ifk0:raiseValueError(k 必须大于 0)scored_items[(index,cosine_similarity(query_vector,vector))forindex,vectorinenumerate(document_vectors)]scored_items.sort(keylambdaitem:item[1],reverseTrue)returnscored_items[:k]query[1.0,0.0]documents[[0.9,0.1],[0.8,0.2],[0.1,0.9],]print(exact_knn(query,documents,k2))这段代码会对所有文档向量逐一打分因此得到的是精确结果生产环境中的向量数据库则会使用更高效的数据结构和批量计算。四、倒排索引与 KNN 的区别对比项倒排索引KNN 向量检索检索依据词项是否出现、词频与位置向量距离或相似度擅长内容关键词、编号、专有名词、精确短语同义表达、自然语言语义相关内容核心数据结构词典 posting list向量集合或向量索引主要限制难以直接理解语义精确遍历在大规模数据上成本高典型用途全文搜索、过滤与精确召回RAG 语义召回、相似内容检索两者不是互斥关系。实际 RAG 系统经常把关键词检索和向量检索组合成混合检索再通过 Rerank 统一排序。五、为什么还需要 ANN精确 KNN 会扫描全部向量数据量越大越慢。为了在大规模数据上降低延迟工程中通常使用 ANNApproximate Nearest Neighbor近似最近邻搜索不再保证每次都找到理论上的绝对最近邻通过牺牲少量召回率换取更快的查询速度常见思路包括聚类索引、图索引以及向量量化。本集最后由暴力 KNN 引出了 ANN后续章节会继续介绍近似搜索与聚类索引。六、核心总结倒排索引通过term - posting list实现快速关键词定位。KNN 把查询和文档放入同一向量空间返回距离最近的 K 个结果。暴力 KNN 结果精确但需要遍历所有向量更适合小规模数据。大规模检索需要 ANN在召回率、速度和资源消耗之间做权衡。RAG 工程中可结合倒排索引与向量检索同时获得关键词精度和语义召回能力。

相关推荐

uncle-bob-craft - code-review-checklist
uncle-bob-craft - code-review-checklist

Uncle Bob 技艺 —— 代码审查检查清单 使用 uncle-bob-craft 技能进行基于原则的代码审查时,复制粘贴此检查清单。单独运行你的项目 lint/格式化工具;此检查清单聚焦结构和设计。1. 依赖规则和边界依赖指向向内(用例/领域不依赖 UI、DB 或框… · 2026/9/27 21:53:13

unity-ecs-patterns - SKILL
unity-ecs-patterns - SKILL

name: unity-ecs-patterns description: “Production patterns for Unity’s Data-Oriented Technology Stack (DOTS) including Entity Component System, Job System, and Burst Compiler.” risk: safe source: community date_added: “2026-02-27” Unity ECS 模式 Unity… · 2026/9/27 21:53:13

uncle-bob-craft - design-patterns
uncle-bob-craft - design-patterns

设计模式 —— 正确使用 vs 滥用 在评估设计模式是否合理还是跟风/过度使用时参考。 何时使用模式 反复出现的变化 —— 相同算法或结构但有不同行为(如不同的折扣规则)→ Strategy 或类似模式。生命周期或创建复杂性 —— 对象创建有许多变体或步骤 → … · 2026/9/27 21:53:13

梁文锋署名,DeepSeek最新公开Agent训练的真正底座:一天撑300万沙箱
梁文锋署名,DeepSeek最新公开Agent训练的真正底座:一天撑300万沙箱

「已支撑V3.2到V4.1训练」 目录 01 Agent沙箱 workload 的7个现实硬约束 02 整体架构:集群管控 节点本地运行时 03 三大核心系统机制,解决生产痛点 3.1 可组合分层环境:干掉单体镜像维护噩梦 3.2 高密度资源管理:… · 2026/9/27 22:32:49

9.24【A】
9.24【A】

磐久UMX:UALink下一代AliSCM,GPU直连的PCM内存池 PCM PCM 是 Phase-Change Memory(相变内存)。它用一种特殊材料在两种状态间切换来存数据:结晶态和非晶态的电阻不同,控制器读取电阻就能判断存的是 0 还是… · 2026/9/27 22:32:49

同时跑多个 Claude Code / Codex 后,真正的瓶颈不是模型,而是“阻塞”:用 TaoToken 统一 Key 打通 CLI 并发
同时跑多个 Claude Code / Codex 后,真正的瓶颈不是模型,而是“阻塞”:用 TaoToken 统一 Key 打通 CLI 并发

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:32:43

基于MCP协议的招聘推荐系统架构设计与实践:TaoToken统一Key接入配置与验证
基于MCP协议的招聘推荐系统架构设计与实践:TaoToken统一Key接入配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:32:43

OpenClaw 报错 Local media path is not under an allowed directory:workspace 白名单与 handler.js 读取路径排查
OpenClaw 报错 Local media path is not under an allowed directory:workspace 白名单与 handler.js 读取路径排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:32:43

codex下载方法:TaoToken 统一 Key 接入 Codex 的 config.toml 配置骨架
codex下载方法:TaoToken 统一 Key 接入 Codex 的 config.toml 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:32:43

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码