Zilliz 04月09日 19:40
深度干货|万字长文解读向量数据库的前世今生(先码后学)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了向量数据库,一种用于存储和检索非结构化数据的强大工具。文章首先介绍了Embedding技术,这是向量数据库的核心,它将文本、图像等数据转化为计算机可处理的向量。接着,文章阐述了向量数据库的关键功能,包括向量嵌入、专用索引和距离度量。随后,文章详细分析了向量数据库的设计,从架构到功能,以及它在企业级应用中的优势。最后,文章总结了向量数据库的应用场景,并提供了评估其性能的关键指标。

💡Embedding技术是向量数据库的核心,它将非结构化数据转化为向量形式,捕捉语义信息。通过将文本、图像等转化为向量,使得语义相似的概念在几何空间中距离更近,便于后续的相似性比较和搜索。

⚙️向量数据库具备高效的相似性搜索能力,通过专用索引和距离度量,可以快速查找与查询向量最相似的数据。这使得向量数据库在推荐系统等需要快速检索相似数据的场景中具有显著优势,能够提供更个性化的用户体验。

🚀企业级向量数据库需要具备数据一致性、安全、多租户支持等功能,以满足复杂应用场景的需求。此外,更丰富的索引算法、高级查询能力以及生产环境中的扩展策略,也是衡量其优劣的重要标准。

🌐向量数据库在多个领域都有广泛应用,包括大模型与企业知识库、自然语言处理、推荐系统等。通过结合语义搜索和精确匹配,向量数据库能够提升搜索效率,满足多样化的业务需求。

原创 与你一起进步的 2025-04-09 18:27 上海

半小时速成小圈子里的向量数据库大佬

前言

备注:即使是小白,本文也可以帮你半小时速成小圈子里的向量数据库大佬。

如今,每天有超过30亿张图片上传至社交平台,视频网站每分钟有500小时的视频被上传,这些非结构化数据,占据了全人类超过80%的数据总量占比。

但如何利用这些数据?

实际上,无论是AI帮助医生在堆积如山的CT片中寻找病灶,还是外语软件帮助老师纠正学生的英语发音,我们都会发现,在这些实际场景中,我们需要的不是对这些数据做精准搜索或运算,而是需要去理解数据背后的深层语义。

而向量数据库则通过利用一组多维数向量来对非结构化数据进行表示,并对其进行存储和检索,进而挖掘其背后的深层语义关联。

那么向量数据库是的底层原理是什么?其最新技术进展如何?如何结合实际场景使用向量数据库?本文将对以上问题做出一一解答。

01 

技术基石:什么是Embedding

在向量数据库中,embedding可以将非结构化数据转化为计算机能够高效处理的形式,捕捉其语义本质。现代Embedding模型能够将原始数据(无论是文本、图像还是音频)转换为一组向量数据,从而使得语义相似的概念在几何空间中拥有更相近的距离。

举例来说,我们经常讨论一件事情,就是英文的组词能力不如中文那么灵活,很难从单词之间捕捉其深层次的逻辑关联。比如,汉语有汽车、轿车、卡车,我们会很容易在字面上理解其相似性,但是英文中,他们却分别对应“automobile”(汽车)、“car”(轿车)和“truck”(卡车),字面相似性几乎为0。

而向量就能很好的解决英文的这个问题,通过深层语义捕捉,即使这些单词在词形上存在巨大差异,但其向量空间的距离却是非常相近的。

当然不止是文本的语义捕捉,Embedding与向量数据库还能用在多模态领域,先进的向量数据库可以在同一系统内统一管理文本、图像、音频等多种数据类型,实现跨模态搜索。例如:

02 

我们为什么需要向量数据库与其关键概念

向量数据库的核心目标在于解决这样一个问题:如何存储并管理海量非结构化数据,并对其实现高效的相似性搜索。

针对以上问题,向量数据库通常具备以下三个关键功能:

(1)向量嵌入(Vector Embeddings): 通过一组固定长度的浮点数组(其维度通常在 100 到 32,768 维之间)表示与捕捉非结构化数据的语义信息。这种表示形式可以将语义相近的数据映射到向量空间中相互靠近的位置,从而便于后续的相似性比较。例如,在经过良好训练的词向量模型中,“king”(国王)和“queen”(王后)的向量表示通常比它们与“automobile”(汽车)的距离更近,从而反映出它们在语义上的相关性。

