络腮胡菲菲 发表于 2025-3-25 12:20:24

向量数据库详解

https://i-blog.csdnimg.cn/direct/8bf16afb293148fb9e39c8627ca88217.png
一、界说与焦点概念

向量是基于差别特征或属性来描述对象的数据表示。每个向量代表一个单独的数据点,例如一个词或一张图片,由描述其很多特性的值的集合组成。这些变量有时被称为“特征”或“维度”。例如,一张图片可以表示为像素值的向量,整个句子也可以表示为单词嵌入的向量。
一些常用的数据向量如下:
◆图像向量,通过深度学习模子提取的图像特征向量,这些特征向量捕捉了图像的重要信息,如颜色、形状、纹理等,可以用于图像辨认、检索等任务;
◆文本向量,通过词嵌入技术如Word2Vec、BERT等天生的文本特征向量,这些向量包含了文本的语义信息,可以用于文天职类、情感分析等任务;
◆语音向量,通过声学模子从声音信号中提取的特征向量,这些向量捕捉了声音的重要特性,如音调、节奏、音色等,可以用于语音辨认、声纹辨认等任务。
向量数据库是一种将数据存储为高维向量的数据库,高维向量是特征或属性的数学表示。每个向量都有一定数量的维度,根据数据的复杂性和粒度,维度可以从几十到几千不等。向量通常是通过对原始数据(如文本、图像、音频、视频等)应用某种变换或嵌入函数来天生的。嵌入函数可以基于各种方法,例如呆板学习模子、单词嵌入、特征提取算法。向量数据库接纳索引策略来简化向量相似的特定查询。这在呆板学习应用程序中特别有效,因为相似性搜索经常用于发现可比力的数据点或天生建议。
https://i-blog.csdnimg.cn/direct/10bc76d46aee420da29576befeed4d83.png
向量数据库的主要功能包括:
●管理:向量数据库以原始数据情势处理数据,能够有效地组织和管理数据,便于AI模子应用。
●存储:能够存储向量数据,包括各种AI模子须要利用到的高维数据。
●检索:向量数据库特别擅长高效地检索数据,这一个特点能够确保AI模子在须要的时候快速得到所需的数据。这也是向量数据库能够在一些推荐体系或者检索体系中得到应用的重要缘故起因。
其焦点特点包括:
高维性:向量维度通常高达数百甚至数千。
稀疏性:向量中多数元素靠近零。
动态性:数据可能随时间厘革(如用户行为向量)。
传统数据库靠的是精确查找,擅长找千篇一律的数据,而且它的索引和算法都很成熟。向量数据库呢,是近似查找,它不是找千篇一律的,而是找“差不多”的东西。理论上,只要我们把对象的特征维度搞得富足细,它也能做到非常精确的查找。普通解释:向量数据库是一种专门用来存储和查询“向量”数据的数据库。向量可以理解为一串数字,比如 ,这些数字代表了某种复杂信息(比如一段文字、一张图片或一段音频)的数学表达。
嵌入模子会将各种数据 (例如文本、图像、图表和视频) 转换为数值向量,以便捕捉其在多维向量空间中的含义和细微差别。普通解释:嵌入模子是一种将复杂信息(如文字、图片)转换成向量的工具。比如,你可以把一句话“我喜欢吃苹果”通过嵌入模子转换成向量 。这个向量捕捉了这句话的语义信息。
类比关系型数据库:在关系型数据库中,我们通过字段(如“姓名”、“年龄”)来描述数据。而在嵌入模子中,我们通过向量来描述数据,向量中的每个数字代表了某种特征(比如语义、颜色、形状等)。
二、应用场景

场景
说明
推荐体系
存储用户和商品向量,通过相似性搜索实现个性化推荐。
图像检索
将图像特征向量化,支持以图搜图(如电商、医学影像分析)。
自然语言处理(NLP)
语义搜索、问答体系、文本聚类(基于词/句向量)。
生物信息学
基因序列或蛋白质结构的相似性比对。
智能客服
结合RAG技术,从知识库中快速检索答案。
语音辨认
语音特征可以表示为高维向量,向量数据库可用于存储和检索音频数据。这对于语音辨认、说话人辨认和音频检索等应用非常重要。
网络安全
向量数据库可用于存储网络流量数据、恶意软件特征向量和网络行为模式。这些数据库可以帮助检测异常网络运动和网络入侵。
科学研究
在科学研究中,研究人员可以利用向量数据库来存储和分析实行数据,以便进行数据挖掘、模式辨认和实行结果比对。
物联网(IoT)
物联网装备天生大量数据,包括传感器数据和装备状态信息。向量数据库可以用于存储和检索这些数据,以支持智能都会、智能家居和工业自动化等应用。
医疗保健
在医疗范畴,向量数据库可用于存储患者的医疗记载、医学图像和基因序列数据。这有助于医疗保健专业人员进行疾病诊断、药物研发和个性化治疗
三、与传统数据库的对比

