向量数据库是现代AI应用存储和检索信息的核心——它们支撑着使AI了解特定文档的RAG(检索增强生成)系统。以下是关于它们如何工作以及何时使用的易懂解释。
为什么普通数据库不适用于AI搜索
关键词搜索(SQL LIKE查询、Elasticsearch)找到精确或模糊的文本匹配。向量搜索找到语义相似性——”猫”和”猫科动物”会返回相似结果,因为它们语义相关,而不是因为它们共享字母。这很重要,因为LLM应用程序需要找到相关上下文,即使查询和文档使用不同的词。用户询问”我怎么重置密码?”应该检索到标题为”账户恢复程序”的文档——关键词搜索会错过这个;向量搜索会找到它。
嵌入如何工作
嵌入模型(OpenAI的text-embedding-3-small、Anthropic的Voyage或BGE等开源替代品)将文本转换为向量——一个捕获语义含义的数字列表(通常768到3072维)。具有相似含义的文本产生相似向量(在多维空间中接近)。向量数据库存储这些向量,并能有效地找到与查询向量最相似的向量——这是近似最近邻搜索(ANN)。
可用选项
Pinecone:托管、易于使用、有免费层。Weaviate:开源加托管选项,适合混合(向量+关键词)搜索。Qdrant:开源、出色的性能、良好的自托管选项。Chroma:轻量级,非常适合开发和小规模使用。PostgreSQL + pgvector:如果你已经使用PostgreSQL,pgvector扩展添加向量搜索——对于较小规模避免单独的数据库。
最小化RAG实现
1. 分块你的文档(分成约500个词元的片段)。2. 为每个块生成嵌入。3. 将嵌入存储在向量数据库中。4. 在用户查询时:嵌入查询,找到5个最相似的块,将这些块作为上下文包含在你的LLM提示中。5. LLM根据检索的上下文回答。这是基本模式;生产系统添加重排序、元数据过滤和混合搜索。




