技术文章ArcNeural: AI 时代的多模数据库丨技术专栏

ArcNeural: AI 时代的多模数据库丨技术专栏

导读 本文根据 Fabarta 资深技术专家谭宇在“2023 中国软件技术大会”演讲实录整理而来。围绕以下四个方面进行介绍:首先简单介绍Fabarta 背景以及我们为什么要研发 ArcNeural;其次深入介绍 ArcNeural 的架构与实现;三是介绍围绕 ArcNeural 我们如何构建 AI 应用;最后进行总结与展望。

image.png

01 AI 时代的数据基础设施

Fabarta 与 ArcNerual 概览

先简单介绍一下 Fabarta 的背景。Fabarta 成立于 2021 年,还比较年轻,我们说自己是一家 AI 基础设施公司。在 Fabarta 创立之初,ChatGPT 尚未发布,AI 技术的发展似乎也陷入了停滞。当时中国的创业公司以数据库、数据仓库、数据中台等基础设施领域为热点。我们的创始人和创始团队对这些领域也非常了解,但最终我们选择了 AI 基础设施这个赛道,这是基于创始团队对客户需求和技术发展的深刻洞察。

如同 Fabarta 的愿景所描述的:“数联世界,智见未来”,在过去,整个社会已经积累了大量数据,尽管数据的存储和计算依然存在大量需求,但更重要的是,如何以更高效、便捷的方式从这些数据中获取业务价值。这正是 AI 要解决、能够解决的问题。尽管当时 AI 的发展似乎放缓,甚至面临再次陷入沉寂的风险,但我们根据过往的数字化经验判断,这一次情况与以往不同。

image.png

在过去的一段时间里,我们服务了大量的客户,特别是一些行业的头部客户,最终形成了“一体两翼”的产品矩阵。“一体” 即今天要分享的 ArcNeural,实现对数据、算力以及模型运行时的管理,从基础层面实现 AI 就绪( Infrastructure Ready for AI)。“两翼”分别指数据和 AI,其中数据翼提供了完善的多模态数据管理功能,有效帮助企业治理并盘点数据资产。“AI 翼”打通了模型工厂能力和企业私有知识融合能力,并采用低代码化方式,帮助企业快速使用大模型,结合企业私有知识进行 AI 应用落地(AI Ready for Apps)。

目前,我主要专注于 ArcNeural 的开发和建设。在加入 Fabarta 之前,我在阿里云工作十余年,主要经历是从事数据库和数字化转型服务相关的工作,对这两个领域有比较丰富的经验和理解。接下来,让我们深入探讨 Fabarta 为什么选择构建这样的产品矩阵。

基础设施演进滞后性

image.png

基础设施领域的演进过程往往呈现出一定的滞后性。 通常情况下,变革首先从业务层面和上层技术开始发生一些变化,逐渐传导到基础设施领域。随后,基础设施的发展又会反过来影响上层的业务与技术。比如说,云计算就是在互联网兴起的背景下出现的,随着时间推移,云计算发展到一定阶段,所使用的技术被总结为“云原生”。而云原生技术再次影响到上层的业务设计和技术实现。本质上,技术就是通过这种循环不断实现着迭代和发展。

在过去不到 20 年的时间里,我们经历了三次大的技术浪潮,这个速度是前所未有的。这种快速变化背后有许多原因,特别是许多意外因素加速了这种变革。比如说,疫情加速了数字化,而 ChatGPT 的出现让大家看到了通用人工智能的希望。通常情况下,一次技术浪潮的变革需要经历完整的技术成熟度曲线,可能需要大约 20 年的时间。但在过去的 20 年里,我们经历了三次技术浪潮,罕见地出现了三次技术浪潮共舞的情况。

如今许多企业仍在谈论云化、云原生,有些企业正在进行业务数字化,还有一些在探索智能化。更有一些企业不仅在推动基础设施的云化,同时在进行业务数字化,并且还在探索智能化。这也是我们在讨论 AI 时代基础设施时所必须要考虑的事情。一方面,必须充分关注企业在云和数字化方面的状况,如果 AI 没有办法落地,那讨论 AI 的基础设施也就失去了实际意义;另一方面,必须要考虑 AI 的切入点,特别是在大语言模型问世以后,企业如何快速实现部分业务的智能化;最后,还需要思考 AI 应用落地后对现有业务的改变与促进,最终完成我们刚刚提到的技术演进循环。