维度
向量数据库
传统关系型数据库
数据模子
高维向量
表格结构(行/列)
查询方式
近似搜索(相似性匹配)
精确匹配(SQL条件查询)
适用数据
非结构化数据(图像、文本等)
结构化数据(数值、字符串等)
扩展性
支持分布式架构,千亿级数据
单机或有限集群,亿级数据
典型用例
推荐体系、语义搜索
生意业务处理、报表分析
技术门槛
需掌握向量盘算和索引算法
SQL语法和关系模子
四、向量数据库是如何工作的

要真正理解矢量数据库是如何工作的,以及它与传统的关系数据库(如SQL)有何差别,我们必须首先理解嵌入的概念。
非结构化数据(如文本、图像和音频)缺乏预界说的格式,这给传统数据库带来了挑衅。为了在人工智能和呆板学习应用中利用这些数据,我们须要利用嵌入将其转换为数字表示。
嵌入就像给每一个项(无论是一个词,图像,或其他东西)一个独特的高维数字表示,捕捉其意义或本质。这段数字帮助盘算机以更有效和更有意义的方式理解和比力这些项。
这种嵌入过程通常利用为该任务设计的一种特别的神经网络来实现。例如,单词嵌入将单词转换为向量,这样具有相似含义的单词在向量空间中更靠近。这种转换允许算法理解项之间的关系和相似性,设置可以针对差别的数据进行编码,比如CLIP。
从本质上讲,嵌入作为一个桥梁,将非数字数据转换为呆板学习模子可以利用的情势,使它们能够更有效地辨认数据中的模式和关系。
https://i-blog.csdnimg.cn/direct/93d4132a488b4e6f8eb290ed29463ed8.jpeg
向量数据库利用案例
https://i-blog.csdnimg.cn/direct/2563421cf9494a74a5834f854edb82d8.jpeg
向量数据库全景图
https://i-blog.csdnimg.cn/direct/880e2e87db4b415c9e0a2a844b3a2b34.png

五、开源的向量数据库

1、MongoDB

   https://www.mongodb.com/


[*]解决问题:   

[*]处理多种变乱性和搜索工作负载:MongoDB Atlas是托管的开辟者数据平台,能够处理各种复杂的数据管理任务。
[*]向量搜索功能:Atlas Vector Search利用专门的向量索引,可以与焦点数据库自动同步,提供集成数据库的独立扩展上风。

[*]MongoDB Atlas的关键特性包括:   

[*]集成数据库+向量搜索本领:提供强大的数据库功能和向量搜索本领
[*]独立提供数据库和搜索索引:允许用户独立配置和扩展数据库和搜索索引
[*]数据存储:每个文档可存储高达16 MB的数据
[*]高可用性、强变乱保证、多级数据持久性、存档和备份:确保数据的安全和可靠性
[*]行业领先的生意业务数据加密:保护数据免受未授权访问
[*]混合搜索:结合多种搜索功能,提供机动和强大的搜索体验

2、Milvus 

https://milvus.io/


[*]解决问题:   

[*]Milvus是一个开源的向量数据库,旨在促进向量嵌入、高效相似搜索和AI应用。它于2019年10月以开源Apache 2.0许可证发布,目前是LF AI & Data Foundation赞助的毕业项目。
[*]该工具简化了非结构化数据的搜索,并提供了与部署情况无关的统一用户体验。为了提高弹性和适应性,Milvus 2.0重构版本中的全部组件都是无状态的。
[*]Milvus的应用案例包括图像搜索、聊天呆板人和化学结构搜索。

[*]Milvus的关键特性包括:   

[*]毫秒级搜索万亿级向量数据集
[*]简单管理非结构化数据
[*]可靠的向量数据库,始终可用
[*]高度可扩展和适应性强
[*]混合搜索
[*]统一的Lambda结构
[*]受到社区支持,得到行业认可

