Vector database — 向量数据库
向量数据库(Vector Databases)是专门用于处理非结构化数据的高维数值表示(向量)的存储和检索系统[1]。在大语言模型(LLM)的背景下,向量数据库能够实现高效的语义搜索,是现代人工智能系统(尤其是在 RAG 架构中)的关键组成部分。
与专注于精确匹配的传统关系型数据库不同,向量数据库专门从事近似最近邻(Approximate Nearest Neighbor, ANN)搜索,旨在高维空间中找到语义上相近的对象[2]。
向量数据库基础
Embeddings - 向量表示
向量表示(embeddings)是指将文本、图像、音频等数据类型以向量形式进行的数值化表示。其核心原则是,语义上相近的对象(例如,含义相似的词语)在此向量空间中的位置也相互靠近[3]。
现代的文本嵌入是使用基于 Transformer 架构的模型创建的,这些模型利用自注意力(self-attention)机制来理解上下文。对于大多数现代模型而言,这类表示的维度范围从 256 到 1024 维甚至更高[4]。
相似度度量
为了衡量向量之间的“距离”或相似度,使用了多种度量方法:
- 余弦相似度(cosine similarity):测量两个向量之间的夹角余弦值。这种方法对文本嵌入尤其有效,因为它关注向量的方向而非其大小[5]。
- 欧几里得距离 (L2):空间中两点间的标准直线距离。
- 点积(dot product):与余弦相似度类似,但未经归一化[6]。
索引算法
为了在高维空间中实现快速搜索,向量数据库使用了专门的 ANN 算法。
HNSW (Hierarchical Navigable Small World) - 分层可导航小世界
HNSW 算法采用了“小世界”网络的概念和多层级图结构。上层包含长距离链接,用于在空间中快速跳转(粗略搜索),而下层则包含短距离链接,用于精确定位近邻。HNSW 的时间复杂度为对数级 O(log N),是大多数现代向量数据库的首选[7]。
IVF (Inverted File) - 倒排文件
IVF 算法使用 k-means 聚类算法将向量空间划分为多个簇。搜索仅在有限数量的最近簇中进行,从而显著加快了处理速度。簇的数量通常选择为 √N,其中 N 是数据集中的向量总数[8]。
LSH (Locality-Sensitive Hashing) - 局部敏感哈希
LSH 算法使用一组哈希函数,这些函数能够以高概率为相近的向量生成相同的哈希值。这使得相似的对象可以被快速地分组[9]。
主流向量数据库
- Pinecone:一个完全托管的云原生向量数据库,采用 serverless 架构。
- Qdrant:一个用 Rust 编写的高性能数据库,支持高级过滤和 ACID 兼容事务。
- Milvus:一个可扩展的开源数据库,采用云原生架构。支持包括 GPU 加速在内的多种索引类型。
- Weaviate:一个开源向量数据库,提供 GraphQL API 并支持知识图谱。
- Chroma:一个轻量级开源数据库,专为快速原型设计和实验而优化。
- FAISS:由 Meta 开发的一个库,虽然不是一个完整的数据库,但为静态数据提供了高性能的索引算法。
与 LLM 的结合应用:RAG 架构
检索增强生成(Retrieval-Augmented Generation, RAG)是一种架构,其中 LLM 通过向量检索从外部知识库获取信息作为补充。RAG 系统包含两个主要组件[10]:
- 检索器 (Retriever):该搜索组件使用向量数据库根据用户查询查找相关信息。
- 生成器 (Generator):一个 LLM,它利用原始查询和检索器找到的信息来生成答案。
为了实现 RAG 的高效运作,通常采用混合搜索——即结合语义(向量)搜索和词法(关键词,如 BM25)搜索,以确保结果更准确、更相关。
趋势与未来发展
向量数据库市场正在经历爆炸式增长,预计将从 2023 年的 19.8 亿美元增长到 2029 年的 71.3 亿美元(复合年增长率为 23.7%)[11]。关键发展方向包括:
- 多模态系统:支持在统一的向量空间中同时对文本、图像、音频和视频进行搜索。
- 自动优化:利用ML自动选择最优的索引和参数。
- 边缘计算 (Edge computing):为移动和物联网(IoT)设备开发紧凑型解决方案。
- 量子计算:有望实现相似度搜索的指数级加速。
- 神经形态芯片:模拟大脑工作方式,以超低功耗执行搜索任务。
链接
参考文献
- Malkov, Y.A.; Yashunin, D.A. (2016). Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs. arXiv:1603.09320.
- Johnson, J.; Douze, M.; Jégou, H. (2017). Billion-Scale Similarity Search with GPUs. arXiv:1702.08734.
- Datar, M. et al. (2004). Locality-Sensitive Hashing Scheme Based on p-Stable Distributions. SoCG 2004 paper.
- Guo, N. et al. (2020). ScaNN: Efficient Vector Similarity Search at Scale. In: Proc. ACM SIGKDD 2020, pp. 1571-1580. DOI:10.1145/3394486.3403339.
- Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
- Wang, X. et al. (2021). Milvus: A Purpose-Built Vector Data Management System. In: SIGMOD 2021. DOI:10.1145/3448016.3457550.
- Lee, J. et al. (2022). OOD-DiskANN: Efficient and Scalable Graph ANNS for Out-of-Distribution Queries. arXiv:2211.12850.
- Fan, D. et al. (2023). Survey of Vector Database Management Systems. arXiv:2310.14021.
- Ren, R. et al. (2024). Survey of Filtered Approximate Nearest Neighbor Search over Vector-Scalar Hybrid Data. arXiv:2505.06501.
- Zhao, H. et al. (2024). Starling: An I/O-Efficient Disk-Resident Graph Index Framework for High-Dimensional Vector Similarity Search. arXiv:2401.02116.
- Liu, Y. et al. (2025). Memory-Efficient Similarity Search at Billion-Scale: A Taxonomy and Analysis of Vector Compression Techniques. ResearchGate preprint.
注释
- ↑ “What Is a Vector Database?”. CloudRaft. [1]
- ↑ “What is a Vector Database?”. Qdrant Blog. [2]
- ↑ “What Are Vector Embeddings?”. LakeFS. [3]
- ↑ “What are embeddings?”. Zilliz. [4]
- ↑ Sahoo, A., Maiti, J. «A Comparative Study of Similarity Metrics for Textual Embeddings». arXiv:2501.01234. [5]
- ↑ “Vector search and dense vector fields”. Elastic. [6]
- ↑ Malkov, Y. A., Yashunin, D. A. «Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs». arXiv:1603.09320. [7]
- ↑ “The index IVF”. FAISS Wiki. [8]
- ↑ Datar, M., et al. «Locality-Sensitive Hashing Scheme Based on p-Stable Distributions». Symposium on Computational Geometry. [9]
- ↑ Lewis, P., et al. «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks». arXiv:2005.11401. [10]
- ↑ “Vector Database Global Market Report 2024”. The Business Research Company. [11]