构建 AI 时代的数据基础设施

image.png

所以,从以上几个点出发,我们构建了“一体两翼”产品矩阵,主要有如下几个考量:

首先是基础设施层面的考量,也就是“一体”。 根据之前的分析,企业的基础设施仍然在不断演进,因此数据基础设施需要支持云、本地机房以及信创等多样化需求。

其次是“两翼”之一的“数据翼”。 数据作为现代企业的基本生产要素,出现的时间并不长。虽然今天各家企业收集了大量数据,但对这些数据的基本处理可能尚未完成,例如在数据分类、数据盘点、血缘关系等方面。缺乏对数据的充分认知,这将影响到后续的数据分析和智能化应用。因此,在数据层面,我们提供了 ArcFabric 多模态的数据编织平台,能够对企业的全量数据,无论是结构化还是非结构化的数据,进行整理和处理。确保企业在数字化过程中积累下来的大量多模态数据资产变得 Ready For AI,真正做到把企业数据资产为企业所用,可以为 AI 所用。

第三点,依托当下大语言模型技术,如何将企业数据与大模型建立有效连接,并快速产生一些实用价值。 为此,我们提供了 ArcPilot 企业智能分析平台,可以将整理好的数据与大模型打通,构建场景化的 AI 能力,称之为“AI 翼”。

数据基础设施需要支撑并联通以上的“数据翼”与“AI 翼”,也就是 ArcNeural 多模态智能引擎要做的事情,以图和向量为基础,融合图计算和大模型运行环境,实现企业的知识沉淀与业务智能化。

02 ArcNerual 架构与实现

以图为基础来构建多模态智能引擎

image.png

以图为基础构建 ArcNeural 的背后,融入了我们两个重要的思考:首先,在创始团队拥有深厚大数据领域背景的情况下,我们为何没有选择数仓或数据中台?这是因为我们认为数据领域正在经历一种范式转移,当下数据领域关注点逐渐从存储和计算转向了记忆与推理。其次,是我们对 AI 领域的判断。尽管当时尚未发布 ChatGPT,但深度学习在多个领域已经表现出色。然而,我们发现许多客户,尤其是传统行业的客户,对模型的可解释性有一定要求。在 AI 领域一直存在两条路线,即符号和概率。当前 AI 的突破主要依赖概率系统,但符号系统天然具有可解释性,成为一种有价值的补充,而符号系统的基础恰好是图。所以,基于这两个方面考虑,我们选择了以图为基础来构建多模智能引擎。

以图为基础来构建多模智能引擎,主要有以下几个难点:

首先,图数据本身存在局部性丧失的问题。 也就是我们说的大数据叠加数据耦合,与关系型数据库不同,图数据库强调实体间的关系,而不像关系型数据库通过建模获取本地性。但图与现实世界更贴近,也更符合 AI 使用数据的模式。

其次,数据呈现不规则和多模态。 传统上,我们习惯使用不同系统处理不同类型的数据,所以有结构化和非结构化的数据系统。但是今天 AI 使用数据的习惯是更倾向于融合,这种不规则性和多模态性增加了数据处理的复杂度。

第三,数据的实时变化。 在过去,数据分布在多个系统中,导致变化天然地相互隔离。然而,现实世界中,即使是微小的变化也可能带来巨大影响。因此,将数据隔离开来可能不利于发现这些变化。

多模态智能引擎 ArcNeural 概览

从以上这几点出发,我们设计了 ArcNeural 的架构,主要包括以下三个部分:

image.png

  1. 存储层: 最底层是存储,我们整体上采用了存算分离架构,这也是云原生的显著特点,一方面可以利用用户现有的存储,另一方面我们也采用了多种模式来确保灵活性,这将在后续详细介绍。
  2. TP(事务处理)计算节点: 我们没有直接在一套代码里直接实现 HTAP(混合事务/分析处理),因为在图领域,TP 和 AP 有截然不同的使用场景,在 TP 层面,我们实现了一个完整的分布式数据库且支持多模态的引擎,目前包括图和向量,未来还可以进一步扩展。
  3. AP(分析处理)部分: 以 serverless 形态存在,无需常驻。当用户需要进行分析时,会在资源池中临时启动一些分析节点。数据实时从 TP 流向 AP,在运算完成后,还可以返回到 TP 节点进行数据更新等进一步操作。通过这种方式,有效将两套系统有机结合,并发挥各自的最大优势。

