MariaDB 也将很快成为向量数据库

Sirish Chandrasekharan being interviewed

我们说:将你的 AI 向量放入你的 RDBMS 中…

关系型数据库是 AI 数据应存放之处。用户需要将向量与其数据的其余部分一起存放在标准数据库中,该数据库提供性能、可伸缩性以及所有其他传统优点,例如 ACID 合规性。

这就是我们开发 MariaDB Vector 的原因。预计本月晚些时候将发布第一个预览版。

… 但不要只听我们的一面之词——问问亚马逊!

现在,我们并不是唯一提倡上述逻辑的人。这可能是因为这个逻辑是讲得通的。我听过对“你想将 Gen AI 集成到你的关系型数据库中”这一逻辑最好的阐述来自于 MariaDB 基金会董事会成员、亚马逊关系型数据库服务总经理 Sirish Chandrasekharan。他在西雅图举行的 Open Source Summit 2024 峰会上接受了 The New Stack 的采访。

这段采访只有 18 分钟,非常值得一看。它相当直观,不需要观看者对 AI 有过深的理解,但我还是想对其中使用的术语和概念做一个简单的概述。

两个关键的 Gen AI 概念:LLM 和 RAG

生成式 AI (Generative AI) 是一个总体概念。通常在文本、图片和视频的语境中提及它,但它也可以指代任何数据。“生成式”这个词意味着生成新数据,但在向量数据库的语境中,它更多的是关于检索,关于查找数据。这里的 AI 部分使得能够基于更模糊的标准进行搜索,需要具有类似于智能的特征。

LLM,大型语言模型 (Large-Language Models),是知识被“智能地”编码的地方。LLM 本身不是关系型数据库的一种形式,我也不认为它们将来会是。这是因为它们形成了一个在特定时间点创建(“训练”)的静态快照,并且在下一个快照之前不会更新。它们包含了关于“世界如何运作”的一切连接,即使是 ChatGPT、Claude 或其他模型的普通用户,也对 LLM “知道”什么有相当好的理解。

RAG,检索增强生成 (Retrieval-Augmented Generation),是一个不太为人熟知的术语,但很快就会流行起来。可以说这是实现基于您自己的数据更新整体 LLM 的动态部分。LLM 是静态的,而且非常庞大,世界上很少有实体大到可以创建(“训练”)自己的 LLM。使用 RAG,各种规模的用户都可以利用所选 LLM 的智能来解释数据,创建他们自己的数据的表示形式(“向量化”或“嵌入”)。

旁注:如果你想避免被那些无所不知的 AI 同事纠正,不要说在你的数据上“训练”模型,而应该说你“嵌入”或“向量化”你自己的数据。“训练”这个词通常仅限于从头开始构建模型,这是 LLM 开发者在创建 LLM 时所做的事情。

向量?向量数据库?向量索引?

向量 (Vector),或多维向量,是一个在 AI 中具有特殊含义的重载词汇。它确实类似于数学向量,我们中的一些人在物理学或工程学中了解过,但这些向量通常仅限于两或三个维度。AI 向量具有很多很多维度,构成了模型本身特定知识的数值表示。

向量数据库 (Vector database) 是一种可以存储、索引和搜索向量的数据库。是的,有一些数据库只专注于向量,但这正是我上面最初论点所在——将它们存储在普通关系型数据库中更有意义。例如在 MariaDB Server 中。

向量索引 (Vector indexes),正如人们所预期的那样,是对向量化数据进行索引的索引。这里的关键点是,向量不能使用关系型数据库中的传统索引形式巧妙地进行索引,而是需要专门的方法,例如 IVFFlat 或 HNSW。不,IVF 不是体外受精,NSW 也不是新南威尔士州。Ivfflat 代表倒排文件平面(inverted file flat),HNSW 代表分层可导航小世界(Hierarchical Navigable Small World),但除了给你的那些无所不知的 AI 朋友留下深刻印象之外,你几乎不需要费力记住这些缩写。重要的概念是“最近邻”以及向量索引搜索是关于寻找相似性的想法。找到关系型数据库中最相似于你正在寻找的内容的条目(这可能是用户输入,或者另一个数据库条目,或者任何东西)。

