向量数据库学习笔记:从关系型到向量型的演进
Contents
向量数据库学习笔记:从关系型到向量型的演进
数据库演进概览
数据库技术经历了从关系型到非关系型,再到向量数据库的持续演化。
- 关系型数据库(如 MySQL、Oracle)以表格形式存储结构化数据,通过 SQL 操作,具备 ACID 事务特性,适合复杂查询与强一致性场景(例如金融交易)。
- NoSQL 采用键值、文档、列族等灵活模型,牺牲部分一致性以换取更好的扩展性与性能,适用于高并发与大数据场景。
两类系统通常在实际工程中协同工作,各取所长。
什么是向量数据库?
核心定义与特征
向量数据库专门用于存储、管理与检索高维向量,其检索目的是相似性搜索而非精确匹配。
示例:将“适合新手的相机”转为向量后,可在向量空间中召回语义相近的条目(如“入门级相机”或“初学者机型”),从而实现语义检索与推荐。
示例:将“适合新手的相机”转为向量后,可在向量空间中召回语义相近的条目(如“入门级相机”或“初学者机型”),从而实现语义检索与推荐。
向量数据库的核心原理
数据表示:嵌入(Embedding)
原始数据(文本、图像、音频等)通过嵌入模型映射为高维向量。例如,一段文本可能被转换为 768 维的向量。语义相近的输入在向量空间中距离更近,这是语义检索成立的基础。
数据组织:点(Point)与集合(Collection)
- 点(Point):最小存储单位,通常包含 ID、向量与元数据(payload)。
- 集合(Collection):点的容器,类似关系数据库中的表。
示例用法场景:将人事政策按片段存入集合,每个片段作为一个点并附带来源、更新时间等元信息。
检索机制:索引与相似度
逐一暴力比对所有向量效率低。常见索引方法包括:
- HNSW(图索引):当前主流,检索速度优异。
- IVF(倒排文件 + 聚类):先定位近似桶再精搜。
- FLAT:暴力检索,精确但耗时。
相似度常用余弦相似度(cosine)或欧氏距离(L2)。
为什么需要专用向量数据库?
效率与规模的考量
虽然通用数据库(例如 PostgreSQL + pgvector)也能存储向量,但在百万至十亿级数据规模与高维向量场景下,专用向量数据库在检索速度、索引优化与分布式扩展方面具有明显优势。
相当于:通用卡车可搬运家具,但专业搬运公司提供更高效的设备与流程。
相当于:通用卡车可搬运家具,但专业搬运公司提供更高效的设备与流程。
典型应用场景
应用一览
- 检索增强生成(RAG):存储文档片段向量,查询时快速召回相关上下文供 LLM 使用。
- 智能推荐:基于用户历史行为与偏好进行相似内容推荐。
- 图像/视频检索:实现以图搜图或内容相似检索。
- 语义搜索:理解查询意图,超越关键词匹配。
主流产品与选型建议
产品示例与选型要点
常见向量数据库与特点:
- Milvus:开源、分布式、功能全面,适合大规模部署。
- Chroma:轻量、易上手,适合快速原型与中小规模使用。
- Pinecone:托管云服务,无需自维护,适合希望降低运维成本的场景。
- PGVector:PostgreSQL 插件,适合已有 PG 生态的场景或小规模需求。
选型时需平衡性能、易用性、扩展性与成本。入门可优先尝试 Chroma 或 PGVector;面对海量数据时优先考虑 Milvus 或托管服务(如 Pinecone)。
与传统数据库的协同
各司其职
向量数据库专注于相似性检索,而传统关系型数据库在事务、复杂聚合与强一致性场景仍不可替代。实际系统常采用混合架构:关系型数据库负责事务与结构化数据,向量数据库负责语义检索与近似查询,两者互为补充。
小结
核心结论
向量数据库是 AI 时代处理非结构化数据(文本、图像、音频等)的重要基础设施,其价值在于能够理解并检索语义相似的内容。
在工程实践中,建议将向量数据库与传统数据库结合使用,以满足既要处理事务与复杂查询又要提供语义检索的混合需求。