(2)专用索引(Specialized Indexing): 利用针对高维向量空间优化的算法,实现快速的近似搜索。向量数据库通过构建专门的索引结构,加速相似向量的查找过程,同时借助多种机器学习算法对向量嵌入进行有效组织。在实际应用中,向量数据库最常见的操作是 k 近邻(KNN)查询,即查找与给定查询向量最相似的 k 个向量。对于大规模应用,通常采用近似最近邻(ANN)算法,通过在一定程度上牺牲精确度,换取大幅提升的搜索速度和效率。

(3)距离度量(Distance Metrics): 用于计算不同向量之间相似性的数学函数。选择合适的距离度量对于计算“相似度”至关重要,不同的场景可能需要不同的计算标准。距离度量的选择直接决定了相似性计算的方式。常用的距离度量包括:

欧式距离(Euclidean Distance): 计算两点间的直线距离,是最直观的度量方式。

余弦相似度(Cosine Similarity): 衡量两个向量之间夹角的余弦值,更侧重于比较向量的方向而非大小,通常适用于文本数据。

点积(Dot Product): 对于已归一化的向量,点积可以反映两个向量的对齐程度。

曼哈顿距离(L1 范数): 计算各坐标绝对差值的总和,适合某些特殊的应用场景。

不同的应用场景和数据类型可能需要选择不同的距离度量。例如,余弦相似度在文本相似性计算中效果较好,而欧式距离则可能更适合处理图像数据的相似性问题。

理解了上述基础概念之后,一个重要的问题随之而来:是不是只需要在任何数据库中简单添加以上功能,就可以实现大规模的非结构化数据存储与管理了?

答案是否定的,与传统数据库侧重于精确匹配不同,向量数据库的重点在于语义搜索——即根据特定的距离度量查找与查询向量“最相似”的向量。

这一核心差异推动了向量数据库在架构设计和算法实现上与传统数据库有着截然不同的路径。

而传统的数据库产品,针对非结构化数据,则通常缺乏以下能力

而相较于传统数据库,向量数据库则具有多项优势,主要包括:

03 

一个基础的向量数据库应该如何设计?

首先,什么是一个基础的向量数据库,它应该遵循以下标准:

    硬件感知优化:利用AVX512指令集、SIMD并行计算、GPU加速以及NVMe固态硬盘等技术,充分发挥硬件潜能;

    搜索算法优化:采用HNSW(Hierarchical Navigable Small World)、IVF(倒排文件)以及DiskANN(磁盘索引)等专用算法,加速高维数据的相似性搜索;

    列式存储设计:针对向量特性进行数据存取优化,提高检索效率。

此外,它还应该具备云原生解耦架构来支持搜索、数据插入和索引组件的独立扩展,帮助企业高效管理数十亿向量,满足企业级AI应用对性能的严格要求。

那么如何设计这样一个向量数据库?以Milvus为代表的面向生产环境的向量数据库通常包括以下四层架构

基于以上的四层架构,一个典型的向量数据库工作流程如下:

第一步,利用机器学习模型将非结构化数据(如文本、图像、音频)转换为Embedding;

第二步,将这些向量嵌入连同相关的元数据一并存储在数据库中;

第三步,当用户发起查询时,同样使用该模型将查询内容转换为向量表示;

第四步,数据库利用ANN算法将查询向量与存储的向量进行快速比对;

第五步,系统根据向量间的相似性返回最相关的前k个结果;

第六步,可选的后处理步骤可能包括进一步的结果过滤或重新排序,以满足特定需求。

这样,在海量非结构化数据中实现高效的语义搜索便成为可能,而这正是传统数据库难以达到的。

04

从可用到优秀,一个企业级的向量数据库还应该有什么功能?

功能一:能解决向量数据库中的一致性问题

在分布式向量数据库中,确保数据一致性是一项重大挑战,主要源于性能与准确性之间的权衡。虽然大规模系统中常采用最终一致性模型,但对于诸如欺诈检测和实时推荐等关键应用场景,则需要更为严格的强一致性。

