当前位置: 首页 > article >正文

向量检索核心知识整理

一、向量基础Embedding 与维度选择1. 向量化核心流程非结构化数据 → 向量向量化是将文本、图像、音频等非结构化数据通过Embedding 模型转化为高维稠密向量的过程是向量检索的基础数据类型常用模型文本BGE、BERT、text-embedding-ada-002图像CLIP、ResNet音频Wav2Vec22. 向量维度选择原则维度越高特征越精细检索精度越高但存储、计算成本越高维度越低效率越高易丢失特征召回率下降工业常用文本 768/1536 维图像 512-2048 维二、向量检索核心原理1. 相似度计算判断向量是否相似余弦相似度最常用关注方向忽略长度适合语义检索欧氏距离空间直线距离距离越小越相似内积归一化后等价于余弦相似度2. 近似最近邻搜索ANN暴力搜索在亿级数据下耗时过长必须用近似检索牺牲极小精度换取百倍速度主流索引算法HNSW当前绝对主流、IVF、PQ各有适用场景详见后续章节。三、HNSW 索引1. 新向量插入完整步骤随机生成最大层数 L按指数分布随机level -ln(random(0,1)) * M层数越高数量越少。从 HNSW 全局最顶层开始贪婪搜索无论自身层数 L 多少一定从整个索引的最高层开始逐层向下搜索。逐层下探每层保留最优候选上一层搜索出的最优 M 个向量全部作为下一层的搜索入口继续贪婪查找更近向量。到达自身最大层数 L 后继续下探到 0 层从 L 层 → L-1 层 → … → 0 层每一层都执行贪婪搜索。每层建立双向连接新向量会在 L 层及以下所有层0~L层与相似向量建立双向关联每层最大连接数受 M 限制。第 0 层包含所有向量所有向量无论高层是否存在0 层一定存在保证精准检索兜底。2. 贪婪搜索单一层内执行逻辑以入口向量为起点加入候选集遍历候选向量的所有邻居计算与目标向量的距离保留距离最近的最优向量淘汰较远向量重复直到无法找到更近向量输出该层最优结果3. 关键特性0~L 层都存在该向量高层做快速导航底层做精准匹配平衡效率与精度双向连接保证检索时可互相到达提升召回率近似检索固有问题极端情况下可能漏检早期向量高层连接少新相似向量可能无法导航到4. 核心参数参数作用阶段含义影响结论M构建查询每个向量在每层的最大连接数越大图越密召回率越高但构建变慢、内存增加控制图密度推荐 16/32ef_construction构建索引时为新向量选择邻居时参考的候选向量数量越大图结构越优质插入越慢决定索引质量好不好ef查询检索时搜索过程中保留的候选向量数量越大召回率越高查询越慢决定查询准不准ef_construction 和 ef 不是同一个参数一个管构建一个管查询不可混用。5. 大规模数据磁盘优化亿/十亿级分层存储策略层级数据量存储方式最高几层20层以上极少几万~几十万全部放入内存无磁盘 IO中低层数据量大存入磁盘分页预读减少随机 IO0 层全量向量磁盘存储 缓存加速内存占用估算768 维FP32单向量 3KB10 万高层向量 ≈ 300MBINT8 压缩占用降至 1/410 万向量 ≈ 75MB结论高层全量放内存完全可行对服务器无压力四、IVF 索引1. 核心原理通过 k-means 聚类将高维向量空间划分为nlist个簇每个簇有一个中心向量。构建倒排索引将向量分配到最近的簇中。搜索时先找到与查询向量最近的nprobe个簇再在这些簇内检索大幅减少搜索范围。2. 关键参数参数含义建议取值影响nlist聅类中心数量[sqrt(单分片数据量)*4, sqrt(单分片数据量)*16]需满足单分片数据量 ≥ 30*nlist越大簇越精细但构建变慢nprobe搜索时选择的簇数量调大提升召回率但降低速度调小则相反直接控制速度/召回率平衡3. 优势内存占用低直接存储原始向量构建速度快聚类逻辑简单尤其适合高维向量检索结果稳定通过固定nprobe控制搜索范围一致性好4. 典型类型IVF_FLAT存储原始向量在选定簇内进行暴力搜索。召回率较高接近精确搜索但内存占用和搜索速度介于 FLAT 和 IVF_PQ 之间。五、PQ 索引1. 核心原理乘积量化Product Quantization将高维向量压缩存储。将高维向量分解为m个等长子向量每个子向量通过 k-means 聚类生成码本大小为2^nbits向量最终表示为m个码本索引大幅降低存储。搜索时通过预计算查询子向量与码本的距离表快速计算压缩向量间的近似距离。2. 关键参数参数含义约束影响m子向量数量需能整除原始向量维度 D每个子向量维度为 D/m越大压缩越精细但码本越多nbits每个子向量的编码位数通常为 8码本大小 256压缩后向量大小为 m*nbits 位3. 压缩效果示例128 维向量32 位浮点原始存储 4096 位设m64, nbits8压缩后 512 位 ——压缩 8 倍。4. 优势内存占用极低适合内存受限场景搜索速度快距离表预计算避免逐向量解压5. 典型类型IVF_PQIVF_PQ 是 IVF 与 PQ 的结合先用 IVF 将向量分到nlist个簇再对每个簇内向量进行 PQ 压缩。搜索时通过 IVF 定位nprobe个簇再用 PQ 码本快速计算近似距离平衡了速度、内存和召回率。适合亿级大规模数据、内存受限场景但召回率略低于 IVF_FLAT通常 90%-95%。六、索引选型对比索引类型适用场景内存占用搜索速度召回率HNSW通用首选百万~千万级较高极快最高IVF_FLAT高维向量构建速度优先低中较高接近精确IVF_PQ亿级数据内存受限极低快中90%-95%七、Milvus vs Elasticsearch 8.x 全面对比1. 核心定位差异Milvus专用向量数据库C 编写专为向量检索优化Elasticsearch全文检索引擎向量是附加功能基于 Lucene/Java2. 关键维度对比对比维度ElasticsearchMilvus架构模式存算一体通用搜索存算分离AI 原生索引类型有限以 HNSW 为主丰富HNSW/IVF/PQ/DiskANN水平扩展节点级扩展微服务化细粒度扩展数据规模百万至千万级向量亿级以上海量向量单次查询延迟50~200ms10~50msGPU 加速支持差完美支持可到 1~10ms向量索引优化基础 HNSW优化有限深度优化 HNSW/IVF_PQ内存效率较低GC 开销大极高全文检索能力顶级分词、模糊、聚合、高亮基础支持3. 适用场景Elasticsearch 适用场景已有搜索系统平滑升级强文本 向量混合检索需求数据规模在百万至千万级向量Milvus 适用场景超大规模 AIGC / 推荐系统极致的向量检索性能与高并发需求亿级以上海量向量场景八、大规模 RAGMilvus ES 组合方案1. 为什么不只用 MilvusMilvus 的全文检索是轻量实现不支持复杂分词、模糊查询、同义词、高亮、多条件过滤无法满足企业级文本检索需求。2. 为什么不只用 ESES 在亿级向量下查询慢、耗资源、高并发不稳定向量检索性能远不如专用数据库。3. 最佳分工工业标准方案Milvus 负责高精准、高速度向量语义检索Elasticsearch 负责全文关键词检索、过滤、高亮、聚合、复杂文本匹配RAG 流程ES 文本精准过滤 → Milvus 向量语义召回 → 结果融合重排4. 核心优势兼顾语义理解与文本精准度性能与稳定性拉满企业级大规模 RAG 唯一成熟方案总结要点HNSW 是当前向量检索绝对主流插入从顶层开始、0~L 层全存在、每层双向连接ef_construction构建与 ef查询是完全不同的参数不可混用IVF 通过聚类缩减搜索范围PQ 通过量化压缩存储IVF_PQ 结合两者平衡速度/内存/召回率高层全放内存、底层存磁盘是 HNSW 应对亿级数据的核心优化Milvus 专攻向量ES 专攻文本二者组合是大规模 RAG 系统的工业标准方案

