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

RAG向量存储原理(余弦相似度、欧氏距离、ANN近似最近邻、HNSW原理、混合检索)

文章目录深入理解 RAG 向量存储原理一、什么是 RAG二、RAG 的核心流程三、什么是向量Vector四、Embedding 的本质五、向量空间Vector Space六、为什么高维向量能表达语义七、Chunk文本切块为什么重要1. 提高检索精度2. 控制上下文长度3. 提高召回率八、向量数据库到底存什么九、向量检索原理Step1问题向量化Step2与数据库向量比较Step3找到最相近的 TopK十、常见相似度算法1. Cosine Similarity最常见2. Euclidean Distance3. Dot Product十一、为什么向量检索这么快十二、ANN近似最近邻十三、HNSW 原理最常见十四、向量数据库有哪些十五、向量数据库 vs 传统数据库十六、Hybrid Search混合检索十七、RAG 的核心问题1. Chunk 切分2. Embedding 模型选择3. Recall召回4. Re-ranking十八、典型 RAG 架构十九、为什么 RAG 现在这么重要二十、总结深入理解 RAG 向量存储原理随着大语言模型LLM越来越强RAGRetrieval-Augmented Generation检索增强生成已经成为 AI 应用中的核心架构之一。无论是 AI 知识库、企业问答机器人、文档助手还是 AI 搜索系统背后几乎都离不开向量化Embedding向量数据库Vector Store相似度检索Similarity Search很多人第一次接触 RAG 时都会有几个疑问为什么文本能变成向量向量数据库到底存了什么为什么“语义相近”的内容能被搜索到向量检索和传统数据库查询有什么区别这篇文章会从底层原理出发系统讲清楚 RAG 向量存储的工作机制。一、什么是 RAGRAGRetrieval-Augmented Generation本质上是“先检索再让大模型生成答案”传统 LLM 的问题训练数据有时间截止不知道企业私有知识容易幻觉Hallucination无法实时更新知识RAG 的解决思路用户问题 ↓ 向量检索相关知识 ↓ 把知识拼接进 Prompt ↓ LLM 基于知识生成答案核心思想不让模型“硬记忆”而是“动态查资料”二、RAG 的核心流程完整流程通常如下原始文档 ↓ 文本切块Chunking ↓ Embedding 向量化 ↓ 存入向量数据库 ↓ 用户提问 ↓ Query 向量化 ↓ 向量相似度检索 ↓ 返回 TopK 文本 ↓ 拼接 Prompt ↓ LLM 生成最终答案这里最核心的一步文本 → 向量以及向量之间如何比较相似度三、什么是向量Vector在 RAG 中文本会被转换成一组高维数字例如“猫喜欢吃鱼” ↓ [0.123, -0.882, 0.451, ...]这组数字可能是 384 维768 维1024 维1536 维本质用数学空间表达“语义”四、Embedding 的本质Embedding 模型会学习语义相近 → 向量距离接近例如“如何安装 Python” “Python 安装教程”虽然文字不同但语义接近。Embedding 后向量距离也会接近而“如何安装 Python” “今天天气不错”距离就会很远。五、向量空间Vector Space可以把向量理解成语义坐标例如二维空间猫 (1,2) 狗 (1,3) 汽车(9,8)猫和狗距离近语义相近猫和汽车距离远语义差异大真实世界中不是二维。而是几百维甚至上千维六、为什么高维向量能表达语义Embedding 模型本质上是神经网络。训练过程中模型会学习词语之间的上下文关系例如苹果 - 水果 - 公司Embedding 会结合上下文理解。例如Apple released new chips与I ate an apple会得到不同语义向量。七、Chunk文本切块为什么重要RAG 通常不会整本书直接向量化而是切成小块例如每 500 token 一个 chunk原因1. 提高检索精度用户问题“数据库连接池原理”如果整个文档太大相关内容会被稀释。2. 控制上下文长度LLM 的 Context Window 有限制。例如8K32K128K tokens不能无限塞文档。3. 提高召回率小 chunk 更容易精准命中八、向量数据库到底存什么很多人误以为存的是文本其实通常存{ id, vector, text, metadata }例如{id:chunk-001,vector:[0.12,-0.55,...],text:连接池用于复用数据库连接,metadata:{source:db.md,page:3}}真正用于检索的是vectortext 只是附带返回。九、向量检索原理当用户提问“为什么需要连接池”系统会Step1问题向量化Query ↓ Embedding ↓ Query VectorStep2与数据库向量比较计算向量距离Step3找到最相近的 TopK例如Top 3 chunks十、常见相似度算法向量检索核心如何衡量“距离”1. Cosine Similarity最常见余弦相似度方向越接近 相似度越高核心思想不关注长度只关注方向非常适合语义搜索。2. Euclidean Distance欧氏距离空间中的直线距离类似二维坐标距离公式d ( x 2 − x 1 ) 2 ( y 2 − y 1 ) 2 d\sqrt{(x_2-x_1)^2(y_2-y_1)^2}d(x2​−x1​)2(y2​−y1​)2​3. Dot Product点积向量乘积计算快。很多 GPU 检索优化都会使用。十一、为什么向量检索这么快问题来了如果1 亿条向量逐个比较非常慢因此向量数据库会使用ANNApproximate Nearest Neighbor近似最近邻搜索。十二、ANN近似最近邻核心思想不用精确比较所有向量而是快速找到“足够近”的向量牺牲少量精度换取巨大性能提升。十三、HNSW 原理最常见很多向量数据库都使用HNSW全称Hierarchical Navigable Small World核心思想构建向量图类似社交网络向量之间建立“邻居关系”。检索时从高层快速跳跃 ↓ 逐渐逼近目标特点查询快精度高非常适合 RAG十四、向量数据库有哪些常见向量数据库数据库特点Milvus分布式能力强QdrantRust 编写现代化WeaviateAI NativePinecone云原生 SaaSChroma轻量本地开发FAISSMeta 开源库pgvectorPostgreSQL 插件十五、向量数据库 vs 传统数据库传统数据库SELECT*FROMdocsWHEREtitlePython是精确匹配而向量数据库语义匹配即使文本完全不同也能检索到。例如“如何安装 Python”也能搜到“Python 环境配置教程”十六、Hybrid Search混合检索现代 RAG 往往不是只做向量搜索而是关键词 向量例如BM25Full Text SearchVector Search组合。原因纯向量搜索有时会召回错误忽略关键术语数字匹配不稳定混合搜索能提升准确率。十七、RAG 的核心问题RAG 并不是“接个向量库”那么简单。真正难点1. Chunk 切分切太大召回不精准切太小上下文丢失2. Embedding 模型选择不同模型多语言能力代码能力中文能力差异巨大。3. Recall召回检索不到正确知识LLM 再强也没用。4. Re-ranking很多系统会先粗召回 ↓ 再重排序提升结果质量。十八、典型 RAG 架构现代 RAG 通常用户问题 ↓ Query Rewrite ↓ Embedding ↓ Hybrid Search ↓ TopK Recall ↓ Rerank ↓ Prompt Assemble ↓ LLM高级系统还会加入Query ExpansionGraph RAGAgentic RAGMulti-hop Retrieval十九、为什么 RAG 现在这么重要因为LLM ≠ 数据库LLM擅长推理生成总结不擅长精确知识存储实时更新企业私有数据RAG本质上是在给 LLM外挂知识系统二十、总结RAG 向量存储核心思想把语义转换成数学空间然后通过向量距离实现语义检索整个过程本质是文本 ↓ Embedding ↓ 高维向量 ↓ 相似度搜索 ↓ 召回知识 ↓ LLM生成答案真正让 RAG 强大的不是“大模型”。而是高质量检索因为检索质量决定最终回答质量。

