「回看 Milvus 的 2023」:AI 热潮中的非典型向量数据库

2023 年是 AI 应用开发领域的一个重要转折点。

在这一年里,大语言模型(LLMs)因其卓越的自然语言处理能力而广受赞誉,极大地拓宽了机器学习应用的场景。开发者们逐渐意识到,有了 LLMs,他们可以设计出更智能、更容易互动的应用程序。与此同时,“向量数据库”已成为业界的热门话题,其作为大型模型长期记忆的角色得到了认可。像 RAG(检索增强生成)模型、智能代理和多模态检索等应用的兴起生动地展示了向量数据库在实现高效多模态数据检索、减少大型模型的幻觉以及补充领域知识方面的巨大潜力。

此外,2023 年大模型技术的发展也带来了另一个重要变化——嵌入提取能力的显著提升。根据 Huggingface 上的 MTEB排行榜数据,像 UAE、VoyageAI、CohereV3 和 bge 这样的性能领先嵌入模型都在 2023 年发布。它们的迅速发展进一步增强了向量检索的有效性,为各种 AI 应用提供了更精确、更高效的数据处理能力。

当然,在这一年中,得益于应用场景的演变、资本投资和媒体炒作,向量数据库已成为一个广为人知的技术术语。数十家初创公司进入向量数据库领域,许多传统数据库开始将向量作为一个重要的数据类型对待。然而,随着知名度的提升,争议也随之而来,激起了关于专门向量数据库必要性的辩论。无论是关系数据库、NoSQL 还是搜索引擎,在许多情况下似乎都能替代向量数据库。

回顾完热闹的 2023 年,我们来谈谈 2024 年。在我看来,2024 年伊始是个审视向量数据库行业的好时机,包括在这一领域中独树一帜的 Milvus。

以下报告最初是为我们的 Milvus 社区内部反思而制作的,通过大模型重新整理,旨在提供对过去一年内向量数据库领域真正进步和趋势的清晰而详细的视角。这将帮助 AIGC 应用开发者在技术选择上做出更有教育意义和战略性的决策。

01.数据不会说谎

Milvus 是全球第一款向量数据库,首次开源是在 2019 年,以其高可靠性、可扩展性、搜索质量和性能而闻名。2023 年,我们见证了 AIGC 应用场景的演变所驱动一个向量数据库重要的转变,以下是一些最能代表 Milvus 在 2023 年进展的关键数据:

0 - 滚动升级期间零停机时间

对于许多向量数据库的新手来说,他们选型的关注点往往更多地在功能上而非运营维护。应用开发者通常对他们的向量数据库的稳定性的关注比对事务性数据库的需求要低得多,因为他们的应用程序通常处于非常早期阶段。然而,在AIGC 应用领域,如果你想在生产环境中部署你的应用程序并实现最佳用户体验,稳定性和可维护性就变得不可或缺。意识到这一点,Milvus 从 2.2.3 版本开始引入了滚动升级,通过在多个版本中持续改进,逐渐变得更加稳定,并最终实现了零停机时间的滚动升级。

3X - 生产环境中的性能提升

向量检索的性能一直是向量数据库的关注焦点。Zilliz 发布了 VectorDB bench,以帮助测试不同场景下的向量检索性能。与过去的方法不同,VectorDB bench 现在专注于真实世界的数据,包括更接近实际嵌入模型的数据集(如最新的OpenAI嵌入和Clip数据集)、更广泛的测试场景(包括过滤、实时更新,删除)和更大的测试数据集(大多数当前的测试框架针对的是小而固定的数据点,如果某些 vectordb 在数据集上作弊可能会误导)。

目前,大多数向量检索供应商提供的解决方案都围绕开源 HNSW 算法的调整,这在各种生产部署中遇到显著的性能挑战,尤其是在涉及高过滤(超过 90%)和频繁删除的场景中。Milvus 在 2023 年不仅专注于最大化实验室性能,而且转向解决用户生产环境中的这些真实世界性能问题,在过滤、流式插入查询等实际生产场景实现了 3 倍以上的性能提升。

5% - Beir 数据集上的召回率提升

