什么是向量数据库?在基于大模型的应用开发中,向量数据库主要解决什么问题?
这篇文章考查的是向量数据库的核心概念及其在大模型应用中的价值。面试官想看你能否用简单的语言解释清楚:什么是向量数据库、它怎么工作的、为什么需要它。
我分三个部分来讲:向量数据库是什么 → 它怎么工作 → 它解决什么问题。
向量数据库是什么
先说人话:向量数据库是专门存储高维向量(也叫 Embeddings)的数据库。
那什么是高维向量?举个例子:
当你把一段文本扔给Embedding模型,它会输出一个长长的数字列表,比如 [0.23, -0.45, 0.89, 0.12, ...]。这就是一个向量,通常768维、1536维甚至更高。
这些数字不是随便写的。语义相似的内容,转换后的向量在空间里距离很近。比如"北京"和"上海"这两个词,向量会很接近;而"北京"和"苹果",向量距离就远。
向量数据库就是干这个的:存储这些向量,然后在需要的时候,快速找到和目标向量最"近"的那些向量。这叫近似最近邻搜索(ANN Search)。
类比一下:传统数据库像按字母排序的字典,要找"天"开头的词只能一个一个查;但向量数据库像把书按内容主题分类摆放,"哲学书"和"哲学书"摆一起,"烹饪书"摆另一边,找同类内容直接去对应区域就行。
向量数据库怎么工作
核心流程就三步:
第一步:把数据转成向量
通过Embedding模型,把文本、图片、音频这些非结构化数据转换成数值向量。这个过程叫"向量化"或"嵌入"。
举个例子:"什么是机器学习" → Embedding模型 → [0.23, -0.45, 0.89, 0.12, ...]
第二步:存到向量数据库
把这些向量和原始数据(文本、图片等)一起存进去。数据库会建立索引,方便后续快速检索。
第三步:查询时找相似
当你提出一个问题,比如"深度学习怎么入门",系统先把这个问句转成向量,然后在向量空间里找到和它最接近的那些向量,返回对应的原始内容。
相似度怎么衡量?常见的有几种方式:
- 余弦相似度:看两个向量的方向是否一致
- 欧几里得距离:看两个向量在空间里的直线距离
- 点积:结合了方向和大小
实际应用中,余弦相似度最常用。
向量数据库解决什么问题
这是这道题的核心。向量数据库解决的是传统数据库干不了的事:语义相似性搜索。
举几个场景你就明白了:
场景1:RAG(检索增强生成)
大模型有知识截止日期,参数有限,记不住所有东西。想让它回答"我们公司的报销流程是什么",它大概率瞎编。
怎么办?把公司所有文档都向量化存进向量数据库。用户提问时,先在数据库里检索相关文档,把这些文档作为上下文喂给大模型。大模型再结合这些真实资料回答。
这就是RAG的核心架构:用户问题 → 向量检索 → 拼接上下文 → LLM生成答案。
场景2:智能问答机器人
你问"怎么重置密码",传统关键词匹配可能返回"密码忘了怎么办"的内容(如果碰巧关键词重叠多)。但向量检索能找到语义相近的"账户安全问题"、"修改登录密码"相关答案。
场景3:推荐系统
电商的"买了这个商品的人还买了..."、"猜你喜欢",背后就是向量相似搜索。把用户行为和商品都转成向量,找最接近的那些商品推荐给你。
常见向量数据库产品
知道了原理,你可能还听过一些具体产品:
- Pinecone:云原生,做得早生态成熟
- Milvus:开源,可私有化部署
- Qdrant:Rust写的,性能好
- 腾讯云向量数据库:国内云厂商的选择
面试时说一两个就行,不用把所有产品都背下来。
面试怎么答
基础版(直接背)
向量数据库是专门存储高维向量的数据库,核心功能是近似最近邻搜索,解决语义相似性检索的问题。传统数据库按精确匹配查,向量数据库按语义相似度查。原理是把文本、图片这些非结构化数据通过Embedding模型转成向量,在向量空间里语义相近的内容距离很近,查询时找到最接近的向量对应的原始内容。在大模型应用中,向量数据库主要用于RAG场景,给LLM提供外部知识库,解决大模型知识有限、容易幻觉的问题。
加分版(多聊几点)
向量数据库的核心是ANN搜索,和传统关系数据库的查询处理器完全不同。当前性能瓶颈已经从计算转向存储I/O,特别是向量数据量大的时候。典型产品有Pinecone、Milvus这些。在RAG架构里,向量数据库作为检索层,和LLM的生成层配合,一个负责找相关资料,一个负责组织回答。
一句话总结
向量数据库通过存储和检索高维向量来解决语义相似性搜索问题,是大模型连接外部知识的关键基础设施。
