「学习笔记」向量数据库 (Vector Database)
1. 基础概念
- 传统数据库的局限性:传统关系型数据库(如MySQL)或NoSQL数据库(如MongoDB)擅长进行精确匹配和范围查询。但它们无法有效处理基于“相似性”的查询,例如:“找出所有与这张图片相似的图片”。
- 向量数据库(Vector Database):一种专门为存储、索引和检索高维向量而设计的数据库。其核心能力是进行近似最近邻搜索,快速找到与查询向量最相似的向量集合。能够高效地处理非结构化数据(如文本、图像、音视频等)。利用嵌入模型将非结构化数据转换为数值数组(即向量),存储在专门设计的存储结构中,并利用索引技术加速查询过程。
- 向量与嵌入
- 向量(Vector) 是多维空间中某点的数学表示(如
{12, 13, 19, 8, 9}表示5维空间坐标),通过几何方式表达数据的语义特征。 - 嵌入(Embedding) 是机器学习生成的向量,将文本、图像等非结构化数据映射到向量空间,使语义相近的数据点在空间中距离更近。
- 向量(Vector) 是多维空间中某点的数学表示(如
- 运作机制
- 存储数据点(文档、图像、音视频等)的嵌入向量,并建立向量到原始数据的映射关系。
- 通过相似性搜索(如计算余弦相似度、欧氏距离)快速检索最接近的向量,支持语义级查询。
- 向量与嵌入
2. 工作流程
向量数据库的核心工作流程分为写入和查询两部分。