天天看点

3分钟剖析万字长文(向量数据库-总结版)

作者:AI宝藏工具Fyou

[撒花]

本文是对:https://guangzhengli.com/blog/zh/vector-database/# 的总结。

有时间的可以去精读一下原文!

目录结构

3分钟剖析万字长文(向量数据库-总结版)

引言

也许你最近可能听过这样的新闻,某向量数据库的初创公司刚写好 PPT,就获得了几千万的投资,某公司的开源的向量数据库因其代码的简陋而登上了 Hackernews 等等。在过去几个月时间中, AI 应用的发展如火如荼,带动了 AI 应用技术栈上下游的火爆,而向量数据库就是其中最热门的之一。

一、GPT 的缺陷

核心要点:GPT存在哪些主要缺陷限制了其应用?

GPT 存在以下缺陷:

  • token 长度限制:输入文本长度不可超过特定 token 数目,例如 GPT-3 为 4096 tokens
  • 无记忆能力:GPT 作为大型语言模型(LLM)没有记忆能力
  • 使用成本高:GPT API 是按 token 计费,输入文本越长费用越高

二、向量数据库的崛起

核心问题:向量数据库的应用前景有哪些?

  • 基于向量空间模型,可以存储非结构化数据
  • 通过相似性搜索而非精确匹配检索信息
  • 可降低 GPT 使用成本,应用于问答系统等场景
3分钟剖析万字长文(向量数据库-总结版)

三、Vector Embeddings

要点:Vector Embedding的作用是什么?

  • 使用 AI 模型生成包含语义信息的高维向量表示
  • 将非结构化数据转换为语义向量,存储在向量数据库中
  • 文本用 text-embedding-ada-002 生成,图像用 clip-vit-base-patch32 生成

四、特征和向量

问题:特征和向量的关系是什么?

  • 提取数据的多种特征,在高维空间中表示为坐标
  • 计算不同向量间欧几里得距离判断相似度
  • 维度越多可以更准确判别相似性
3分钟剖析万字长文(向量数据库-总结版)

五、相似性搜索 (Similarity Search)

要点:相似性搜索的常用算法有哪些?

5. 1 K-Means 和 Faiss

  • 使用聚类算法将向量分组,限制搜索范围
  • Faiss 使用多探针搜索调整搜索范围
  • 缺点:聚类效果依赖参数选择,可能漏失边界样本
3分钟剖析万字长文(向量数据库-总结版)

5.2 Product Quantization (PQ)

  • 将高维向量分解为多个子向量,独立量化编码
  • 大幅降低存储开销
  • 查询时组合子向量得到原向量
  • 缺点:量化带来信息损失,降低搜索质量
3分钟剖析万字长文(向量数据库-总结版)

5.3 Hierarchical Navigable Small Worlds (HNSW)

  • 构建多层图,从第一层搜索逐层逼近目标
  • 保证搜索速度和结果质量
  • 缺点:构建复杂,存储开销较大
3分钟剖析万字长文(向量数据库-总结版)

5.4 Locality Sensitive Hashing (LSH)

  • 使用高碰撞概率的哈希函数
  • 将相似向量映射到同一存储桶
  • 桶内向量数少,可快速搜索
  • 缺点:hash结果依赖参数和数据分布
3分钟剖析万字长文(向量数据库-总结版)

5.5 Annoy

  • 基于森林的向量搜索实现算法
  • 支持余弦相似度、欧式距离等测量
  • 缺点:只支持余弦相似度等较简单测量

六、相似性测量 (Similarity Measurement)

问题:常见的相似性量化方法有哪些?

6.1 Euclidean Distance

  • 反映向量间直线距离
  • 考虑向量长度
  • 应用场景:用户历史行为数量推荐

6.2 Cosine Similarity

  • 反映向量间角度
  • 不考虑长度
  • 应用场景:语义搜索、文档分类

6.3 Dot product Similarity

  • 简单快速
  • 考虑向量长度和方向
  • 应用场景:图像识别、语义搜索、文档分类

七、过滤 (Filtering)

要点:过滤对向量搜索有何作用?

  • 先后过滤元数据实现精确匹配
  • 优化过滤流程提高性能
3分钟剖析万字长文(向量数据库-总结版)

八、向量数据库选型

问题:选择向量数据库需考虑的因素有哪些?

8.1 分布式

  • 需要高可用性、容错性
  • 使用分片和复制提高稳定性

8.2 访问控制和备份

  • 支持细粒度权限控制、日志审计、数据备份

8.3 API & SDK

  • 简单、完善的 API 设计提高开发效率

8.4 选型

  • 综合考虑算法、性能、成本等因素

8.5 传统数据库扩展

要点:传统数据库也可以实现向量搜索

  • 使用扩展实现向量搜索功能
  • 如 PostgreSQL 的 pgvector, Redis 的 RediSearch

九、总结

要点:向量数据库和传统数据库应用展望

  • 两种数据库各有优势,可以同时使用实现互补

#头条创作挑战赛#