程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

向量数据库基本原理

balukai 2025-03-10 12:17:39 文章精选 138 ℃

向量是AI理解世界的通用数据形式。

Vector

向量是什么?向量是多维数学空间的坐标点。

向量从哪来?向量来源于对现实世界数字化的抽象。

向量怎么用?向量用来搜索真实世界不同模态数据。

向量的类型包含图像向量,文本向量,语音向量。

图像向量:通过神经网络模型提取图像特征向量 Feature Map,特征向量 Feature Map 提取输入图像的高维信息,如颜色、形状、纹理等,最终可以用于图像识别、检索等任务。

文本向量:通过词嵌入Work Embedding技术如Word2Vec、BERT 等生成文本特征向量,文本特征向量包含文本语义高维信息,可以用于文本分类、情感分析等 NLP任务;

声学向量:通过声学模型 Acoustic Model从音频信号中提取的音频的频谱特征向量,频谱特征向量提取声音的高维特性,如音调、节奏、音色等,可用于语音识别、声纹识别等任务;

Embedding

Embedding:非结构化数据转换成向量的过程。通过深度学习的训练,将真实世界离散数据,投影到高维数据空间上,通过数据在空间中间的距离体现真实世界的相似度。

VectorEmbedding

Vector Embedding:向量嵌入,将非数值词语/符号等非结构化数据,编码成数值向量。

WordEmbedding:词嵌入,通过NN来学习,文本中词语作为NN网络输入,输出对应词向量WordVector。词向量是一个数值向量每个数值代表词语的某个特征。

为什么需要这么多维度?

人类通过不同事物间不同特征来识别种类,如分辨不同种类小猫,可通过体型大小、毛发长度、鼻子长短、脸型等特征区分。

体型越大的猫在一维度坐标轴右边,得到一个体型特征与一维坐标从0到|对应数值。单靠体型特征并不能充分区分不同种类的猫咪,因此会增加其它特征,例如毛发颜色。

只要特征维度足够多,能将所有猫区分开来,最后得到一个高维坐标系。虽然难以想象高维坐标系,但是在向量数组中,只需要向数组为追加数值即可。

向量维度越低,嵌入空间 Embedding Space 中特征表示就越紧凑,可能会影响下游任务或模型训练质量。

向量是 AI 理解世界的通用数据形式。无论游戏、网络、教育、医疗等,各行业领域中使用 A 能力和场景越来越多。AI 框架基本组成为向量+算子,训练和推理时可以看做向量搜索/索引和向量计算过程。因此可认为:向量是 AI理解世界的通用数据形式,未来向量将会成为 AI 的灵魂。

与传统数据库:检索方式不同

传统数据库搜索本质是基于文本的精确匹配,无法识别语义关系。

向量数据库针对向量近似查找,查询得到TopK的向量。

与传统数据库:查询方式不同

传统数据库直接处理数据,使用SQL语言对文本精确匹配

向量数据库将非结构化数据转化为向量,再基于向量数据库进行存储、计算和建立索引。

向量数据库

随移动互联网发展,非结构化数据越来越常见。为让计算机理解和处理非结构化数据,Embedding 将各式数据转换为 Vector 数据。通过数据库仔储和索引 Vector 数据,分析 Vector 间相关性。

用户输入查询(NLP、Image、Audio)被转换成 Vector,与源数据本身位于相同 Embedding 空间中,Vector 通过向量数据进行语义近似搜索,返回与输入查询最相似 TOP-K个结果。

向量数据库就是为向量数据提供专用的存储和索引机制。向量数据被存储为高维空间中点,数据库为点建立索引(KD-Tree、B-Tree、HNSW等)。索引结构使得向量数据库高效地进行向量间相似度查询,从而提升处理向量数据效率。

向量数据库发展历程

第一阶段:以文件形式存储向量数据,缺乏有效索引和查询能力,典型产品为Lucene;

第二阶段:使用 KD 树等索引结构,可实现一定查询性能,但在高维空间的査询效率还不高,典型产品有 FAISS、Annoy 等。

第三阶段:通过复杂 Index 算法实现高效向量索引和査询,处理高维向量数据,典型产品有 Milvus、Elasticsearch 等。

向量数据库存储向量类型

私域知识 Domain Knowledge

私域知识是指可以把向量数据库作为大模型的外部知识库。不需要去训练模型,比常见的大模型微调地方法成本更低、速度更快也能通过更新数据库保证A大模型知识的实时更新。

本地存储 Local Storage

将向量数据存储在本地。通过向量的相似关系保证隐私信息不会提供给大型进行训练。

长期记忆 Long Time Memory

长期记忆是相比大模型的短期记忆,大模型如ChatGPT其上下文信息有数量限制。Vector DB 作为外部数据库,存储单次上传的超大文本、对话内容等信息,为大模型提供理论上没有上限的长期记忆。

向量数据库解决的问题

主要解决2个问题,高效的检索与高效的分析。

检索:以图搜图场景,如人脸检索、人脸支付、车牌号码检索、相似商品检索等2.分析:以图分析行为,人脸撞库、人脸对比、场景再现等;

相似性搜索

允许根据向量距离或相似性对向量数据 Vector 进行快速准确的相似性搜索和检索。这意味着可以使用 Vector DB 根据语义或上下文含义査找最相似或相关的数据,而非精确匹配或预定义标准查询数据库的传统方法。

提升性能

针对大量向量数据 Vector 存储和检索操作进行优化,每次査询通常处理数亿个向量,并且比传统数据库的处理速度快得多。以下主要介绍向量数据库最核心的几种技术和能力:

1.相似度计算:使用相似性度量等算法过滤和定位相似的向量

2.相似性搜索:提供 Vector检索算法,使向量检索速度显着加快并更精确

3.高效存储:以更紧凑方式存储向量,如压缩和量化向量数据,尽可能在内存中查询数据

4.分布式:跨多台机器对向量数据机型分片和分片检索

常用评价指标

1、准确率(Precision).

准确率=检索相关的向量/检索出的向量总数

2、召回率(Recall )

召回率=检索相关的向量/向量数据库中相关的向量总数

3、每秒平均吞吐(QPS)

Query Per Second,QPS 是每秒查询数,每秒向量数据库能够处理的查询请求次数

4、平均响应延迟(Latency

向量数据库的请求平均响应时间

功能特点

发展方向

1.有效存储:向量数据多为浮点或者二进制数据,数据压缩率低,存储成本高

2.高效存储:向量数据库计算复杂度高,需要集群&分布式计算能力;

3.索引复杂:有tree、graph、hash等多种向量索引方式,索引管理和使用成本高

4.扩展性:向量数据库的增长对系统的扩展性要去越来越高

5.低延迟:查询以ms级别响应业务需求

最近发表
标签列表