Dense Embedding 虽然有效,但在某些场景中依然存在局限性,如搜索特定名称、对象、某些缩写和短查询上下文。Sparse Embeding 在这些情况下可以与 Dense Embedding 互补,结合 ReRanking,在一些数据集上实现了 5% 的 NDCG@10 提升。除了搜索质量之外,Milvus 还引入了一种基于图的 Sparse Embedding 检索解决方案,显著超过 WAND 等传统搜索方法。在 NeurIPS BigANN 竞赛中,Zilliz 员工王子豪提出的名为 Pyanns 的解决方案,并获得了全球第一的成绩,这个解决方案也是我们生产 Sparse Sembedding 方案的前身。随着稀疏嵌入提取模型和Reranker的不断发展,向量数据库中混合查询的重要性将越来越大。(事实上,尽管 Splade 目前是最佳的稀疏向量提取模型,效果大大超过了 BM25 的检索结果,根据我们的测试结果它可能不久后就不再是最佳的稀疏嵌入模型了。)

10 倍 - 内存节省

在 2023 年,检索增强生成(RAG)模型被广泛认为是向量数据库的最主要应用之一。我们发现,在文档被分割成块之后,一个含有 500 个 Token 的 Chunk(通常 1000 字节)会转换成一个 1536 维的 float32 向量(通常 3000 字节),这意味着向量数据的体积可能会超过原始文档的大小,给成本带来了重大挑战。

作为第一个支持基于磁盘索引的开源向量数据库,Milvus 通过磁盘混合存储实现了五倍的内存节省。2023 年末的 Milvus 新版本允许通过内存映射文件(MMap)将标量和向量数据/索引加载到磁盘,与传统的内存索引相比,这可以实现超过 10 倍的内存节省。特别值得注意的是,RAG 应用常展现出对冷热数据不同的使用模式,这使得 MMap 数据缓存能力对于 RAG 应用尤其有益。

20 次 - 版本迭代

2023 年对 Milvus 而言是一个转折性的年份。随着应用场景的显著演变,Milvus 的设计理念也相应地发生了改变。在 2.2.9 版本中引入的动态 Schema,标志着 Milvus 从优先追求绝对性能向更强调用户友好性的转变。我们在 2.3 版本中加入了诸如 Upsert、范围搜索以及余弦相似度等关键特性,均来自于用户的呼声。整个年度的 20 次版本更新不仅体现了超过 300 名社区开发者的心血,也足以证明了社区以用户为中心的开发模式所带来的积极成果。

100 万 - 单个集群支持的租户数量

在构建大模型应用时,多租户支持是关键特性,特别是在 RAG 和代理应用场景中,用户对数据隔离的要求越来越高。在面向消费者(ToC)的环境下,租户数量可能高达数百万,这使得物理数据隔离变得不实际(在关系数据库中创建数百万个表是不可行的)。为应对这一挑战,Milvus 引入了 PartitionKey 功能,使得基于 PartitionKey 的逻辑隔离和高效数据过滤成为可能。

在面向企业(ToB)的场景中,租户数量通常在数万级别,实施物理资源隔离策略更加可行和可控。因此,在 2.3.4 版本中,Milvus 对内存管理、协程处理和 CPU 优化进行了显著改进。这些改进使得在单个集群中创建数万个 Collection 变得可行,从而可以使用一个 Collection 一个租户的方式支持多租户。

1000 万次 - Docker 镜像拉取

在 2023 年的最后一天,Milvus 庆祝了一个引人注目的里程碑:达到 1000 万次 Docker 镜像下载。这一成就不仅凸显了全球开发者对 Milvus 的兴趣在与日俱增,也强调了 Milvus 在向量数据库领域中日益增长的重要性。作为世界上第一个云原生向量数据库,Milvus 一直与 Kubernetes 和容器生态系统紧密结合。那么未来呢?很多开发者都会好奇,向量数据库领域的下一个热点会是什么?可能是无服务器架构(Serverless)吗?这里先卖个关子。

100 亿 - 单个 Collection 中的实体数量

尽管在当前的 AI 热潮中,可扩展性可能不是最吸引眼球的部分,但它仍然对业务的成功至关重要。

以一个实例来说明,我们就曾用 Milvus 帮助一个大型模型供应商从一个庞大的 100 亿数据点集合中提取出深层价值。当然,并非所有用户的数据量都如此庞大,但 Milvus 以强大的可扩展性轻松适配不同数据体量的用户。