ACID 仍然是一种美德

ACID, 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),是关系型数据库事务的四个核心美德。ACID 本身与向量无关。重点在于,即使在生成式 AI 这个勇敢的新世界中,我们也仍然需要传统 IT 的一般优点,特别是关系型数据库的优点。

解读 Sirish

Sirish 在 他的采访中 表达得非常清晰,因此几乎不需要我的“男士解释”(mansplaining)。但我还是要提供一些他的观点摘要。

  • 客户将其业务押在关系型数据库上,关系型数据库是推动世界发展和企业核心的重要组成部分。
  • AWS 客户表示开源数据库已经赶上来,他们可以将业务押在开源关系型数据库上。 
  • AWS 正在增加对开源的投资。
  • Gen AI 若要产生影响,需要基于现有的、积累的数据。而这些数据就在 RDBMS 中。
  • RAG 允许您根据您拥有的数据,为您的业务定制 LLM。
  • 我们不需要新的向量数据库;向量应该被引入用户熟悉并已投资的现有数据库中。
  • PostgreSQL 已经有一个 AWS 支持的向量存储插件,但 AWS 也支持 MariaDB 基金会的向量工作。 
  • 用户在向量场景下,也对数据库抱有其通常的期望(可伸缩性、性能)。
  • 亚马逊是 MariaDB Server 的第三大贡献者,仅次于 MariaDB plc 和 MariaDB 基金会。
  • 除了亚马逊自身为 MariaDB Server 做出贡献外,AWS 也在帮助 MariaDB 基金会确保 MariaDB 生态系统健康而充满活力。 
  • 索引的准确性和性能很重要,HNSW 的扩展性优于 ivfflat。

我再次鼓励您观看 Sirish 的视频。不,Sirish 没有哲学学位(与那位准备充分的采访者所想的相反),但他拥有计算机科学博士学位(关于流数据库)。而且他足够有思想,能够对关系型数据库的用途以及它们是“老掉牙的技术”还是仍然是创新的温床给出正确的视角。这次采访中的 Sirish 和我作为 MariaDB 基金会首席执行官时与他交谈时一样清晰、聪明和友善。

MariaDB 也将很快成为向量数据库…

让我从全局角度来看待 MariaDB,并结合上述通用术语以及 Sirish 的想法设定一些预期。 

  • MariaDB 基金会和 MariaDB plc 已经在 MariaDB Vector 上工作了一段时间。 
  • MariaDB 也将很快拥有向量搜索功能——预计第一个开发者预览版二进制文件仍将在五月份发布。[1]
  • MariaDB 的向量搜索从一开始就专注于 HNSW(“通常优于 ivfflat”)。
  • 与 PG Vector 不同,MariaDB 中的向量搜索功能不会是扩展(就像 PostgreSQL 上的 PG Vector 这样的“插件”),而是所有 MariaDB Server 二进制文件的原生语法核心部分。
  • 与 PG Vector 非常相似,MariaDB Vector 将使 LLM 本身与二进制文件分离,并且对用户选择的 LLM 持不可知态度;换句话说,您可以在 MariaDB 中使用 ChatGPT(3.5 或 4 或其他版本)、Claude、LLaMa2 和许多其他 LLM。
  • RAG(检索增强生成)是 MariaDB Vector 的核心用例,但这仍然是一个相当高抽象层次的陈述;具体的用例仍在不断涌现。

… 然后我们希望您进行测试!

[1] Vicentiu Ciorbaru 创建了一个 bb-11.4-vec-preview 分支,可以在其中试用 MariaDB Vector 的每夜构建版本;我们估计到五月底,开发者预览版将足够稳定,可以在常见用例上进行测试。

总而言之:Gen AI 不仅仅是炒作,将其与开源关系型数据库结合是关键的下一步。在三月份的 FOSDEM 期间,我们已经演示了 MariaDB Vector 的核心功能。预计很快就可以在我们的下载页面上找到 MariaDB Vector 的第一个预览版!