自学教程

向量数据库

RAG的幕后引擎:通俗读懂向量数据库

大模型存在知识截止、幻觉、无法读取私有文档的问题,RAG检索增强生成就是用来解决这些痛点的主流方案。而向量数据库,正是RAG体系里负责语义检索的核心引擎

很多人会混淆:Embedding嵌入模型负责把文字、图片转成一串数字向量;向量数据库不生成向量,专门用来存储、索引、高速检索海量向量数据。

生活化比喻:
Embedding模型是翻译官,把人类语言翻译成机器看得懂的“语义坐标”;
向量数据库是一座智能图书馆,保存每一份资料的坐标,当你提问,它快速找出语义最接近的资料片段。

一、传统数据库搞不定的难题:关键词匹配不等于理解语义

MySQL这类传统数据库擅长精确匹配,判断“字面是否一样”,但看不懂文字背后的含义。

举个例子:
用户提问:“设备运行卡顿该怎么处理?”

  • 传统关键词搜索:只会优先返回包含“设备”“卡顿”字眼的文档;如果文档写的是“系统性能下降优化方案”,没有出现卡顿,就搜不到这份高度相关的资料。
  • 向量检索:理解两个句子语义等价,哪怕字面用词完全不一样,也可以匹配出来。
对比维度传统数据库(MySQL)向量数据库
查询逻辑精确匹配、关键词匹配,回答“是什么”相似度检索,回答“像什么”
处理对象结构化表格数据(数字、日期)文本、图片、音频等非结构化数据的向量指纹
索引B‑树、哈希索引HNSW、IVF‑PQ等ANN近似最近邻索引
核心能力事务、增删改查、统计高维空间快速相似度计算
典型应用订单、用户信息管理AI知识库、以图搜图、个性化推荐

二、向量、Embedding到底是什么?

向量(Embedding嵌入):通过专门嵌入模型,把一段文字、一张图片转换成一组几百到几千位的浮点数数组,相当于这份内容独一无二的“语义指纹”。

核心规律:语义越相近,在高维向量空间中的距离就越近

  • “小猫在草地上玩耍”和“猫咪在草坪嬉戏”,向量距离很近;
  • “小猫在草地上玩耍”和“汽车高速行驶”,向量距离很远。

文本场景最常用余弦相似度来衡量向量之间的接近程度,数值越接近1,代表语义越相似。

注意:向量本身人类读不懂,它只是给计算机做计算用;向量数据库存储时,会同时保存三件东西:

  1. 高维向量(用于计算相似度)
  2. 原始文本/图片片段(检索后拿给大模型使用)
  3. 元数据:分类、时间、权限标签,用于过滤筛选。

三、向量数据库如何工作?两大流程:入库链路、查询链路

完整的RAG知识库分为离线入库,和用户在线查询两大链路,向量数据库在中间承担存储检索工作。

链路1:文档入库(离线处理)

  1. 文档加载与切片Chunk:读取PDF、Markdown、Word文档,把长篇文档切分成合适大小片段。块太大细节丢失;块太小上下文断裂,直接影响检索质量。
  2. Embedding向量化:调用嵌入模型,把每一个文档片段转换为向量。
  3. 写入向量库:将向量、原文、元数据存入向量数据库,系统建立向量索引,加速后续搜索。

链路2:用户提问在线查询

  1. 用户输入问题;
  2. 用户问题交给Embedding模型,转换成查询向量;
  3. 将查询向量送入向量数据库,执行相似度检索,返回Top‑N语义最接近的文档片段;
  4. 将检索出来的原文片段拼接进提示词,交给大模型;
  5. 大模型参考检索到的资料,生成回答返回用户。

ANN近似最近邻索引:速度的秘密

如果没有索引,搜索需要拿查询向量和库里面每一条向量全部对比,数据量大时速度极其缓慢。
向量数据库使用ANN近似最近邻算法,代表如HNSW,牺牲极其微小的检索精度,换取上万倍速度提升,百万级别向量可以做到毫秒返回结果。
HNSW类似地图分层导航:高层粗定位,逐层往下细化,快速定位到相似向量。

小提示:ANN是近似查找,不是100%一定召回全部结果,工程上可以调整参数平衡速度和召回率。

四、向量数据库不只有做RAG,还有这些场景

  1. 多模态检索:以图搜图,用文字描述搜索图片;音频检索,跨模态匹配内容,电商商品搜索大量使用。
  2. 个性化推荐系统:把用户喜好、商品特征转为向量,寻找相似用户、相似物品做推荐。
  3. 异常检测:把正常业务行为向量化,偏离正常向量空间太远的,判定为异常行为,用于风控。
  4. 混合检索:向量语义检索 + BM25关键词检索两者结合,兼顾字面匹配与语义理解,生产环境RAG普遍使用混合搜索提升召回质量。

五、主流向量数据库怎么选型

不同工具面向的规模、运维成本差异很大,新手不要盲目上重型分布式系统。

产品类型特点适用场景
Chroma开源库轻量,上手简单,python友好原型、本地测试、小规模Demo
FAISS算法库Facebook开源,性能强,只提供算法,无完整服务实验、内存内运算,不直接做线上服务
Qdrant开源数据库Rust开发,单机性能高,元数据过滤强单机中小规模生产环境
Milvus分布式开源支持十亿、千亿级向量,功能完备企业级大规模私有化部署
PineconeSaaS托管服务零运维,开箱即用,云服务不想维护服务器,快速上线项目
pgvectorPostgreSQL扩展复用已有PostgreSQL环境,学习成本低百万向量以内,已有PG技术栈项目

选型简单建议:

  • 学习、做Demo原型 → Chroma;
  • 已有PostgreSQL环境,数据量不大 → pgvector;
  • 单机生产,追求高性能 → Qdrant;
  • 企业大规模私有化部署 → Milvus;
  • 不想运维服务器,快速上线 → Pinecone。

六、工程落地常见坑

  1. 向量数据库不是万能,检索效果上限取决于Embedding模型
    向量库只负责查找,嵌入模型质量差,再强的向量库也搜不到正确内容。中文场景优先选择针对中文优化的嵌入模型。
  2. 切片策略直接决定RAG好坏
    文档切分不能粗暴按固定字数切割,尽量按照语义段落切分,避免把完整语义拆碎。
  3. 不能只靠向量检索,建议混合检索
    单纯向量有时候会忽略字面关键词,搭配关键词BM25混合检索,结果更稳定。
  4. ANN是近似检索,会漏召回
    重要业务场景,不能完全依赖向量检索结果,需要搭配重排序Rerank模型,对初筛结果二次打分过滤。
  5. 向量库解决的是“找资料”,消除不了幻觉
    就算检索到文档,大模型依然有可能歪曲资料内容;关键业务需要开启引用溯源,人工复核重要输出。

写在最后

向量数据库不是什么神秘黑科技,本质就是专门为高维向量相似度搜索而优化的数据库。
它解决了传统数据库看不懂语义的痛点,是RAG私有知识库的基石。但要记住:向量数据库只是整个系统其中一环,嵌入模型、文档切片、检索策略、重排序,每一步都会影响最终AI回答质量,不能指望只换一个向量数据库就解决全部业务问题。

对于普通开发者,优先跑通原型,验证检索效果,再根据数据规模选择对应的向量数据库,不要一开始就过度设计复杂架构。

标签:

0 条笔记