例如,在面对 1000 万个数据点时,Milvus 的处理速度堪称“如手指滑过丝绸般顺滑”,为相应用户业务的持续发展打下坚实的基础。在面对 1 亿个数据点时,Milvus 可能是唯一一个能够有序、灵活处理该规模的向量数据库。当数据点高达 10 亿时,用户往往面临成本与性能的双重挑战,Milvus 则可以通过多种优化方式帮助用户解决这一困境。最后,如果大家有谁正面临着处理 100 亿数据实体的挑战——请毫不犹豫地联系我们!我们可以共同探索如何支持和管理上述海量数据。

02.向量数据库的新认知

除了数字上的里程碑,2023 年业务模式的改变也带来了很多定性的认知。这些认知帮助我们深化了对向量这种数据类型的理解,也引导了我们思考向量数据库未来的发展方向。

大模型应用仍处于初期阶段:避免重蹈智能手机时代“手电筒应用”的覆辙

回顾移动互联网早期,许多开发者创建了如手电筒或天气预报等简单应用,这些应用最终被整合到智能手机操作系统中。如今,大多数 AI 原生应用,例如迅速在 GitHub 上获得 100,000 星的 AutoGPT,并未提供实际的业务价值,只是一些有价值的尝试。这意味着 AIGC 场景对大模型和向量数据库的应用都处于早期阶段,对今年的向量数据库使用场景可能只是 AI 原生转型的第一波浪潮,期待真正的杀手级应用出现。

向量数据库持续分化

就像数据库发展为 OLTP、OLAP 和 NoSQL 等不同类型一样,2023 年的向量数据库开始显示出多样化的趋势。超越传统的在线服务范围,离线分析领域变得更为重要,已经有专门的向量数据库系统面向数据准备和分析领域。GPTCache是我们在 2023 年开源的项目,旨在利用向量检索 Cache 大模型输出,这也为向量数据库开拓了缓存这一全新的赛道。未来,我们满怀希望并期待来年见证向量数据库在更多样化的应用场景和设计。

向量语意的复杂性日增

ANN 并非向量数据库的唯一特性。许多人认为,支持最近邻搜索就足以称之为向量或 AI 原生数据库。然而,向量所需的操作比想象中更为复杂。除了标量过滤和混合查询外,为 AI 原生应用量身定制的数据库应支持更复杂的语义能力,如 NN 过滤、KNN 联接和集群查询。

对于 AI 原生应用而言,高弹性至关重要,但向量数据库可能成为瓶颈

像 ChatGPT 这样的 AI 应用,仅用两个月时间月活跃用户就超过 1 亿,其增长速度远超以往任何业务。一旦业务开始加速增长,从 100 万到 10 亿数据点的快速扩展至关重要。AI 应用开发者受益于大型模型提供商提供的按需付费服务模式,显著降低了运营成本。同样,以符合这一模式的方式存储向量数据对开发者有利,使他们能够更专注于核心业务逻辑。与大型模型和其他依赖项不同,向量数据库本质上维护状态,这在可扩展性和弹性方面带来了更大的挑战。因此,在选择向量数据库时,弹性和可扩展性必须被视为关键因素。

将机器学习应用于向量数据库可以带来惊人的高回报

2023 年,我们大力投资 AI4DB,并取得了显著的回报。与传统数据库相比,向量数据库的固有不精确性使其更易于使用机器学习算法进行优化。我们引入了两个关键能力:基于机器学习的自动参数调整索引AutoIndex、基于数据聚类的数据分区策略,这两者都显著提高了 Milvus 企业版在云上的搜索性能。

开源与闭源

在大型语言模型(LLM)领域,OpenAI 和 Claude 的闭源模型目前领先,而开源社区在没有相当的计算资源和数据的情况下依然在苦苦挣扎。对于向量数据库,我坚信开源最终将成为用户的首选。开源意味着更丰富的应用场景、更快的迭代和更强大的生态系统。更重要的是,数据库是复杂的系统,不能像大型模型那样不透明,用户必须充分理解数据库本身才能找到最合理的使用的方式,开源的透明度对于用户来讲不仅意味着自由更意味着可控。

新的开始

2023 年在大模型的变革中迅速流逝,而向量数据库的故事似乎才刚刚开始。对于被认为是非典型向量数据库的 Milvus 而言,我们的旅程并不是迷失在人工智能生成内容(AIGC)的热潮中。