接下来,我们将分别深入介绍这三个部分。

ArcNeural 存储层

image.png

存储部分设计涵盖了多种模式和场景。 我们提供多种模式选择,允许在云上或已有成熟基础设施的场景下,直接利用已有的高可靠分布式 KV 存储系统,从而降低使用及运维成本。同时,也支持本地高可用和单机模式,可配合块存储或本地 SSD 等基础设施,可以在单机、高可用以及远端分布式之间自由切换,客户可以随着业务增长选择不同模式,非常灵活,无需提前投入不必要的成本。

在此基础之上,为了保证高可靠性,我们需要在本地写日志,并通过 Raft 协议实现高可用。这一层能将对底层存储的操作转化为异步操作,从而实现高可靠性而不影响性能。

最后是内存引擎部分。它涵盖了完整的分布式数据库能力要素,例如更新和事务处理。同时,为了提升查找性能,我们设计了与底层存储引擎不同的内存存储结构,包括 TOPO、属性和向量索引。

最终,形成了一个三层架构,在性能、可靠性以及用户基础设施之间达到了一种平衡。接下来我们看一下基于这个存储的架构,我们如何实现 TP 与 AP 的融合。

TP 与 AP 融合的实现方式

image.png

首先,TP 和 AP 提供了统一的查询接口。 在 TP 层面,我们支持了 Cypher 查询语言,并针对 AP 进行了扩展,例如通过 Call 方式在语句中调用 AP 的能力。当 TP 接收到请求后,会进行语义分析,确定是否需要使用 AP。如果需要,它会根据请求拆解算子,准备数据并启动 AP。

其次,打通了数据链路。 TP 在请求解析完成后开始准备 AP 所需的数据,可以直接传递给 AP,也可通过底层存储让 AP 直接获取。AP 处理完成后同样可以直接返回,或写入存储并通过 TP 进行后续处理。

最后,AP 引擎也能独立运行,执行 T+1 的离线需求。同时,它还支持从外部存储,例如对象存储或大数据系统中加载额外的数据。 通过上层业务平台提供的能力,如定时执行,可以实现自动化。这样一来,通过一套接口和一套系统,就能覆盖业务从 TP 到 AP 全场景的能力。

另外,由于 AP 的需求可能是 Ad-Hoc 的,所以 AP 计算节点还支持 Serverless 能力,能够根据用户请求负载的差异,动态扩容或缩容。

image.png

举一个简单的例子,假设我们想通过一条查询语句来了解一个公司或某个社区中哪些成员更喜欢哪些成员,并通过这种关系来确定意见领袖。首先, TP 部分会进行处理,查询到谁喜欢谁,并得到一个子图,这是一个经典的 TP 多跳查询。查询完成后,会调用 AP 系统。当 AP 系统收到这个命令后,它会自动识别需要执行 PageRank 计算,然后自动从资源池中申请 AP 节点,组成一个小型的 AP 集群,然后将查询得到的子图发送过去进行计算。计算完成后,相关资源会被回收,实现 AP 请求粒度 Serverless。通过这种方式,我们可以区分处理 TP 与 AP 的资源,提供低成本且具有弹性能力的 AP 能力。

Vector Column Type

除了 TP 与 AP 的融合,我们还提供了另一大核心能力:**多模态数据的融合。**我们将向量和图进行深度融合,如同前文所述,我们以图作为基础,并通过为图的属性添加向量类型的字段来实现这一目标。

image.png

以电影知识图谱为例:影片与制作人作为实体,形成图拓扑关系。每部电影都有其独特的 ID 和其他元信息,如标题、年份、类型、标签、评分等。我们使用 JSON 来表达这些信息,不受强 Schema 的限制,这也是我们多模态能力的一部分。此外,我们将电影内容或影评文本转化为向量,我们将电影的内容或影评的文本进行向量化处理,并将这些向量数据作为电影实体的属性字段存储在图数据中。

针对向量字段,我们通过 HNSW 索引来加速向量数据的检索。为了进一步实现图与向量数据的整合处理,我们在系统中加入了以下三个特性:

  • 使用 SIMD 进行距离计算加速,与传统方式相比可以提升 4 倍性能。
  • 支持属性过滤的向量检索功能,同类系统只能进行纯向量检索,而不能进行其他字段(标量)的联合检索。
  • 通过原有图技术沉淀,我们在向量数据上也实现了完整的数据库能力,包括事务以及统一查询。

