什么是 向量数据库?
向量数据库是一种专门设计用于存储、索引和查询高维向量嵌入的数据库,能够对文本、图像和音频等非结构化数据进行高效的相似性搜索和检索。
快速了解
| 创建时间 | 概念出现于 2010 年代,2022-2023 年随 LLM 普及 |
|---|---|
| 规范文档 | 官方规范 |
工作原理
向量数据库专门用于处理机器学习模型生成的向量嵌入。与传统数据库匹配精确值不同,向量数据库通过计算高维空间中向量之间的距离(如余弦相似度、欧几里得距离或点积)来查找相似项。它们采用专门的索引算法,如 HNSW(分层可导航小世界)、IVF(倒排文件索引)和 PQ(乘积量化),以在数百万或数十亿向量中实现快速的近似最近邻(ANN)搜索。向量数据库是现代 AI 应用的关键基础设施,包括语义搜索、推荐系统和检索增强生成(RAG)。
主要特点
- 针对高维向量存储和相似性搜索进行优化
- 使用近似最近邻(ANN)算法实现快速检索
- 支持多种距离度量:余弦、欧几里得、点积
- 可扩展至数十亿向量,查询延迟低于秒级
- 通常支持元数据过滤与向量搜索结合
- 与 OpenAI、Cohere 等嵌入模型集成
常见用途
- 语义搜索:按含义而非关键词查找文档
- RAG 系统:为 LLM 响应检索相关上下文
- 推荐引擎:查找相似的产品、内容或用户
- 图像搜索:在大型集合中查找视觉相似的图像
- 异常检测:识别高维数据中的异常值
示例
Loading code...常见问题
向量数据库和传统数据库有什么区别?
传统数据库存储结构化数据并执行精确值匹配。向量数据库存储高维嵌入并使用距离计算查找相似项。SQL 数据库擅长过滤和连接表,而向量数据库擅长语义相似性搜索,目标是找到概念相关的项目而非精确匹配。
最流行的向量数据库有哪些?
流行的专用向量数据库包括 Pinecone、Weaviate、Milvus、Qdrant 和 Chroma。带向量扩展的传统数据库包括 PostgreSQL(pgvector)、Elasticsearch 和 Redis。云服务商提供托管解决方案,如 AWS OpenSearch、Google Vertex AI Vector Search 和 Azure Cognitive Search。
向量数据库如何实现快速相似性搜索?
向量数据库使用近似最近邻(ANN)算法,以牺牲完美精度换取速度。常见算法包括 HNSW(基于图)、IVF(基于聚类)和 PQ(基于压缩)。这些技术创建索引结构,实现亚线性搜索时间,使得在毫秒内查询数十亿向量成为可能。
应该使用多少维度的嵌入?
嵌入维度取决于模型和用例。OpenAI 的 text-embedding-3-small 使用 1536 维,text-embedding-3-large 使用 3072 维。更高维度捕获更多细微差别,但需要更多存储和计算。许多应用使用 384-1536 维效果良好。一些向量数据库支持维度缩减以优化成本。
如何选择正确的距离度量?
余弦相似度最常用于文本嵌入,因为它测量向量之间的角度而不考虑大小。当向量大小重要时,欧几里得距离效果好。点积计算最快,适用于归一化向量。大多数嵌入模型使用余弦相似度训练,使其成为默认选择。