在生产环境中,常见的做法是采用共享存储架构,通过将存储层与计算层分离,实现数据面与控制面的独立扩展,从而达到资源最优利用的目的。

功能二:权限控制、安全与多租户支持

由于向量数据库往往应用于多用户和多租户的环境中,如何保障数据安全和管理访问控制成为关键问题:

以上措施共同构成了向量数据库在实际应用中对数据一致性、安全性和多租户支持的全面保障,为企业级应用提供了坚实的技术基础。

功能三:更丰富的索引算法

向量数据库依赖专用的索引算法来在高维空间中实现高效的相似性搜索,而所采用的算法直接影响系统的准确性、速度、内存消耗和可扩展性。

(1)基于图的算法

(2)量化技术

(3)基于磁盘的索引:降低扩展成本

对于大规模向量集合(例如超过1亿个向量)的场景,纯内存索引的成本通常高得难以承受。例如,存储1亿个1024维向量大约需要400GB内存。此时,基于磁盘的索引算法(如DiskANN)能提供明显的成本优势。

DiskANN基于Vamana图算法设计,通过将大部分索引数据存储在NVMe SSD上而非内存中,实现高效向量搜索。其主要优势包括:

通常,与纯内存方案相比,基于磁盘的索引仅会使查询延迟略增(一般增加2-3毫秒),在大多数生产场景中,这样的延迟是可以接受的。

(4)专用索引

功能四:更高级的查询能力

向量数据库的核心优势在于其高效的语义搜索能力。除了基本的相似性匹配,它还能通过更先进的技术提升查询的相关性和结果的多样性,使搜索更加精准、高效。

其中,近似最近邻(Approximate Nearest Neighbor,ANN)搜索是向量数据库最基础的查询方法。相比传统的k近邻(k-Nearest Neighbors,kNN)搜索需要遍历整个数据库,ANN搜索借助索引结构,大幅缩小查找范围,从而提升搜索速度。

ANN搜索主要由以下几个核心组件组成:

为进一步提升查询效率,向量数据库通常提供多种优化手段,例如:

在ANN之外,产品级向量数据库还应该有更多的高级搜索能力

(1)Range Search:控制结果相似度

Range Search通过设定相似度范围来筛选结果,而不仅仅返回最相似的 Top-K 向量。这种方式适用于查找“相似但不过于相近”的数据,比如电商推荐系统中查找与用户浏览商品相关但不完全相同的商品。

范围搜索通常设定两个边界:

(2)过滤搜索:结合元数据筛选

在许多实际场景中,仅仅依赖向量相似度可能不够,用户通常还希望按照额外条件筛选结果。例如,在商品搜索中,我们可能需要先找到视觉上相似的商品,但只显示来自某个品牌或符合特定价格范围的商品。

向量数据库通常支持两种过滤方式:

(3)文本匹配:精准检索关键词

向量搜索擅长查找语义相似的内容,但有时需要直接匹配特定关键词。这时,可以使用文本匹配来补充语义搜索的局限。例如,在电商平台搜索“防水”手机时,文本匹配可以确保结果包含该关键词,而向量搜索可以找到视觉或功能上相似的产品。两者结合,既能保证精准匹配,又能推荐符合语义需求的商品。

(4)分组搜索:提高结果多样性

默认情况下,向量搜索可能会返回多个来自同一来源的结果。例如,在文档搜索中,某篇文章的多个段落可能都匹配查询内容,而其他相关文档却被忽略。分组搜索(Grouping Search)可以按指定字段对结果进行聚合,从不同来源返回多样化的结果。

这种方法适用于:

(5)混合检索:结合多种搜索方式

在某些情况下,单一的搜索方式可能无法满足需求。例如,文本搜索可以快速查找包含特定关键词的内容,而向量搜索可以找到语义相近的内容。如果能结合两者,就能提供更丰富的搜索体验,这就是混合搜索(Hybrid Search)的作用。

混合搜索常见的应用方式包括:

在混合搜索中,向量数据库通常会使用重排序(reranking)策略优化结果,例如:

