向量数据库
向量数据库(Vector Database, VDB)是一种专门设计用于高效存储、管理和检索高维向量数据(通常称为向量嵌入,Embeddings)的数据库系统。
它是大模型时代(如 GPT-4 等 LLM)和人工智能应用的核心基础设施之一。
1. 核心工作原理
要理解向量数据库,需要从数据如何被 AI 理解和检索的过程来看:
向量化与嵌入(Embedding): 计算机无法直接理解文章、图片或音视频等非结构化数据。AI 模型(如嵌入模型)会将这些非结构化数据,转化为一串固定长度的数字(即高维稠密向量),用来代表这块数据的“语义特征”。例如,意思相近的词语(如“小狗”和“犬”)在被转化为向量后,它们在数学空间里的位置会非常接近 。
语义相似度计算: 传统数据库是根据“关键词是否完全一致”来查询的。而向量数据库则是通过计算两个向量在空间中的数学距离(如余弦相似度、内积或欧氏距离)来衡量它们的语义相关性。这使得用户即使输入了不同的表达方式,系统依然能找到语义最相关的结果(即语义搜索) 。
2. 为什么需要专属的向量数据库?
传统的关系型数据库在面对海量高维向量检索时会遭遇性能瓶颈:
计算复杂度极高:
如果数据库里有 $1,000$ 万条数据,每次查询都要与每一个向量计算一次距离(即暴力暴力检索,kNN),计算量呈线性暴增(时间复杂度为 $O(N)$),无法满足实时响应的要求。
近似最近邻(ANN)算法的引入:
向量数据库引入了 ANN 索引算法,通过构建特殊的索引结构,在牺牲极少精度(召回率)的情况下,将检索耗时缩短至毫秒级。常见的索引算法包括:
HNSW(分层可导航小世界图): 通过在内存中构建多层近邻图,检索速度极快,召回率极高(通常在 95% 以上),但非常消耗内存 。
IVF-PQ(倒排文件乘积量化): 对空间进行聚类并高度压缩向量,能够以极低的内存开销支持十亿级别超大规模的数据检索 。
DiskANN: 针对磁盘固态硬盘(SSD)进行优化的图算法,全量向量保存在磁盘,内存中仅保留少量导航信息,性价比极高 。
3. 向量数据库与传统数据库的区别
4. 主要应用场景
在现代 AI 应用中,向量数据库扮演着不可或缺的角色:
检索增强生成(RAG): 作为大语言模型(LLM)的“外挂大脑”或长期记忆库。由于大模型自身的知识有截止时间,且容易产生“幻觉”,企业可以将最新的专业文档向量化并存入向量数据库。当用户提问时,系统先从向量数据库检索出最相关的文本,再送给大模型进行归纳生成,从而输出事实准确的回答。
多模态搜索: 实现“以图搜图”、“以视频搜视频”或“通过文字描述搜图片” 。
推荐系统: 将用户的行为和商品的特征编码为向量,实现毫秒级的个性化精准推荐。