Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Vector Database

向量数据库存储带有 ID 和元数据的嵌入,并为其建立索引,以便快速进行近邻搜索,是 RAG 和图像搜索的检索层。

向量数据库存储嵌入向量,也就是模型为文本、图像、音频或视频生成的数值向量,并为每个项目保存 ID 和元数据;它能够在数毫秒内从数百万或数十亿个项目中回答“哪些已存储向量与这个向量最接近?”这个问题。它将向量搜索索引与数据库功能结合起来,包括插入、更新和删除、按元数据筛选、持久化、访问控制以及跨机器复制。向量数据库为检索增强生成(RAG)、语义搜索和推荐系统提供检索步骤。

向量数据库的工作原理#

在写入流程中,嵌入模型(可以位于数据库外部,也可以内置于数据库中)会将每个项目转换为向量,数据库则将向量与 ID 及元数据载荷一并存储,例如源文件、日期、摄像头或客户信息。将查询与每个已存储向量进行比较虽然精确,但在大规模场景下速度很慢,因此数据库会建立近似最近邻(ANN)索引。HNSW会在分层图中将每个向量连接到其近邻,搜索时会沿图贪心遍历;倒排文件(IVF)索引通过k 均值聚类对向量分组,只扫描与查询最接近的簇;而向量量化方法(例如乘积量化)会将每个向量压缩到几个字节。在读取流程中,查询会使用同一个模型转换为嵌入向量,再通过余弦相似度、点积或欧氏距离等度量进行比较;数据库会返回排名前 k 的 ID、分数和载荷,许多系统还会将这些结果与关键字搜索结果合并,进行混合搜索。

本示例使用Chroma,这是一个在 Python 进程内存中运行的开源向量数据库:

import chromadb

# 内存客户端;chromadb.PersistentClient(path="db") 会将数据保存在磁盘上
client = chromadb.Client()
collection = client.create_collection("inspection_notes")

# Chroma 使用默认嵌入模型为每份文档生成嵌入向量并建立索引
collection.add(
    ids=["n1", "n2", "n3"],
    documents=[
        "Hairline crack found near the weld on bracket B7",
        "Paint scratch on the left door panel",
        "Porosity in the weld seam of the frame rail",
    ],
    metadatas=[{"line": "A"}, {"line": "B"}, {"line": "B"}],
)

# 将最近邻搜索限制在一条生产线上
results = collection.query(query_texts=["welding defects"], n_results=1, where={"line": "B"})
print(results["ids"][0], results["documents"][0])

查询返回了注释 n3,即 B 线上的焊接气孔。元数据筛选会排除 A 线的裂纹注释,尽管它的文本与“焊接缺陷”同样接近。

  • FAISS等向量搜索库:提供进程内索引,包括 HNSW、IVF 和乘积量化,但不提供服务器、元数据存储或复制功能。多种向量数据库都以这些库为基础。
  • 专用向量数据库:Pinecone 是托管服务,Milvus、Qdrant、Weaviate 和 Chroma 是开源项目;这些系统从一开始就围绕嵌入向量设计。
  • pgvector等向量扩展:在 PostgreSQL 中添加带有 HNSW 和 IVFFlat 索引的向量列,让嵌入向量与关系型数据存放在一起。Elasticsearch、OpenSearch、MongoDB Atlas 和 Redis 也提供类似的向量字段,并与关键字搜索并存。
  • 特征存储:根据实体键提供用于训练和推理的模型输入特征。特征存储按 ID 查找记录,而不是按相似度查找。
  • 数据湖:存放图像和日志等原始文件,向量数据库通过 ID 或路径引用这些文件。

实际应用#

  • AI 智能体的记忆:RAG 流水线和智能体会存储文档片段和过去的对话,以便大型语言模型按需检索。
  • 零售视觉搜索:“查找相似商品”功能会为每张商品照片生成嵌入向量,并返回与购物者正在查看的商品最接近的项目。
  • 异常检测:如果新样本的最近邻已存储项目都相距很远,就会将其标记为异常,例如某笔交易或某个传感器读数。

图像集合需要视觉模型来生成向量。Ultralytics YOLO26通过 model.embed() 提供此功能:它会对每张图像运行模型,并返回从倒数第二层池化得到的特征向量,可与图像路径和采集元数据一起存储,用于检测近重复图像或搜索相似图像。这类查找功能也是 Ultralytics Platform 中查找相似图像背后的实现方式。

容量规划与调优#

索引设置需要在召回率和推理延迟之间权衡:HNSW 的搜索范围(ef_search)和 IVF 探测的簇数量(nprobe)都会通过减慢查询速度来找到更多真正的近邻,因此团队会针对样本查询,将这些设置与精确搜索进行对比并调优。内存决定硬件成本。100 万个 768 维 float32 嵌入向量在计算任何索引开销前需要 3.07 GB(1,000,000 x 768 x 4 bytes);对向量进行 int8 标量量化可将内存占用降至 768 MB,而套娃嵌入还可以截断为更少的维度,进一步降低占用。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来