术语表

矢量数据库

了解矢量数据库如何通过为智能系统提供高效的相似性搜索、语义搜索和异常检测来彻底改变人工智能。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

矢量数据库是一种专门用于存储、管理和查询高维矢量(通常称为嵌入)的数据库。在人工智能(AI)机器学习(ML)领域,这些向量是由深度学习(DL)模型生成的文本、图像、音频和视频等非结构化数据的数字表示。与擅长处理结构化数据和精确匹配的传统数据库不同,向量数据库针对相似性搜索进行了优化,使应用程序能够根据概念或语义的接近程度而不是关键字匹配来查找项目。这一功能是许多现代人工智能驱动功能的基础。

核心概念和功能

矢量数据库的运行原理是矢量搜索,即在数据库中找到与给定查询矢量 "最接近 "的矢量。这种 "最接近 "通常使用余弦相似度欧氏距离等距离指标来衡量。核心工作流程包括

  1. 嵌入生成:数据(如文本、图像)通过嵌入模型(如用于文本的BERT或用于图像的嵌入模型)转换为矢量。 Ultralytics YOLO模型)。这些向量可以捕捉到高维空间中数据的语义本质。
  2. 索引:生成的向量存储在向量数据库中。为了实现快速检索,数据库采用了专门的索引算法,主要是近似近邻(ANN)搜索技术,如 HNSW(层次导航小世界)或 IVF(反转文件索引)。这些索引即使在数十亿矢量中也能实现快速的相似性搜索,以完美的准确性换取显著的速度提升,这对实时推理至关重要。流行的 ANN 库包括FAISSScaNN
  3. 查询:收到查询(也转换为向量)后,数据库会使用其索引,根据所选的距离度量,高效地查找并返回与查询向量最相似的向量。

矢量数据库与传统数据库

传统数据库(如 SQL 或 NoSQL 数据库)专为结构化或半结构化数据而设计,依赖于使用标准数据库索引方法(如 B 树)进行精确匹配。它们本身不具备处理以向量表示的非结构化数据所需的相似性搜索的能力。

主要区别包括

  • 数据类型:传统数据库处理字母数字数据、JSON 等。矢量数据库处理高维数字矢量。
  • 查询类型:传统数据库执行精确匹配、范围查询或关键字搜索。向量数据库执行相似性搜索(近邻搜索)。
  • 索引:传统数据库使用 B 树或哈希索引等索引。向量数据库使用 ANN 索引。

人工智能和机器学习的应用

矢量数据库是众多人工智能应用的基础:

  • 语义搜索使搜索引擎或内部知识库能够根据意义而不仅仅是关键词来查找结果。例如,搜索 "健康午餐创意 "可能会返回沙拉和谷物碗的食谱,即使它们并不包含准确的搜索词。
  • 推荐系统为 Netflix 或 Spotify 等平台提供支持,根据内容嵌入和用户配置文件,向用户推荐与之前喜欢的内容相似的电影或歌曲。
  • 图像识别和视觉搜索:让用户能够找到相似的图像(反向图像搜索),或通过上传图像在电子商务中发现产品。这是计算机视觉(CV)的一项关键应用。Ultralytics HUB等平台可利用矢量数据库来管理和搜索大型视觉数据集
  • 自然语言处理 (NLP):通过理解文本语义,为问答系统、聊天机器人和文档聚类等应用提供支持。
  • 检索增强生成(RAG)通过从矢量数据库中检索相关的最新信息来增强大型语言模型(LLMs),从而使模型的反应建立在事实数据的基础上,减少幻觉
  • 异常检测识别向量空间中远离密集群组的异常数据点(向量),适用于欺诈检测或系统监控。
  • 数据探索工具 Ultralytics Explorer 等工具使用嵌入技术,通过将类似的数据点分组,帮助用户可视化地理解大型数据集。

流行的矢量数据库

有几个开源和商业矢量数据库可供使用,包括

  • Pinecone:一种流行的托管矢量数据库服务。
  • Milvus:专为可扩展性而设计的开源矢量数据库。
  • Weaviate:一个具有图形功能的开源、人工智能原生向量数据库。
  • Chroma DB:注重开发人员体验的开源嵌入式数据库。
  • Qdrant:开源向量数据库和相似性搜索引擎

矢量数据库的兴起反映了嵌入和相似性搜索在构建复杂的人工智能应用中日益重要,推动了矢量数据库市场的显著增长。它们是有效利用现代机器学习模型所获取的洞察力的关键基础设施组件。

阅读全部