统一的查询接口 One Query

我们可以来看一个查询例子,仍然以上文中的电影为例。例如,我们希望查询 2023 年上映的一部关于反欺诈题材的电影,并想进一步查询这部电影的导演还执导过哪些其他影片,以及这些影片中的主要演员。这个查询任务听起来比较复杂,但在我们的系统中,用户只需使用一条简单的查询语句即可完成,具体的查询语句如下所示。其中,黄色部分是 WHERE 条件,用于筛选出 2023 年上映且涉及反欺诈主题的电影。

image.png

首先,这条查询语句会进行一个向量索引扫描,在查询计划里是一个带 FILTER 的向量 INDEX SCAN,筛选出满足条件的电影,然后继续向上传递,使用图算子对结果进行进一步的一跳或两跳查询,例如查询导演和他/她的其他作品。这种我们称之为 One Query 的设计确保了一种接口甚至是一条语句可以同时扫描向量数据和图数据,可以极大简化用户的业务研发复杂度。

ArcNeural 2.1 版本核心特性

在经历了一段时间的积累和客户实践后,我们正式发布了 **ArcNeural 2.1 版本。**该版本主要包括以下功能特性:

  • 第一个特性是多模态, 在强 Schema 的基础之上,支持了包括图数据、向量数据、JSON 以及传统的 Table 数据结构。
  • 第二个特性是完整的数据库能力, 包括分布式事务、HTAP 能力、高可靠高性能等,用户完全可以把数据放心地放在 ArcNeural 里。
  • 第三个特性是企业级交付架构与运维能力,除了支持云原生的弹性部署,我们的解决方案还适应于分布式系统、银行的多地、多中心等高级要求,并且支持模块化部署,可以根据需要进行个性部署。
  • 第四个特性是对信创和国产化的支持,ArcNeural 完全满足国内的生产要求。 ArcNeural 实现了从代码的完全可控性到对国产硬件的完美适配。在系统内核研发方面,我们使用现代编程语言 Rust 编写。同时,我们也支持面向合作企业和伙伴开源。

image.png

以上是 ArcNeural 的架构设计及实现,接下来与大家分享一些基于 ArcNeural 的应用实践,先简单回顾一下 Fabarta 的产品矩阵以及他们在大模型时代应用中的位置。

03 加速大模型时代 AI 新范式落地

Fabarta 产品矩阵

毫无疑问,大模型的出现改变了 AI 应用开发的范式。如果要简单类比的话,以前的开发方式是烟囱式的,需要为各种不同场景准备数据、训练模型,然后再开发应用;而在大模型出现后,开发更像是平台式的,利用大模型的泛化能力,通过 prompt 的方式来进行 AI 应用开发。但是,这种转变也带来了一些问题和挑战:

  • 第一个问题是关于大型语言模型本身的一些挑战,比如模型的“幻觉”现象以及其不可解释性。在 C 端这些问题可能并不是特别严重,但是如果在 B 端应用中,可能会引起很大的风险。
  • 第二个问题是关于数据, 企业如果要应用大模型,需要把企业的一些数据提供给大模型。但由于企业的数据类型、数据量以及大模型可接收信息的限制,我们如何把高质量的数据输入给大模型是一个急需解决的问题。
  • 第三个问题是当有了高质量的数据后,如何快速将数据、大模型及业务场景三者联系起来,并产生实际的业务价值。

image.png

Fabarta 的产品矩阵是围绕解决以上这些问题而构建的。首先,左侧是 ArcFabric 多模态数据编织平台,通过智能化的治理、盘点和编织企业多模态数据,并将处理后的信息存储到 ArcNeural 多模态智能引擎。该引擎融合了图和向量,一方面提供多模态数据存算能力,另一方面作为大模型的记忆和推理引擎。最后,右侧 ArcPilot 企业智能分析平台,可基于低代码方式快速构建场景化的 AI 能力。

案例:企业智能 IT——Arc42