(6)全文检索:兼顾精确匹配和语义理解

虽然向量搜索可以找出语义相似的内容,但对于一些应用来说,精确匹配仍然至关重要。例如,在法律、医学等专业领域,查找包含特定术语的文档往往比模糊匹配更重要。

因此,企业级向量数据库通常集成全文搜索(Full-Text Search)功能,提供以下能力:

这种搜索方式在信息检索、企业知识库、学术研究等场景中尤为重要,它能够同时兼顾精准匹配和智能推荐,提升搜索体验。

通过这些高级查询技术,向量数据库不仅能提高搜索效率,还能满足多样化的业务需求,适用于电商、推荐系统、智能客服、数据分析等众多领域。

功能五:生产环境中的扩展策略

向量数据库的部署策略会影响其性能和可扩展性,因此,不同规模的业务应当有不同的架构设计

在分布式架构中,分片(Sharding)与复制(Replication) 是核心技术:

通常来说,一个优秀的向量数据库应当具备自动扩展能力,可以根据负载情况动态调整计算和存储资源,使系统始终保持高效运行。

05

如何评估一个向量数据库:关键指标解析

优化向量数据库的性能,需要深入理解核心性能指标及其相互之间的权衡关系。不同应用场景对性能的要求各不相同,因此合理选择和调整这些指标至关重要。

(1)召回率与吞吐量的平衡

召回率(Recall) 反映了返回结果中包含真实最近邻(True Nearest Neighbors, TNN)的比例。更高的召回率意味着更全面的搜索,但同时也会增加计算开销,降低查询吞吐量(Queries Per Second, QPS)。

在实际应用中,系统通常需要在召回率和查询吞吐量之间寻找平衡。例如,在某些对准确性要求较高的应用(如医学影像分析、金融风控)中,召回率可能需要达到 95% 甚至更高,而在搜索引擎、推荐系统等场景中,80%-90% 的召回率可能已经能提供足够的用户体验。

为了量化这种性能权衡并选择最优方案,开发者需借助标准化的基准测试工具,通过客观指标验证不同配置下的实际表现,评估向量数据库性能,例如:

这些基准测试工具主要测量以下关键指标:

基准测试不仅可以帮助评估数据库的查询准确性和效率,还能在选型时提供参考依据,以找到最适合业务需求的向量数据库。

(2)内存管理优化

向量数据库在处理大规模数据时,内存管理至关重要。合理的内存管理策略不仅能提高查询效率,还能降低资源消耗,使系统扩展到数十亿级向量仍保持稳定性能。主要优化策略包括:

对于数据量超出内存容量的情况,磁盘存储方案是关键。例如,结合 NVMe SSD 和优化的 I/O 访问模式,可以有效提升查询速度。常见优化技术包括 Beam Search(波束搜索)和 基于图索引的导航(Graph-Based Navigation),确保即使数据存储在磁盘上,也能保持较高的查询效率。

(3)过滤查询与混合检索

向量数据库不仅支持语义搜索,还可以结合传统的过滤条件,以实现更精准的查询。主要方式包括:

此外,向量数据库还支持更复杂的查询模式,例如:

06

向量数据库的主要应用场景

目前,许多行业巨头已经在大规模 AI 应用中采用向量数据库,Salesforce、PayPal、eBay、IBM、英伟达、爱彼迎 等公司使用 Milvus 进行智能搜索和推荐。应用场景十分丰富,例如:

07

结论

向量数据库的兴起不仅仅是新技术的诞生,更代表着数据管理方式的根本性变革。它们打破了传统数据库对结构化数据的限制,使 AI 应用能够更高效地处理和理解非结构化信息,为智能搜索、推荐系统、生成式 AI 以及企业级知识管理提供了强大支撑。

相比传统数据库,向量数据库具备以下核心优势:

随着 AI 应用的不断发展,向量数据库的技术也在持续演进,不仅需要在性能、准确性、扩展性和成本之间找到最佳平衡,还需要与整个 AI 生态无缝集成。

而长远来看,向量数据库的这些独特优势,将成为千行百业智能化转型的关键助力。

推荐阅读

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

向量数据库 Embedding 非结构化数据 语义搜索
相关文章