一文搞懂向量库(Vector Database):为什么大模型离不开它?
在学习 AI Agent、RAG(Retrieval-Augmented Generation)或者大模型应用开发时,你一定会频繁看到一个词——向量库(Vector Database)。
很多人第一次接触都会有这样的疑问:
- 向量库到底是什么?
- 为什么不用 MySQL、Redis?
- 它和 Embedding 又是什么关系?
- AI Agent 为什么几乎都会用到向量库?
今天就带大家系统地了解一下向量库。
一、什么是向量库?
一句话概括:
向量库是一种专门用于存储和检索向量(Embedding)的数据库。
这里的"向量"并不是数学课上的简单二维坐标,而是文本、图片、音频等数据经过 AI 模型编码后的数字表示。
例如:
文本:
"云南有哪些适合夏天旅游的地方?"
↓
Embedding模型
↓
[0.135,-0.214,0.875,...]
这一长串数字就是文本对应的向量(Vector)。
大模型并不能直接理解文字,它真正处理的是这些高维向量。
二、为什么需要向量?
很多人会问:
既然已经有 MySQL、PostgreSQL 了,为什么还要向量库?
原因在于:
传统数据库擅长的是"精确匹配",而 AI 更需要"语义匹配"。
例如数据库中有一条记录:
大理古城
用户提问:
云南有哪些适合避暑的地方?
这句话里面根本没有"大理古城"四个字。
如果使用 SQL:
SELECT *
FROM scenic
WHERE name='云南适合避暑的地方';
显然查不到任何结果。
但是对于 AI 来说:
云南适合避暑
↓
Embedding
↓
Vector A
大理古城
↓
Embedding
↓
Vector B
由于两个向量在向量空间中的距离非常近,因此系统能够判断:
用户想找的很可能就是"大理古城"。
这种检索方式称为:
Semantic Search(语义搜索)
它也是 RAG 技术最核心的一部分。
三、向量库里到底存了什么?
很多人误以为向量库只保存向量。
实际上,一条完整的数据通常包含三部分:
ID
+
Vector
+
Metadata
例如:
ID:10001
Vector:
[0.124,0.985,...]
Metadata:
{
"景点":"玉龙雪山",
"城市":"丽江",
"门票":100,
"文本":"玉龙雪山是云南著名景区..."
}
其中:
-
Vector:用于计算相似度
-
Metadata:保存业务信息
-
原始文本:供大模型最终生成答案
因此向量库不仅仅是一个数字仓库,更像是 AI 的知识索引。
四、向量库是如何工作的?
整个流程可以分成四步。
第一步:建立知识库
例如有四篇旅游文档:
玉龙雪山
洱海
泸沽湖
西双版纳
首先利用 Embedding 模型,把它们转换为向量:
文档
↓
Embedding
↓
Vector
然后存入向量库。
第二步:用户提问
例如:
冬天云南哪里可以看雪?
同样经过 Embedding:
Question
↓
Question Vector
第三步:相似度检索
向量库会计算:
Question Vector
↓
与所有文档向量比较距离
例如:
玉龙雪山
0.03
★★★★★
洱海
0.58
★★
西双版纳
0.95
☆
距离越小,相似度越高。
最终返回最相关的几篇文档(Top-K)。
第四步:LLM生成答案
最后:
用户问题
+
Top-K文档
↓
LLM
↓
最终回答
这就是目前几乎所有 RAG 系统的标准流程。
五、向量库为什么比数据库快?
有人会想到:
那直接遍历所有向量计算距离不就行了吗?
理论上可以。
但是如果知识库里有:
100万
1000万
1亿
条数据
逐个计算距离几乎不可接受。
因此现代向量库都会采用:
ANN(Approximate Nearest Neighbor)
即:
近似最近邻搜索算法。
目前最流行的是:
-
HNSW
-
IVF
-
PQ
-
LSH
其中:
HNSW(Hierarchical Navigable Small World)
已经成为目前最主流的算法。
它能够在保证较高准确率的同时,大幅降低查询时间,因此 Milvus、Qdrant 等主流向量数据库都支持 HNSW。
六、常见向量库介绍
目前比较流行的向量数据库主要有以下几种。
| 向量库 | 特点 | 适用场景 |
|---|---|---|
| Milvus | 企业级、功能丰富、支持分布式 | 大规模 AI 项目 |
| Qdrant | 轻量、Rust 开发、部署简单 | AI Agent、RAG |
| Weaviate | 内置 AI 能力丰富 | 企业知识库 |
| Chroma | Python 项目友好 | 学习、Demo |
| pgvector | PostgreSQL 插件 | 已有 PostgreSQL 项目 |
| FAISS | Meta 开源向量检索库 | 本地实验、算法研究 |
其中:
-
FAISS 更像一个向量检索引擎,而不是完整数据库。
-
Milvus 功能最全面,适合生产环境。
-
Qdrant 部署简单,是很多 AI Agent 项目的热门选择。
-
pgvector 非常适合已有 PostgreSQL 的项目,可以避免额外维护一套数据库。
七、向量库在 AI Agent 中的位置
很多同学学习 AI Agent 时,会把 Web Search 和向量库混淆。
实际上,它们负责完全不同的工作。
用户问题
│
▼
Agent
│
┌──────┴──────────────┐
│ │
▼ ▼
Web Search 向量库
│ │
实时信息 历史知识
天气 企业文档
新闻 产品说明
交通 PDF资料
价格 FAQ
例如:
用户问:
帮我规划一份云南五日游。
Agent 可能会:
-
去向量库查旅游攻略。
-
去天气接口获取天气。
-
去 Web Search 获取景区开放情况。
-
最后交给 LLM 综合生成完整旅游规划。
因此:
Web Search 解决的是"最新信息",向量库解决的是"长期知识"。
两者并不是替代关系,而是互补关系。
八、学习向量库应该掌握哪些知识?
如果你准备学习 AI Agent 或 RAG,我建议按照下面的顺序学习。
-
Embedding 原理
-
向量是什么
-
向量相似度(余弦相似度、欧氏距离、内积)
-
FAISS 基础使用
-
Milvus 或 Qdrant
-
RAG 工作流程
-
Spring AI / LangChain 集成向量库
-
AI Agent 中的知识库设计
掌握这些内容之后,你基本就能够独立搭建一个完整的知识库问答系统。
总结
向量库并不是用来替代传统数据库,而是 AI 时代新增的一种数据存储方式。
它最大的价值在于:
-
能够理解语义,而不是关键词;
-
可以快速找到最相似的内容;
-
是 RAG、AI Agent、企业知识库、智能客服等应用的核心基础设施。
随着大模型应用越来越普及,向量数据库已经成为 AI 开发者必须掌握的一项基础能力。
如果你正在学习 AI Agent 或 RAG,不妨先从 Embedding → 向量检索 → 向量数据库 → RAG 这一条路线开始,相信会对整个大模型应用架构有更加深入的理解。
更多推荐
所有评论(0)