向量数据库是使相似性搜索在规模上快速的基础设施层。它们已经从小众ML工具转变为AI应用程序开发中的核心基础设施。以下是它们为什么重要以及如何工作。
向量数据库做什么
传统数据库搜索精确匹配:”找到名称=’柏林’的所有行”。向量数据库按相似性搜索:”找到与此查询语义最相似的10个项目”。这通过将数据存储为嵌入——编码语义意义的高维数字向量——来实现。文本段落、图像或音频剪辑都可以转换为向量;语义相似项目的向量在高维空间中聚集。数据库在数百万或数十亿向量上提供高效的最近邻搜索,这个问题在没有专用索引结构(HNSW、IVFFlat、PQ)的情况下计算成本很高。
为什么AI应用需要它们
需要向量数据库的四种AI应用类型:RAG(检索增强生成)——在提示LLM之前从大型文档集合中找到相关上下文;语义搜索——根据含义而不是关键词返回结果(对自然语言查询更好);推荐系统——找到与用户表现出兴趣的东西相似的项目;以及多模态搜索——通过文本描述找到图像,或通过内容找到音频。这些都需要嵌入所有内容、存储嵌入并在查询时进行快速最近邻查找。
主要选项
Pinecone:完全托管、简单API、规模上昂贵,最适合希望零基础设施开销的团队。Weaviate:开源和托管选项,强大的多模态支持,比Pinecone操作更复杂。Chroma:开源、Python原生,对本地开发和原型设计非常好,生产就绪有一些注意事项。Qdrant:带托管云选项的开源,性能基准强,Rust客户端好。pgvector:PostgreSQL扩展——如果你已经使用PostgreSQL,这消除了1000万向量以下大多数用例的单独数据库。Faiss:Meta的本地向量搜索库,强大但不是数据库(没有持久层,没有API)。
实际指导
原型设计:Chroma(本地,无需设置)。使用现有PostgreSQL的生产:pgvector(无单独服务)。规模化专用向量搜索:Qdrant(开源)或Pinecone(托管)。1000万向量以上,选项之间的性能差异变得显著;低于此,任何选项都可以。嵌入模型的选择比数据库的选择更重要:更好的嵌入产生更好的检索质量,检索质量是RAG应用程序质量的主要决定因素。OpenAI的text-embedding-3-large和Anthropic的voyage嵌入(通过Anthropic API可用)是当前文本的质量领先者;CLIP和ALIGN用于多模态。