3、Chroma 

https://www.trychroma.com/


[*]解决问题:   

[*]Chroma DB是一个开源的、AI当地的嵌入式向量数据库,旨在简化通过使知识、事实和技能对大型语言模子(LLM)规模上的呆板学习模子可插拔,从而创建由自然语言处理驱动的LLM应用程序的过程,同时避免幻觉。
[*]很多工程师都希望能够拥有一个“为数据设计的ChatGPT”,Chroma通过基于嵌入的文档检索提供了这种链接。它还提供了一站式服务,团队须要存储、嵌入和查询数据的一切都在其中,包括强大的过滤功能,另有如智能分组和查询相关性等更多功能即将推出。

[*]Chroma的关键特性包括:   

[*]功能丰富:支持查询、过滤、密度估计等多种功能
[*]即将添加的语言链(LangChain)、LlamaIndex等更多功能
[*]相同的API可以在Python笔记本中运行,也可以扩展到集群,用于开辟、测试和生产

4、Weaviate 

 https://github.com/weaviate/weaviate


[*]解决问题:   

[*]Weaviate是一个云原生的、开源的向量数据库,具有弹性、可扩展性和快速性。该工具可以利用先辈的呆板学习模子和算法将文本、照片和其他数据转换为可搜索的向量数据库。
[*]可以对数百万项进行10-NN邻居搜索,在个位数毫秒内完成。工程师可以利用它来在导入过程中向量化他们的数据,或提交自己的向量,最终创建问答提取、总结和分类体系。
[*]Weaviate模块支持利用如OpenAI、Cohere或HuggingFace等知名服务和模子中心,以及利用当地和定制模子。Weaviate在设计时思量了规模、复制和安全。

[*]Weaviate的关键特性包括:   

[*]内置AI驱动的搜索、问答、将LLM与您的数据结合和自动分类模块
[*]完整的CRUD(创建、读取、更新、删除)功能
[*]云原生、分布式,能够随着工作负载的增长而扩展,并在Kubernetes上运行良好
[*]能够无缝地将呆板学习模子转移到MLOps

5、Qdrant  

https://github.com/qdrant/qdrant


[*]解决问题:   

[*]Qdrant是一个开源的向量相似性搜索引擎和数据库。它提供了一个生产停当的服务和一个易于利用的API,用于存储、搜索和管理点向量和高维向量,以及额外的负载。
[*]该工具旨在提供广泛的过滤支持。Qdrant的多功能性使其成为神经网络或语义匹配、面搜索和其他应用的不错选择。

[*]Qdrant的关键特性包括:   

[*]JSON负载可以与向量连接,允许基于负载的存储和过滤
[*]支持多种数据范例和查询条件,如文本匹配、数值范围、地理位置等
[*]查询计划器利用缓存的负载信息来提高查询实行效率
[*]断电期间进行写入前处理,更新日记记载全部操作,便于重建最新的数据库状态
[*]Qdrant独立于外部数据库或编排控制器运行,简化了配置

6、Elasticsearch

 https://www.elastic.co/elasticsearch/


[*]解决问题:   

[*]Elasticsearch是一个开源的、分布式的、RESTful的分析引擎,可以处理文本、数值、地理、结构化和非结构化数据。基于Apache Lucene,最初于2010年由Elasticsearch N.V.(现称Elastic)发布。Elasticsearch是Elastic堆栈的一部分,这是一套免费且开源的工具,用于数据摄入、丰富、存储、分析和可视化。
[*]Elasticsearch可以处理各种用例——它会合存储数据,以实现快速搜索、微调相关性以及可轻松扩展的高级分析。它可以程度扩展以容纳每秒数十亿的变乱,同时自动控制索引和查询在整个集群中的分布,以实现流畅的操作。



[*]Elasticsearch的关键特性包括:   

[*]集群和高可用性:确保体系的可靠性和数据的安全性
[*]自动节点恢复和数据再平衡:在节点失败时自动恢复,并重新平衡数据负载
[*]程度可扩展性:能够轻松扩展以处理大量数据和请求
[*]跨集群和数据中心复制:允许第二个集群作为热备份运行
[*]跨数据中心复制:提高数据的可靠性和可用性
[*]Elasticsearch辨认错误以保持集群(和数据)的安全性和可访问性
[*]分布式架构:从底层构建,旨在提供连续的安心感

