什么是 向量数据库?
向量数据库是专为存储、索引和查询高维向量嵌入设计的数据库系统,使用 HNSW、IVF 等近似最近邻算法在召回率、延迟、内存与更新成本之间权衡。它支持余弦相似度等距离度量,可用于语义搜索、RAG 和推荐系统;实际规模与延迟取决于过滤、硬件、索引参数和并发工作负载。
快速了解
| 创建时间 | 概念出现于 2010 年代,2022-2023 年随 LLM 普及 |
|---|---|
| 规范文档 | 官方规范 |
工作原理
向量数据库存储嵌入向量,并通过余弦相似度、欧几里得距离或点积等度量检索相近结果。HNSW、IVF 和乘积量化等索引在召回率、延迟、内存、构建时间和更新能力之间做权衡,而非让精确检索在所有规模下都变快。生产设计还需要元数据过滤、访问控制、源文档存储、可观测性和离线评估。专用产品并非唯一选择:PostgreSQL + pgvector、搜索引擎或进程内精确检索可能更符合规模与运维条件。<a href="https://qubittool.com/zh/blog/llm-semantic-caching-production-guide">语义缓存</a>是独立的回答复用层,必须保持租户、模型、提示词和来源版本边界。
主要特点
- 针对高维向量存储和相似性搜索进行优化
- 使用近似最近邻(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 和乘积量化。实际延迟与规模取决于过滤条件、召回目标、硬件、副本、索引参数和并发,需要使用真实工作负载基准验证。
应该使用多少维度的嵌入?
嵌入维度取决于模型和用例。OpenAI 的 text-embedding-3-small 使用 1536 维,text-embedding-3-large 使用 3072 维。更高维度捕获更多细微差别,但需要更多存储和计算。许多应用使用 384-1536 维效果良好。一些向量数据库支持维度缩减以优化成本。
如何选择正确的距离度量?
余弦相似度最常用于文本嵌入,因为它测量向量之间的角度而不考虑大小。当向量大小重要时,欧几里得距离效果好。点积计算最快,适用于归一化向量。大多数嵌入模型使用余弦相似度训练,使其成为默认选择。