当前位置: 首页 > news >正文

向量库(Vector Database)

在这里插入图片描述

向量库


1. 向量库发展史
  1. 早期阶段(2000s)
    • 基于关系型数据库的扩展(如 PostgreSQL 的向量插件)。
    • 简单相似度计算(如欧氏距离、余弦相似度)。
  2. 专用向量库的兴起(2010s)
    • FAISS(Facebook AI Research,2017):首个高效向量检索库。
    • Annoy(Spotify,2013):基于树的近似最近邻搜索。
    • Milvus(2019):首个开源分布式向量数据库。
  3. 现代阶段(2020s)
    • 云原生向量库(如 PineconeWeaviate)。
    • 多模态支持(文本、图像、视频向量统一管理)。
    • 与 AI 生态深度集成(如结合大语言模型)。

2. 向量库核心技术点
  1. 核心组件

    • 索引结构:支持高效查询的数据结构(哈希、树、图、量化等)。
    • 相似度算法:余弦相似度、欧氏距离、内积等。
    • 分布式架构:水平扩展、负载均衡、容灾恢复。
    • 存储优化:压缩技术(如 PQ 乘积量化)、内存管理。
  2. 核心功能

    • 向量插入、删除、更新。
    • 近似最近邻搜索(ANN)。
    • 混合查询(向量 + 结构化数据过滤)。

3. 相似度搜索算法分类
  1. 基于哈希(Hash-based)

    • 局部敏感哈希(LSH)
      • 原理:通过哈希函数将相似向量映射到相同桶。
      • 适用场景:高维数据快速检索。
      • 支持的库:FAISS(LSH 索引)、Vald
    • 多探针 LSH
      • 改进:允许跨桶搜索,提高召回率。
  2. 基于树(Tree-based)

    • KD-Tree
      • 原理:递归划分高维空间。
      • 缺点:高维数据效率低。
    • Ball Tree
      • 改进:以超球体划分空间,适合高维数据。
    • Annoy(Approximate Nearest Neighbors Oh Yeah)
      • 原理:构建多棵二叉树,通过投票机制合并结果。
      • 支持的库:AnnoyElasticsearch(部分支持)。
  3. 基于图(Graph-based)

    • HNSW(Hierarchical Navigable Small World)
      • 原理:构建分层图结构,快速导航到近邻。
      • 优势:高召回率、低延迟。
      • 支持的库:FAISSMilvusWeaviate
    • NSG(Navigating Spreading-out Graph)
      • 改进:优化图结构,减少内存占用。
  4. 基于量化(Quantization-based)

    • IVF(Inverted File Index)
      • 原理:聚类向量,建立倒排索引。
      • 支持的库:FAISSMilvus
    • PQ(Product Quantization)
      • 原理:将高维向量分解为子空间并量化。
      • 优势:大幅减少内存占用。
      • 支持的库:FAISSMilvus
  5. 混合方法

    • IVF-PQ:结合倒排索引和乘积量化。
    • HNSW + IVF:分层图与聚类结合。

4. 主流向量库推荐
  1. 开源向量库

    • FAISS
      • 特点:高性能、支持多种索引(IVF、HNSW、PQ)。
      • 适用场景:单机小规模数据。
    • Milvus
      • 特点:分布式、支持混合查询、云原生。
      • 适用场景:大规模生产环境。
    • Weaviate
      • 特点:内置多模态模型、GraphQL 接口。
    • Annoy
      • 特点:轻量级、基于树的索引。
  2. 商业/云服务

    • Pinecone
      • 特点:全托管、自动索引优化、低延迟。
    • Zilliz Cloud
      • 特点:基于 Milvus 的云服务,企业级功能。