相关文章:

向量检索核心知识整理

一、向量基础:Embedding 与维度选择 1. 向量化核心流程:非结构化数据 → 向量 向量化是将文本、图像、音频等非结构化数据,通过 Embedding 模型 转化为高维稠密向量的过程,是向量检索的基础:数据类型常用模型文本BGE、…...

哈希密钥:解锁unordered容器的极速潜能

目录 一.unordered系列关联式容器 二:unordered_set 1:unordered_set用法详解 1.1:模板参数介绍 1.2:unordered_set的构造函数 1.3:常用接口使用 1.3.1:insert与erase 1.3.2:find与size与empty 1.3.3:clear与swap与count 1.3.4:迭代器 1.3.5:桶操作 三:unordered_ma…...

31.在函数组件里如何使用多个 state 变量?

在 React 中,你可以通过多次调用 useState 来管理多个彼此独立的状态。每一次 useState(...) 都会创建一块独立的 state,以及对应的更新函数,这样更清晰、也更便于维护。示例:在一个表单里管理多个 stateimport React, { useState…...

OPA策略引擎:从原理到Kubernetes集成的云原生策略管理实践

1. 项目概述:什么是 OPA,以及它为何如此重要如果你在云原生、微服务或者 DevOps 领域工作,那么“策略即代码”这个概念你一定不陌生。而提到策略即代码,就绕不开Open Policy Agent,也就是我们常说的 OPA。简单来说&…...

13.有没有PCB焊接过程的图片,没有自己怎么弄

1.有没要PCB焊接过程的图片,没有自己怎么弄解释:我们并不提供PCB焊接过程的图片,如果有需要的同学可以自己用我们提供的PCB文件打印PCB板子(打印下单不会的看本站下单教程),然后自己使用电烙铁焊接一片&…...

1. 开发工具软件介绍

1.开发工具软件怎么安装 我们提供的开发工具就是这个项目需要用到的软件,包括keil5安装包、STLINK驱动、AD软件等等 软件介绍 Keil5 是一款针对ARM架构单片机(尤其是STM32系列)的集成开发环境(IDE),集成了…...

Transformer线性层与激活函数:原理与优化实践

1. Transformer模型中的线性层与激活函数解析在Transformer架构中,线性层(Linear Layers)和激活函数(Activation Functions)构成了模型处理信息的基础单元。不同于传统神经网络,Transformer通过自注意力机制…...

Changelogger:实时更新日志聚合器的架构设计与工程实践

1. 项目概述与核心价值在技术迭代日新月异的今天,尤其是AI工具和开发者软件领域,几乎每天都有新的功能发布、API更新或产品迭代。作为一名长期泡在代码和产品里的从业者,我深有体会:错过一个关键更新,可能意味着浪费数…...

新能源上市公司361个指标数据2000-2021年

01、数据简介新能源汽车是指采用非常规的燃料如石油等作为动力来源,或者采用新型动力装置,采用先进的技术原理,具有新技术新结构的汽车,根据《新能源汽车产业发展规划(2021—2035年)》,我国将深…...

各地级市数字经济政策文本词频统计2002-2022年

01、数据介绍全国各地级市大力发展电子信息制造业,加快数字经济产业基础建设,建设数字经济创新生态,推动数字化转型和商业模式创新,布局数字经济未来产业,加快发展智能制造、数字化营销等数字经济新业态模式&#xff0…...

专利转让数据库1985-2021年

01、数据简介专利所有权转让是指专利获得国家知识产权局授权,获得专利的所有权,专利权人将其拥有的专利权转让给个人以及企业等法律行为。转让行为在国务院专利行政部门进行登记,签订书面合同。通过转让合同取得专利申请权或专利权的合同当事…...

全国排污许可证详细信息数据库2023年

01、数据简介排污许可证是允许排污单位排放一定数量污染物的凭证。它是由环境保护行政主管部门在排污单位提出申请后,经审查合格后发放的。排污许可证制度是环境管理的重要手段,可以强制对企业污染物排放控制和管理,对研究污染控制和环境治理…...

sfsEdgeStore 使用golang 是否有竞争力

sfsEdgeStore 使用 Golang 不仅具有极强的竞争力,而且是其在工业物联网边缘侧生存的“杀手锏”。结合刚才我们讨论的“Java 在国内业务层的统治地位”以及搜索到的资料,sfsEdgeStore 选择 Go 语言是典型的**“在正确的场景使用了正确的工具”**。以下是 …...

自洽性与Agent的结合

让智能体学会“自我验证”,提升决策可靠性。随着大语言模型(LLM)从单纯的“对话接口”演进为“行动中枢”,AI Agent(智能体)正逐步突破“被动响应”的局限,向“自主决策、主动执行”的高阶形态演…...

AI日报:24小时全球科技热点速览

每日AI新闻推送:近24小时全球科技热点深度报告 日期:2026年4月24日 摘要:过去24小时内,AI领域迎来密集爆发。具身智能从“炫技”转向“实干”,数据成为核心瓶颈与竞争高地;特斯拉Optimus V3定档年中亮相&a…...

基于PraisonAI的多智能体编排框架:从YAML配置到生产部署全解析

1. 项目概述:当AI遇上AI,一个能指挥大模型的“指挥官”最近在折腾AI应用开发的朋友,可能都遇到过这样的困境:手头有好几个强大的模型,比如OpenAI的GPT-4、Anthropic的Claude,还有开源的Llama 3,…...

设计Section 12:Related PCB Assembly Services

这个区块只做 Related Services 内链卡片。不做:FAQ Schema FAQ 区 Ninja Tables Fluent Forms Custom HTML Gutenberg Spacer Gutenberg Separator Phase 2 占位内容一、使用组件结构Gutenberg Group └── Gutenberg Group├── Gutenberg Group:橙色…...

定义类的方法和CRC建模

在面向对象分析与设计(OOAD)中,定义类的方法 和 CRC 建模 是衔接“需求分析”与“详细设计”的关键技术。前者关注如何为类分配职责(行为),后者提供了一种轻量、协作式的建模方法来验证类的职责与协作关系。 一、定义类的方法 1.1 什么是类的方法? 类的方法(Method)…...

量子机器学习:原理、算法与工程实践

1. 量子机器学习:当传统算力遇到物理极限 三年前我在处理一个蛋白质折叠预测项目时,第一次真切感受到经典计算机的算力瓶颈。当模型参数超过1亿,即使使用最先进的GPU集群,训练周期仍然长达两周。正是那次经历让我开始关注量子计算…...

【风暴之城】游玩日记 新手攻略(3)

游玩记录 开局 被封印的皇家森林要精准伐木,用shift单选树木 蓝图 木工直接拿下先开一片小地看看封印方向蓝图基石 按照“老头环的小迷妹”的攻略来看,农民的补给是t!,其他两个是T3指令 1吧这个地图应该会比较缺木头而且可以立即完…...

NVSentinel:Kubernetes AI集群的智能健康管理方案

1. 项目概述:NVSentinel 如何为 Kubernetes AI 集群提供智能健康管理在当今AI驱动的生产环境中,Kubernetes已成为GPU工作负载的事实标准平台。然而,管理这些集群中的GPU节点绝非易事——从确保训练任务持续进展到维持服务流量稳定&#xff0c…...

Unity最强捏脸系统来了!Character Customizer:基于BlendShape与骨骼驱动的角色定制系统设计

在当今游戏开发中,“角色个性化”几乎已经成为标配功能。从《GTA》《模拟人生》到各类 MMO、开放世界游戏,玩家都希望打造独一无二的角色形象。而在 Unity 中,如果从零实现一套高扩展性的角色定制系统,成本其实非常高。 今天我们要…...

GITEE通过API下载发新版的附件

首先需要创建私人令牌,然后进行下面的步骤:1. 获取仓库的最后更新的Release->拿到Release ID https://gitee.com/api/v5/repos/{owner}/{repo}/releases/latest2. 获取仓库下的指定 Release 的所有附件 -> 拿到附件ID https://gitee.com/api/v5/re…...

AI率检测工具到底有何不同?10款主流aigc检测工具横评告诉你ai查重的真相!

2026年答辩季临近,AIGC检测已经成为大多数高校论文审核的标配流程。不管你有没有用过A论文,学校都可能会查一遍AI率。很多同学的第一反应就是:ai率查重要多少钱?有没有能免费查AI率的工具? 有免费的aigc检测工具&…...

想免费查AI率?有4个网站可以免费aigc检测,附详细操作步骤!

2026年答辩季临近,AIGC检测已经成为大多数高校论文审核的标配流程。不管你有没有用过A论文,学校都可能会查一遍AI率。很多同学的第一反应就是:ai率查重要多少钱?有没有能免费查AI率的工具? 有免费的aigc检测工具&…...

Arm Neoverse V1 PMU架构与性能监控实战

1. Neoverse V1 PMU架构深度解析1.1 PMUv3p4架构特性Arm Neoverse V1采用的PMUv3p4是Armv8.4-A架构中的性能监控扩展实现。这个版本在基础PMU功能上引入了多项增强特性:扩展事件空间:通过新增的PMMIR_EL1寄存器提供更多微架构事件编码空间,支…...

Obsidian Smart Connections实战指南:高效连接笔记与AI的智能神器

Obsidian Smart Connections实战指南:高效连接笔记与AI的智能神器 【免费下载链接】obsidian-smart-connections Chat with your notes & see links to related content with AI embeddings. Use local models or 100 via APIs like Claude, Gemini, ChatGPT &a…...

基于LangGraph的多智能体AI内容生成系统XunLong实战指南

1. 项目概述:一个基于多智能体协作的AI内容生成系统最近在折腾一个挺有意思的开源项目,叫XunLong。简单来说,这是一个利用大语言模型(LLM)驱动的多模态内容生成系统。你可以把它理解为一个“AI内容工厂”,你…...

为Open WebUI构建安全代码执行沙箱:基于gVisor的本地LLM增强方案

1. 项目概述:为Open WebUI构建安全的代码执行沙箱如果你正在本地部署大语言模型,比如用Ollama跑Llama 3或者Qwen,并且通过Open WebUI这个漂亮的Web界面来交互,那你可能遇到过这样的场景:你问模型“帮我写个Python脚本来…...

LLMStack:低代码平台如何简化大模型应用开发与RAG系统构建

1. 项目概述:当低代码遇上大模型,LLMStack如何重塑应用开发最近在折腾AI应用落地的朋友,估计都听过或者用过LangChain、LlamaIndex这类框架。它们确实强大,但上手门槛不低,你得懂点编程,对AI模型的工作流也…...