7、Vespa

 https://vespa.ai/


[*]解决问题:   

[*]Vespa是一个开源的数据服务引擎,允许用户在服务时存储、搜索、组织和在大量数据上进行呆板学习判断。
[*]庞大的数据集必须分散在多个节点上,并并行检查,而Vespa是一个能够处理这些任务的平台,同时保持精彩的可用性和性能。

[*]Vespa的关键特性包括:   

[*]写入确认:向客户端确认写入,并在数据持久且在查询中可见时,在几毫秒内发出
[*]连续的写入速率:在服务请求时,每个节点每秒可以交付数千到数万次写入
[*]数据冗余复制:可以配置冗余复制
[*]查询组合:查询可以包括结构化过滤器、自由文本搜索运算符和向量搜索运算符,以及巨大的张量和向量
[*]基于查询界说的匹配分组和聚合
[*]包括全部匹配:纵然它们同时在多个呆板上

8、Faiss

 https://github.com/facebookresearch/faiss


[*]解决问题:   

[*]由Facebook AI Research开辟的Faiss是一个开源库,用于快速、密集向量相似性搜索和分组。它包括用于搜索任何巨细向量集的方法,包括可能不得当放入RAM的巨细。它还提供了用于评估和参数调整的代码。
[*]Faiss基于一种索引范例,它维护一组向量,并利用L2和/或点积向量比力通过它们进行搜索。一些索引范例,如精确搜索,是简单的基准线。

[*]Faiss的关键特性包括:   

[*]不仅返回最近的邻居,还返回第二近、第三近和第k近的邻居
[*]可以同时搜索多个向量,而不仅仅是单个向量(批量处理)
[*]利用最大内积搜索而不是最小欧几里得搜索
[*]也支持其他距离度量(如L1、L∞等),但程度较低。
[*]返回查询位置附近指定半径内的全部元素(范围搜索)
[*]可以将索引存储在磁盘上,而不仅仅是RAM中

9、ClickHouse:    https://clickhouse.com/


[*]解决问题:   

[*]ClickHouse是一个开源的列式数据库管理体系(DBMS),用于在线分析处理,允许用户通过运行SQL查询及时天生分析报告。ClickHouse的独特之处在于其实际的列式DBMS设计。这种独特的设计提供了紧凑的存储,没有不须要的数据陪同值,这显著提高了处理性能。
[*]它利用向量来处理数据,这提高了CPU效率,并有助于ClickHouse的良好速率。

[*]ClickHouse的关键特性包括:   

[*]数据压缩:显著提高了ClickHouse的性能
[*]ClickHouse结合了低延迟数据提取和尺度硬盘的高效成本
[*]它利用多核和多服务器设置来加速大规模查询,这在列式DBMS中是罕见的特性
[*]强大的SQL支持,ClickHouse擅长处理各种查询
[*]ClickHouse的连续数据添加和快速索引满足及时需求
[*]低延迟提供了快速查询处理,这对于在线运动至关重要

10、Apache Cassandra: https://cassandra.apache.org/


[*]解决问题:   

[*]Cassandra是一个分布式、宽列存储的NoSQL数据库管理体系,它是免费和开源的。它被设计用来在很多商用服务器上处理大量数据,同时保持高可用性,没有单点故障。
[*]Cassandra即将配备向量搜索功能,这展示了Cassandra社区致力于快速提供可靠创新的努力。随着AI开辟者和处理大数据量的企业对Cassandra的爱好日益增长,Cassandra在人工智能开辟者和企业中的受欢迎程度也在上升,因为它为他们提供了构建复杂、数据驱动应用程序的本领。

[*]Cassandra的关键特性包括:   

[*]Cassandra将有一个新的数据范例,用于存储高维向量,这将允许操作和存储在AI应用中广泛利用的Float32嵌入
[*]该工具还将提供一个名为“VectorMemtableIndex”的新存储附加索引(SAI),以支持近似最近邻(ANN)搜索功能
[*]它将提供一个新Cassandra查询语言(CQL)运算符,ANN OF,利用户更轻易在他们的数据上运行ANN搜索
[*]Cassandra的新向量搜索功能是作为现有SAI框架的扩展设计的,消除了重新设计根本索引引擎的须要



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 向量数据库详解