一、核心定义

矢量数据库 是一种专门设计用来存储、检索和管理向量的数据库。要理解它,我们需要先拆解两个关键概念。

  1. 什么是向量?
    在人工智能和机器学习领域,向量(或称嵌入)是一长串的数字,例如 [0.23, -0.54, 0.89, ... , 0.12]。这个向量就像一个“数学指纹”,它代表了某个数据(如一段文本、一张图片、一段音频)的语义或特征。向量的维度可以很高,比如 384 维、768 维甚至 1024 维。

    例子:单词“猫”的向量,在数学空间里会离“狗”比较近,而离“汽车”比较远。一张“海滩”图片的向量,会和另一张“沙滩”图片的向量相似。
  2. 什么是数据库?
    传统数据库(如MySQL)存储的是结构化数据(数字、日期、字符串),并通过精确匹配或范围查询来检索(例如 WHERE price > 100)。

矢量数据库的核心工作就是基于向量的相似性进行高效检索。

二、为什么需要矢量数据库?

随着生成式AI和大模型的爆发,我们需要处理海量的非结构化数据(文本、图像、视频、音频)。传统数据库无法理解这些数据的“含义”。矢量数据库解决了这个问题:

  1. 让计算机理解“语义”:通过将非结构化数据转化为向量,计算机可以计算不同数据之间的“相似度”。

  2. 实现“模糊”检索:你可以用自然语言提问(例如“找出所有关于太空探索的科幻电影”),数据库会找到语义上最接近的答案,而不仅仅是关键词匹配。

三、核心原理(相似性搜索)

矢量数据库最核心的操作叫做 “最近邻搜索”。给定一个查询向量,数据库的任务是快速从数十亿个存储的向量中,找出与之最相似的K个向量。

如何衡量相似度?
最常用的方法是 “余弦相似度”。它衡量的是两个向量在方向上的接近程度,值在 -1 到 1 之间,值越大越相似。

四、关键特性与技术

为了实现高效的大规模向量搜索,矢量数据库具备以下特性:

  • 专用索引:像传统数据库的B-Tree一样,矢量数据库使用特殊的索引结构来加速搜索,例如:

    • HNSW:一种基于图的算法,速度快、精度高,是目前的主流。

    • IVF:通过聚类来缩小搜索范围。

    • PQ:对向量进行压缩,减少内存占用。

  • 元数据过滤:除了向量,还可以存储和过滤元数据。例如:“找出2022年以后发布的、与‘新能源车’语义相似的新闻”。

  • 水平可扩展性:可以轻松地在多个节点上分发数据和查询,以处理海量数据集。

五、主要应用场景

  1. AI/LLM 的长期记忆(RAG 的核心):这是目前最火的应用。为大型语言模型(如ChatGPT)提供外部知识库。当用户提问时,先从其专有数据(矢量数据库)中检索最相关的信息,再交给LLM生成答案,保证了答案的准确性和时效性。

  2. 语义搜索:超越关键词匹配,理解用户的搜索意图。例如在电商平台搜索“适合雨天通勤的舒适男鞋”,系统能理解“雨天”、“通勤”、“舒适”的语义。

  3. 推荐系统:“喜欢这个产品的人也喜欢……” 本质上就是寻找相似的商品或内容向量。

  4. 图像/视频/音频检索:以图搜图、哼歌识曲、视频内容匹配等。

  5. 异常检测:在金融或工业领域,正常行为的向量会聚在一起,异常的向量则会偏离,从而被检测出来。

六、与传统数据库、图数据库的区别

特性 矢量数据库 传统关系型数据库 图数据库
核心数据 高维向量 结构化表格、行列 节点、边和属性
查询方式 相似性搜索(最近邻) 精确匹配(等值、范围) 关系遍历(路径、连接)
擅长领域 语义理解、非结构化数据 事务处理、结构化数据 关系分析、关联网络
示例查询 “给我10张与这张图片最相似的图片” “找出年龄大于25岁、来自北京的用户” “找出张三的三度人脉中,谁的影响力最大”

七、主流矢量数据库举例

产品 开源免费 企业使用与生态 核心定位与特点 主要适用场景
Milvus ✅ 是 超过10,000个生产团队使用,社区活跃,得到NVIDIA、Salesforce、eBay等大公司信任。 大规模、企业级AI应用设计的分布式向量数据库。功能全面,支持混合搜索、GPU加速等。 大规模生产环境、私有化部署、多模态检索、亿级向量搜索。
Qdrant ✅ 是 企业应用广泛,但在搜索结果中缺乏具体的用户规模数据。 使用Rust编写,性能优异的向量搜索引擎。支持云端和本地部署。 实时推荐、广告系统、RAG应用。
Chroma ✅ 是 社区活跃,但定位轻量,企业大规模生产应用较少 轻量级、嵌入式向量数据库。开箱即用,集成方便。 个人开发、原型验证、小规模本地应用。
Weaviate ✅ 是 有商业托管版,开源版也被不少企业采用。 内置模块支持多种AI模型,可同时存储向量和对象的多模态数据库 知识图谱、混合搜索、需要内置AI模型的应用。

简单比喻想象一个巨大的图书馆:

  • 传统数据库:就像按照索书号(一个精确标签)来查找书。

  • 矢量数据库:就像一位图书管理员,你告诉他:“我想找一本读起来感觉像《三体》,但主题更偏向人工智能的小说。” 他基于对书本内容深层含义的理解,为你推荐最相关的几本。这位“管理员”就是矢量数据库的算法。

      矢量数据库是AI时代处理和理解非结构化数据的基石。它通过将数据转化为向量并计算其相似性,使应用程序能够进行“智能”检索,从而为高级AI应用(如RAG、个性化推荐、语义搜索)提供了关键的后端支持。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