接下来,我们看一个实际应用的案例。在构建了 Fabarta 产品矩阵后,我们首先将其内部落地。尽管 Fabarta 是一家初创企业,但我们极为注重数字化,同时作为一家面向 AI、面向未来的企业,我们提供非常开放和宽松的办公环境。例如,我们在全国多个城市设有研发办公室。因此,我们非常注重信息透明度和在线数字化协作,并积累了大量任务、代码、文档和流程等数据。如何让每个人都能充分利用这些数据是我们需要解决的问题。

因此,我们为了打磨产品、解释真实的业务需求,打造了 Arc42 这个产品。在 Arc42 中,左侧是数据生产端,它利用 ArcFabric 多模态数据编织平台将我们企业内部的数据、代码和文档构建成企业智能图谱,提取其中的显式和隐式关系,并传输给 ArcNeural 多模态智能引擎。

image.png

右侧是数据消费端,实际应用是通过 ArcPilot 企业智能分析平台提供的低代码平台来实现。在 Arc42 里相对简单,它是一个问答系统,允许用户通过自然语言提问。用户提出问题后,由 ArcNeural 中大模型的控制器与大模型进行交互生成相应的查询计划,并将多模态查询计划传递给 ArcNeural 执行,最终得到相应的答案。

在这里有两个关键点:第一,通过图与向量的融合与交叉验证来解决大模型的“幻觉”问题;第二,利用大模型来增强各个环节的智能属性,而 ArcNeural 负责掌控最终的答案,以增强其可解释性。

04 总结与展望

企业从数字化到智能化所需要的基础设施

image.png

首先,我们认为这是一个三次技术浪潮共舞的时代,即云计算、数字化与智能化。要构建智能化时代的基础设施,就必须要考虑到每个企业所处的不同阶段而引起的多样化与复杂度。

其次,我们认为数据在作为企业基本的生产要素出现以后,面临一个范式的转移:从存储与计算演进为记忆与推理。 因此,我们在基础设施、数据和应用三个层面构建了我们的产品矩阵。在基础设施层面,ArcNeural 能够有效承载大模型时代的记忆与推理。

最后,在智能化领域,目前的大模型取得了很大的成功,但这并不是 AI 的唯一方向。可解释性 AI 是我们必须考虑的事情。如果单纯从 AI 领域出发,“可解释性 AI”可能需要很长时间才能取得突破,但我们认为图与大模型的结合可能是一个可行的解决方案。

企业智能中的 Large Model 与 Knowledge

image.png

大模型的优势确实显而易见,但同时也存在许多问题。例如,大模型的知识更新较为困难,而企业内部数据通常持续更新;大模型缺乏企业级的严谨性,在面对大模型不可避免的“幻觉”问题时,如何确保输出的严谨可靠,避免误导是一个挑战。此外,数据安全也是一个重要问题。

但这些问题正是传统以数据库为核心的企业知识图谱架构的优势所在:数据精确、高效且实时更新。然而,它缺乏智能化的特性,难以实现数据“洞察”,难以自动化地建立不同数据内容之间的关联。

Data Centric LLM

所以我们认为企业知识图谱与大模型之间有很强的互补关系,如何将这两者更有效的结合起来一直是我们努力的方向,之前讲的是我们在这个方向上的一些努力,接下来我们还将在这个方向上作更多的探索。

image.png

首先,我们要用大模型来武装或增强构建企业知识图谱的各个环节,降低构建传统知识图谱的门槛。其次,在数据管理层,使用 ArcNeural 打破传统数据库“计算+存储”的本质,引入“记忆+逻辑”体系。其中,记忆部分为多模态智能引擎,支持图模型和向量引擎,分别负责显式和隐式关系管理;逻辑部分则利用图算法和大模型来进行逻辑推理,从而实现企业数据与大模型的快速连接与可解释性智能。

以上我本次的分享,谢谢大家。

如对我们的产品或技术感兴趣,欢迎通过 business@fabarta.com 与我们联系。

本文作者

谭宇

Fabarta 资深技术专家

Fabarta 技术专家,目前专注于 AI 时代的多模数据库引擎 ArcNeural 的建设。曾任阿里云资深技术专家,主攻数据库、云计算与数字化转型方向。Tair / OceanBase 早期开发团队成员。曾负责建设阿里巴巴集团数据库 PaaS 平台,带领团队完成了阿里巴巴数据库的容器化、存储计算分离、在离线混部等重大变革。在阿里云全球技术服务部期间,提出并建设了飞天技术服务平台,对企业数字化转型有深刻的理解并有丰富的实践经验。