5. 学习方法与资源
  1. 学习路径

    • 基础理论:线性代数(向量空间、距离度量)、数据结构(树、图)。
    • 工具实践:FAISS/Milvus 官方文档、示例代码。
    • 算法深入:阅读论文(如 HNSW、PQ 的原始论文)。
  2. 推荐资源

    • 书籍
      • 《Nearest Neighbor Search: A Database Perspective》
      • 《Similarity Search and Applications》
    • 论文
      • HNSW(arXiv:1603.09320)
      • PQ(arXiv:1009.4579)
    • 在线课程
      • Coursera《Approximate Nearest Neighbor Search for Machine Learning》
    • 社区
      • GitHub(FAISS、Milvus 仓库)。
      • 知乎、Stack Overflow 技术讨论。
  3. 动手实践

    • 使用 FAISS 实现 IVF-PQ 索引。
    • Milvus 中部署分布式向量检索服务。
    • 对比 HNSW 与 IVF 的召回率与性能。

6. 使用向量库的典型流程
  1. 数据准备

    • 生成向量(使用预训练模型如 BERT、ResNet)。
    • 数据清洗与归一化。
  2. 索引构建

    • 选择算法(HNSW、IVF-PQ 等)。
    • 配置参数(如聚类数、量化维度)。
  3. 查询优化

    • 调整搜索参数(nprobeefSearch)。
    • 混合过滤(结合结构化条件)。
  4. 性能监控

    • 召回率(Recall)与延迟(Latency)权衡。
    • 资源占用(内存、CPU/GPU 利用率)。

7. 重要补充技术
  1. 量化技术(Quantization)

    • 标量量化(SQ):降低向量精度(如 float32 → int8)。
    • 残差量化(RQ):多阶段量化提升精度。
  2. 近邻图算法变种

    • NGT(Neighborhood Graph and Tree):结合图与树结构。
    • SPTAG(微软):基于图的分布式索引。
  3. GPU 加速

    • RAPIDS RAFT:基于 CUDA 的加速库。
    • Milvus GPU 版:支持 GPU 索引构建与查询。

8. 应用场景
  1. 推荐系统:用户/商品向量匹配。
  2. 图像检索:以图搜图、版权检测。
  3. 自然语言处理:语义搜索、问答系统。
  4. 生物信息学:基因序列比对。

9. 未来趋势
  1. 自动化索引调优:基于机器学习的参数优化。
  2. 多模态统一检索:文本、图像、视频跨模态搜索。
  3. 边缘计算:轻量级向量库在端侧设备的应用。

通过此大纲,您可以从理论到实践全面掌握向量库的核心知识,并选择合适的工具与算法解决实际问题。

相关文章:

  • [笔记.AI]如何判断模型是否通过剪枝、量化、蒸馏生成?
  • 深入探索SQLAlchemy:模型定义与操作
  • 如何在本地和线上安装和配置RabbitMQ
  • 多种方式获取用户的相似度(附python源码)
  • 【Linux-网络】HTTP的清风与HTTPS的密语
  • Node.js 中 cookie-parser 依赖详解
  • 一种最常见的js加密解密
  • DeepSeek学术指南:DeepSeek在学术翻译改写能力应用操作案例!
  • Salesforce 检索Layout的设定
  • 深入理解Java中的ConcurrentSkipListMap
  • 【DeepSeek】Mac m1电脑部署DeepSeek
  • #渗透测试#批量漏洞挖掘#Fastjson 1.2.24 远程命令执行漏洞
  • EasyX安装及使用
  • FastDDS示例Windows下编译
  • Android程序自身重启程序的几种方法
  • 手写数字识别的神经网络 2层神经网络的类 代码详解
  • 2.18学习总结
  • Win10环境使用零讯ZeroNews内网穿透实现Deepseek对外服务
  • 解决 nodejs 设置cors 不生效问题
  • 从零开始构建一个小型字符级语言模型的详细教程(基于Transformer架构)之二模型架构设计
  • 正荣地产:董事会主席、行政总裁辞任,拟投入更多精力推动境内债重组等工作
  • AI聊天机器人涉多起骚扰行为,专家呼吁加强伦理设计与监管
  • 央行、证监会:科技创新债券含公司债券、企业债券、非金融企业债务融资工具等
  • 新疆生产建设兵团草湖项目区副主任宋全伟接受审查调查
  • 李云泽:小微企业融资协调工作机制已发放贷款12.6万亿元
  • 应对美政策调整:中国重在开放与创新,维护好数据主权