相反,我们专注于精心打造我们的产品,识别并培育最适合我们的应用场景,并致力于服务我们理想的用户群体。我们希望对开源的承诺能够弥合我们与用户之间的距离,让他们即使在世界的任意一个角度都能感知到我们善意和工匠精神。

2023 年也见证了大量人工智能初创企业的成立和首轮融资。看到这些开发者的创新令人激动,这让我想起了我最初为何投身于向量数据库这一赛道。2024 年将是所有这些创新应用开始真正获得关注的一年,不仅吸引融资,还会吸引真正的付费客户。这将为这些开发者带来一系列全新的要求,因为构建一个几乎不间断、完全可扩展的解决方案至关重要……新的一年,我们顶峰相见!

本文作者系 Zilliz 合伙人、研发 VP 栾小凡

「你眼中的 Zilliz·2023」调研已开启!欢迎各位在 Zilliz 微信后台私信我们,谈谈“过去一年你对 Zilliz 印象最深刻的一件事情是什么?”范围不限于 Zilliz 的单个产品,也可以谈谈对 Zilliz 的商业动态、线下活动、内容平台的文章等印象,字数不限,入选用户将收获神秘礼物盲盒,欢迎来私~

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/639924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件系统测试方案-word

2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.2. 测试环境 4.2.1. 硬件环境 4.2.2. 软件环境 4.3. 进度安排 5. 功能测试 6. 性能测试 7. 安全性与访问控…

[Unity] Tilemap瓦片左右翻转(上下翻转)

Tile(瓦片)左右翻转感觉是很常用的一个功能啊!看了一些教程都没有提及,心想难道要把每张Sprite再做一张对称的、再做成瓦片吗? 图片量x2 、瓦片量x2、不现实!一定有方法! 搜索了了半天没找到方…

架构篇04:复杂度来源 - 高性能

文章目录 单机复杂度集群的复杂度小结 从本篇开始,我们一起深入分析架构设计复杂度的 6 个来源,先来聊聊复杂度的来源之一高性能。 对性能孜孜不倦的追求是整个人类技术不断发展的根本驱动力。例如计算机,从电子管计算机到晶体管计算机再到集…

springsecurity集成kaptcha功能

前端代码 本次采用简单的html静态页面作为演示&#xff0c;也可结合vue前后端分离开发&#xff0c;复制就可运行测试 项目目录 登录界面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</…

【设计模式-9】装饰模式的代码实现及使用场景

装饰器模式类比生活中房屋装修的场景&#xff0c;可以在毛坯房的基础上加以各种装饰&#xff0c;使得房屋的居住属性增强。装饰器模式能够在运行期间&#xff0c;动态地为原始对象增加一些额外的功能&#xff0c;使其功能更为丰富。 1. 概述 装饰模式 可以动态的为某些对象增…

深入Matplotlib:画布分区与高级图形展示【第33篇—python:Matplotlib】

文章目录 Matplotlib画布分区技术详解引言方法一&#xff1a;plt.subplot()方法二&#xff1a;简略写法方法三&#xff1a;plt.subplots()实例展示添加更多元素 进一步探索Matplotlib画布分区自定义子图布局3D子图结语 Matplotlib画布分区技术详解 引言 Matplotlib是一个强大…

代码随想录27期|Python|Day35|435. 无重叠区间|763.划分字母区间|56. 合并区间

435. 无重叠区间 和昨天的射爆气球是一样的处理方式&#xff1a; 由于不需要进行不重合的时候的计算&#xff0c;只需要对重合进行处理&#xff0c;所以反而更加简单。 1、按照区间左边界从小到大排序&#xff1b; 2、从索引1开始遍历&#xff0c;对于i-1的右边界大于i的左边…

网页无法访问但是有网什么原因

目录 1.运行网络诊断&#xff0c;确认原因 原因A.远程计算机或设备将不接受连接(该设备或资源(Web 代理)未设置为接受端口“7890”上的连接 原因B.DNS服务器未响应 场景A.其他的浏览器可以打开网页&#xff0c;自带的Edge却不行 方法A&#xff1a;关闭代理 Google自带翻译…

用户头像上传

将用户上传的头像存储在腾讯云存储桶里 注册腾讯云 https://cloud.tencent.com/login 创建存储桶 配置跨域 来源 * (任何都可以访问) put get post 请求都可以 点击概览&#xff0c;查看存储桶基本信息 记录保存存储桶名称和地域 找到api密钥管理&#xff0c;新建密钥 ht…

