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·2023」调研已开启!欢迎各位在 Zilliz 微信后台私信我们,谈谈“过去一年你对 Zilliz 印象最深刻的一件事情是什么?”范围不限于 Zilliz 的单个产品,也可以谈谈对 Zilliz 的商业动态、线下活动、内容平台的文章等印象,字数不限,入选用户将收获神秘礼物盲盒,欢迎来私~
技术干货
改善行为科学实验与LLMs和Milvus
探索的重点是发现图片中的什么允许这种转变以及如何寻找它。这就是多维图像嵌入和向量数据库发挥作用的地方。
2024-07-26技术干货
什么是二进制嵌入?
尽管密集嵌入因其能够以最小的信息损失保留语义含义而普遍存在,但随着数据量的增加,它们的计算需求和内存需求也在增加。这种增加促使开发者寻求更高效的数据表示方法。
2024-07-26技术干货
Copilot 工作区:它是什么,它如何工作,为什么它很重要
他们介绍了他们的 Copilot 工作区,这是一个新的面向任务的开发环境,建立在 GitHub Copilot 之上。这个开发环境增强了我们如何利用生成性 AI 模型,因为现在我们可以超越简单的代码建议,实现整个功能的实现。在接下来的部分中,让我们探索这个 Copilot 工作区以及它如何帮助我们构建和维护 AI 应用程序。
2024-07-26