相关文章:

RAG向量存储原理(余弦相似度、欧氏距离、ANN近似最近邻、HNSW原理、混合检索)

文章目录深入理解 RAG 向量存储原理一、什么是 RAG?二、RAG 的核心流程三、什么是向量(Vector)四、Embedding 的本质五、向量空间(Vector Space)六、为什么高维向量能表达语义七、Chunk(文本切块&#xff0…...

电子墨水屏驱动芯片IL0376F与SSD1681选型与设计实战

1. 项目概述与核心价值如果你正在为你的物联网设备、电子阅读器或者智能家居终端寻找一种超低功耗、阳光下可视性极佳的显示方案,那么电子墨水屏(E-Ink)几乎是唯一的选择。但当你真正开始动手,从琳琅满目的屏幕型号和驱动方案中挑…...

从零构建开发者个人主页:技术选型、部署优化与SEO实践

1. 项目概述:一个开发者个人主页的诞生与演进在技术社区里,一个以username/username.github.io命名的仓库,几乎已经成为了开发者个人技术品牌的标准名片。当我看到vassiliylakhonin/vassiliylakhonin.github.io这个项目标题时,脑海…...

< 12 > Linux进程:进程虚拟地址空间机制 —— 内存管理的美学

1. 程序地址空间回顾C语言阶段学习过程序地址空间,长这样代码段,数据段:这些是常量区,栈区,堆区,还有一些系统需要的空间这些是内存吗? ——不是内存。这些都是虚拟地址空间,OS给我们…...

解锁QQ音乐加密音频:QMCDecode让macOS用户重获音乐自由

解锁QQ音乐加密音频:QMCDecode让macOS用户重获音乐自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认…...

PCF8591模数转换器实战指南:从I2C通信到多通道数据采集

1. 项目概述:为什么你需要一个PCF8591?在嵌入式开发和电子制作的世界里,我们常常需要处理一个核心矛盾:我们的大脑和代码生活在离散的数字世界(0和1),但我们身处的物理世界却是一个充满连续变化…...

2026年5月权威实测:Claude Code必装的7个MCP,效率翻倍

Top 1:GitHub MCP —— “衔枚之钉” 如果说MCP服务器里只能留下一个,那GitHub MCP绝对是不可动摇的“钉子户”。它不仅是每个开发者工作流的起点,更是将AI代理从“代码提示者”推向“自主开发者”的核心动力。 它的核心价值是**“端到端的工…...

电机选型与控制实战指南:从直流、步进到伺服电机

1. 电机选型:从理解需求开始选电机,听起来像是硬件工程师或者资深创客的活儿,但只要你玩过Arduino小车、做过3D打印机,或者想给家里的模型加个能动的部件,这事儿就绕不开。我刚开始接触项目时,也犯过迷糊&a…...

Adafruit IO Feeds:物联网数据流管理的核心枢纽与实战指南

1. 项目概述:为什么Feeds是物联网项目的“数据心脏”如果你正在玩转物联网项目,无论是用ESP32做个家庭气象站,还是用树莓派监控植物生长,最终都会遇到一个核心问题:数据往哪存,怎么管?传感器读数…...

CircuitPython开发实战:串口通信与编辑器配置全攻略

1. 项目概述与核心价值 如果你刚开始接触CircuitPython,或者从Arduino这类环境转过来,可能会觉得有点懵:代码写好了,怎么看到板子的输出?板子报错了,怎么知道错在哪里?为什么我的代码文件一保存…...

终极Cookie本地导出指南:如何安全获取cookies.txt文件

终极Cookie本地导出指南:如何安全获取cookies.txt文件 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 在Web开发、API测试和自动化脚本…...

《QGIS空间数据处理与高级制图》011:SHP 批量转 GPKG(单文件夹 / 递归多文件夹)

作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...

思源宋体TTF中文版:7款字重一键解锁专业中文排版

思源宋体TTF中文版:7款字重一键解锁专业中文排版 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文设计项目找不到合适的免费字体而烦恼吗?Source Han …...

算法联盟·全域数学公理体系下黑洞标量毛发与LVK引力波O4全维理论、求导、证明、计算、验证、分析

算法联盟全域数学公理体系下黑洞标量毛发与LVK引力波O4全维理论、求导、证明、计算、验证、分析 算法联盟 全域数学公理体系下黑洞标量毛发与 LVK 引力波O4 全维理论、求导、证明、计算、验证、分析 所属体系:算法联盟 ROOT 全域数学网格第一性原理(AI科…...

Android 数字人动画序列帧选型优化:PNG vs WebP 格式深度对比实践

一、项目背景近期开发遇到数字人动画落地优化需求,业务流程为:单张人物原图 → 生成数字人短视频 → 导出带 Alpha 透明通道的序列帧,最终需要在 Android 页面中流畅播放数字人序列帧动画。整个流程核心难点:选择合适的透明序列帧…...

大模型小白入门指南:3分钟读懂核心逻辑+高性价比产品推荐(建议收藏+转发)

大模型小白入门指南:3分钟读懂核心逻辑高性价比产品推荐(建议收藏转发) 本文通俗易懂地拆解了大众对大模型的三个常见误区,如“大模型高级聊天机器人”、“大模型会说谎”、“AI会取代人类”。通过比喻方式解释了大语言模型和多模…...

如何摆脱游戏卡顿困扰:DLSS Swapper的智能性能管理方案

如何摆脱游戏卡顿困扰:DLSS Swapper的智能性能管理方案 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 当我们沉浸在《赛博朋克2077》的夜之城,或是探索《艾尔登法环》的交界地时,突…...

终极英雄联盟自动BP与战绩查询工具:Seraphine完全指南

终极英雄联盟自动BP与战绩查询工具:Seraphine完全指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 你是否曾在排位赛中因手动查询对手战绩而手忙脚乱?是否因为错过接受对局而懊恼不…...

实战解析:XiaoMusic技术架构深度剖析与智能音箱语音控制实现方案

实战解析:XiaoMusic技术架构深度剖析与智能音箱语音控制实现方案 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 在智能音箱生态中,小爱音箱…...

驾驶舱前端设计方案:从“花架子”到“真能用”的组件化实战

很多人一提起“驾驶舱”或“ dashboard ”,脑海里浮现的就是:满屏图表、深色背景、会转动的3D地球、还有一堆看起来很高端但没人点开的按钮。但真正在一线做过驾驶舱的人都知道——大部分驾驶舱,上线当天截个图发朋友圈之后,就再也…...

日常记录:SQL学习总结

一、什么是SQL注入SQL注入,就是通过把恶意SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器使数据库执行恶意SQL命令目的的入侵行为。关键:闭合原有 SQL 语句,构造恶意新语句。二、SQL注入漏洞分类三…...

生物记录仪能耗优化:机器学习与传感器融合实践

1. 生物记录仪能耗挑战与机器学习解决方案在野生动物行为研究领域,生物记录仪(bio-logger)已成为不可或缺的工具。这些小型电子设备通常搭载多种传感器,如加速度计、陀螺仪和磁力计等,用于记录动物的运动轨迹和行为模式。然而,这类…...

SwarmVault:去中心化AI数据存储与管理的实践指南

1. 项目概述与核心价值最近在探索分布式存储和AI应用结合的前沿领域时,我遇到了一个非常有意思的项目:swarmclawai/swarmvault。这个名字本身就透露了它的野心——将去中心化存储网络Swarm与人工智能(AI)能力相结合,构…...

3分钟解决Windows热键冲突:Hotkey Detective让你重掌键盘控制权

3分钟解决Windows热键冲突:Hotkey Detective让你重掌键盘控制权 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...

AKTools深度解析:3分钟构建跨语言金融数据API的实战指南

AKTools深度解析:3分钟构建跨语言金融数据API的实战指南 【免费下载链接】aktools AKTools is an elegant and simple HTTP API library for AKShare, built for AKSharers! 项目地址: https://gitcode.com/gh_mirrors/ak/aktools AKTools是一款为AKShare开源…...

【信息科学与工程学】【通信工程】第一百二十二篇 数字通信函数01

数字通信算法/函数库 函数编号:​ F001 函数名称:​ qpsk_modulator 类型:​ 调制 (Modulation) 通信分析:​ 该函数实现经典的正交相移键控调制,将输入的二进制比特流映射为复数符号(IQ数据)。它是数字通信发射机的基础模块,将数字信息加载到载波相位上,具有恒包络特…...

Revelation光影包:5分钟打造电影级Minecraft视觉体验

Revelation光影包:5分钟打造电影级Minecraft视觉体验 【免费下载链接】Revelation An explorative shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation 想让你的Minecraft方块世界瞬间拥有电影大片般的视觉效果…...

Midjourney Pro订阅值不值得?深度拆解12项独家能力与企业级工作流增效实测数据

更多请点击: https://intelliparadigm.com 第一章:Midjourney Pro订阅的核心价值定位 Midjourney Pro 并非简单的“更高额度”升级包,而是面向专业创作者与团队工作流重构的关键基础设施。其核心价值体现在稳定性、可控性与协同效率三个不可…...

MTEB 排行榜之外:嵌入模型在 JRXML 场景下的选择逻辑

前文引用:通用分块器搞不定 JRXML:一个领域感知分块器的三层设计 分块之后,每一段文本需要转成一个向量,才能存进向量数据库做相似度检索。这个"文本 → 向量"的函数就是文本嵌入模型(Embedding Model&#…...

【Langchain】 ChatPromptTemplate:从“手动拼字符串“到“专业模板“的进化之路

零基础看懂 ChatPromptTemplate:从"手动拼字符串"到"专业模板"的进化之路一句话总结:ChatPromptTemplate 是 LangChain 中专门用来组装聊天消息的"模板引擎",它能让你像填空题一样,把变量插进预设的…...