配置git环境

目录 一、安装[Git Bash](https://gitforwindows.org/)二、进入家目录生成秘钥&#xff1a;执行命令ssh-keygen三、在[Ac Git](https://git.acwing.com/)上注册账号四、将id_rsa.pub的内容复制到Ac Git上Reference 一、安装Git Bash 二、进入家目录生成秘钥&#xff1a;执行命…

Mongodb 控制查询返回字段

使用关系型数据库时&#xff0c;用户在select命令后添加字段名称控制返回字段。mongodb中也支持对查询返回字段的控制。默认返回文档的所有字段。为了限制返回数据量&#xff0c;提高网络传输速率。用户可以通过投射&#xff08;projection&#xff09;来指定返回字段或在返回结…

Git学习笔记(第7章):IDEA实现Git操作(VSCode)

目录 7.1 配置忽略文件 7.2 初始化本地库 7.3 添加暂存区、提交本地库 7.4 修改文件 补充&#xff1a;工具栏简介 7.1 配置忽略文件 问题引入 在版本控制系统中&#xff0c;有些文件或目录是不需要纳入版本管理的&#xff0c;比如编译产生的临时文件、日志文件、缓存文件等…

项目篇:基于UDP通信模型的网络聊天室

思维导图 基于UDP通信模型的网络聊天室 消息分类及数据包结构 服务器端 #include <head.h> #define SER_PORT 8888 #define SER_IP "192.168.232.133" typedef struct mb {struct sockaddr_in cin;char name[20];struct mb *next; }*member; //群发消息 int …

计算机网络复试

第1章 概述 时延&#xff1a;发送(传输)时延传播时延 链路中每多一个路由器&#xff0c;就增加一个分组的发送时延 第2章 物理层 2.4 编码与调制->编码(基带调制)->曼彻斯特编码 ->带通调制->混合调制->正交振幅调制QAM 信道极限容量 奈氏准则 无噪声最大速…

【window】Windows11:该文件没有与之关联的应用来执行该操作

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff1a;人工智能 之前win10升级win11后&#xff0c;受不了桌面软件图标的的小箭头&#xff0c;所以弄掉了&#xff0c;但是随之而来产…

Linux修改文件名常见的三种方式

在Linux系统中&#xff0c;有多种方式可以修改文件名。以下是其中的三种常见方式&#xff1a; 1. List item 使用mv命令&#xff1a; mv oldfilename newfilename例如&#xff0c;要将文件"oldfile.txt"重命名为"newfile.txt"&#xff0c;可以使用以下命…

9个好习惯教会你设计商业模式的电商干货,真心分享丨运营逻辑

9个好习惯教会你设计商业模式的电商干货&#xff0c;真心分享丨运营逻辑 文丨微三云营销总监胡佳东&#xff0c;点击上方“关注”&#xff0c;为你分享市场商业模式电商干货。 - 最近&#xff0c;有很多新认识的朋友&#xff0c;都在询问我最近市场上&#xff0c;有什么好的…

定类变量的频率分析(SPSS

目录 1.导入数据&#xff1a;2.频率分析&#xff1a;3.结果分析4.表格导出为excel小结&#xff1a; 1.导入数据&#xff1a; 直接把表格拖入spss 然后点确定 下面会有变量视图&#xff0c;查看各个指标的类型和属性&#xff1a; 2.频率分析&#xff1a; 点击频率分析 选择…

json-server的基础使用

本篇文章与另一篇文章有关系axios的基本使用&#xff0c;大家可以看看这篇文章 json-server 是什么? 用来快速搭建模拟的 REST API 的工具包 可以30秒内快速为我们搭建一个假的基于 REST API的服务 我们要如何使用呢&#xff1f; 1.先安装 //全局安装 npm i -g json-server …

伪原创文章生成器软件免费使用的方法

写文章不仅消耗时间&#xff0c;而且还容易出现写不出内容的问题&#xff0c;随着技术的发展&#xff0c;越来越多的人开始不再亲历亲为的去写文章了&#xff0c;而是用起了伪原创文章生成器软件&#xff0c;对于还不了解自动生成文章软件的人&#xff0c;可不要小瞧这个它了&a…