本文对北京理工大学袁野教授团队、深圳大学、深圳计算科学研究院等联合编写的2024 VLDB论文《nsDB: Architecting the Next Generation Database by Integrating Neural and Symbolic Systems》进行解读,全文共5927字,预计阅读需要15至25分钟。
如今,高质量数据资源日益枯竭、算力成本日趋高涨,在许多多模态逻辑推理和复杂场景中,神经系统框架和符号系统框架都有各自的不足。在此背景下作者提出了nsDB,一种新的神经符号数据库系统,集成了神经和符号系统架构,提供了一个强大的数据库,能够进行数据管理,模型学习,和复杂的多模态数据分析查询处理。作为下一代数据库系统,nsDB将成为数据库与人工智能模型之间的桥梁,它抽象了人工智能的复杂性,但允许最终用户享受它们的强大功能。对于nsDB的构建还处在早期阶段,许多开放性的问题,如数据库内模型训练、多目标查询优化和数据库代理开发,都有待未来的研究者们进行思考和解决。

nsDB数据库概述
1.1神经系统和符号系统的诞生
如今,不管是MySQL,PostgreSQL为首的传统的关系数据库系统,或是以Spark,Flink,Hive为代表的现代大数据系统,均采用符号系统作为系统架构中的基础。具体而言,这些系统会将复杂的数据处理过程被转换为具有包含变量的表达式的精确计算,并且被操纵为符号,也就是关系代数。符号系统的主要优点是能够提供精确的计算,并且计算过程是逐步的和明确的。
另一方面,人工智能领域的机器学习和深度学习都利用数学模型(也称为神经系统)从数据中学习并推广到看不见的数据,从而在没有明确指令的情况下执行任务。近年来,神经系统由于在自然语言处理、计算机视觉、语音识别等领域的成功应用而引起了人们的极大关注。神经系统最重要的特性是直觉和无意识。
1.2神经系统和符号系统的局限性
神经系统和符号系统在各个领域出现了许多应用,但无论是基于符号的数据管理系统还是基于神经的人工智能系统,都无法独立有效地处理这些应用。比如,当一个数据分析师想要通过查询数据库中查找运动员投篮视频片段作为营销任务,他需要制定一个查询问题,通过基于符号的数据库或者基于神经的AI系统来回答这个问题。但是这个回答并不容易,以为包含两个基本任务:从视频数据库中识别特定帧,即运动员正在扣篮的帧;以及在具有属性约束的大型视频数据库中找到所有这些帧,例如,在比赛中该运动员得到至少30分。

基于符号的数据库或者基于神经的AI系统的问答任务
解决上述问题的一个直接的想法是结合符号系统和神经系统的能力。一些文献研究了将ML任务集成到数据库系统中。这些年来,学术界和行业内都提出了许多技术。现有解决方案的架构可以分为三个代表性类别:以AI为中心,以UDF为中心和以关系为中心。研究者们也通过集成了上述三种架构类别提出了一种新的RDBMS,作为一个混合框架。所有这些解决方案(包nsDB)为各种分析任务提供AI模型推理。然而到目前为止,现有的解决方案都没有达到事实上的标准。主要原因可以归纳为三个方面: 模型训练,性能目标和优化策略。
1.2.1模型训练
几乎所有的AI和DB集成系统都假设底层AI模型是经过良好训练的,并且集成系统是为高效的模型推理而设计的。然而,在现实应用中,模型训练不可忽视。模型训练需要对于上述集成系统提供准确的推断性能。以AI为中心的系统(如Google Big Query,Amazon Redshift ML等)通过卸载到底层的PyTorch,Tensorflow来训练这些模型。显然,由于训练数据应该预先准备并且依赖于其他系统,因此效率不高。
1.2.2性能目标
现有的AI和DB集成系统的性能目标仅是查询处理延迟。对于底层的AI模型,由于经过良好的训练,这些模型的准确性是固定的。然而,同一任务可以由多个AI模型处理,而不同的模型对同一任务的处理结果具有不同的准确性。
1.2.3优化策略
现有的系统框架在优化策略中也有各自的局限性:以AI为中心的系统架构的查询优化器仅使用符号规则来处理分析查询中的谓词,而忽略复杂的基于神经的计算的优化;以UDF为中心的系统使用UDF来建模基于神经的计算;而关系中心系统采用关系表示模型参数张量,将传统的关系代数扩展为张量关系代数,并以整体符号的方式对其进行优化;混合框架(对三种架构的集成)提出了一种简单的符号和神经操作在复杂分析查询中的协同优化思想(即设计新的查询转换规则),但它不能同时实现低延迟和高准确率的目标。
1.3提出nsDB的动机
为了克服现有的符号系统和神经系统的局限性,作者团队设想了一种新型的神经符号数据库系统nsDB,来处理这些新出现的查询。它将神经系统和符号系统集成在一起,提供一个强大的数据库,能够进行数据管理、模型学习、复杂和多模型分析查询处理。为了能够让没有任何编码技能、人工智能专业知识和系统开发经验的人员也能构建人工智能项目,nsDB将神经系统抽象为原生支持的模块,在查询优化时同时考虑了结果准确性和处理延迟。
2.1框架概述
nsDB的系统架构由5个主要组件组成:用户界面,模型管理器,查询优化器,执行引擎和存储引擎。nsDB中的每个组件都具有解耦的性质,相对独立地演化、扩展和维护,以有效地支持不同的分析查询。

nsDB系统框架总览
2.2用户界面User Interface
用户通过用户界面向nsDB提交查询。例如,数据分析人员可以通过命令行或可视化UI提交分析查询,终端用户也可以通过自然语言表达查询意图,nsDB随后基于大语言模型的DBAgent可以将其转换为相应的复杂分析SQL查询。
2.3模型管理器Model Manager

nsDB中的查询处理
对于收到的一个用户查询,nsDB会首先将其解析为逻辑计划,nsDB中逻辑计划具有以下两种特点:传统SQL运算符号(如图中基于关系型数据表S的两个符号δ和⧓);神经AI运算符号(如图中的视频数据V和人脸识别模型
和动作识别模型
)。
nsDB利用强大的神经操作能力来处理各种模态的非结构化数据,如图像,视频,文本和音频。因此,第一个关键挑战是:如何构建合适的模型管理器?因为它在处理多模态数据的复杂查询中起着至关重要的作用。
在这项工作中,作者通过nsDB中的模型管理器组件将符号运算符和神经AI模型结合起来,这种结合有助于终端用户通过简单的人工智能运算符与人工智能模型互动,并通过利用符号运算和神经AI领域的优势,使用户能够处理复杂的查询(例如,上述涉及多模态数据的分析查询)。
模型管理器中的一个关键组件是一个名为DBAgent的AI代理。DBAgent由大型语言模型(LLM)提供支持,具有高级推理和规划功能,并为nsDB提供以下优势:
DBAgent提供了用户与nsDB进行说明性交互的手段:用户可以通过自然语言或高级程序来描述自己的查询,DBAgent能够将其分解为子任务流,并将其转换为与nsDB兼容的查询。
DBAgent使nsDB能够有效地支持各种数据模态的大规模系统:为了获得最佳性能,不同的模态可能由不同的编程语言处理,这给现有的数据管理平台带来了巨大的挑战。DBAgent通过使用统一的语言重新编程异构组件来解决这个问题。令nsDB在现实中具有高度的可扩展性。
DBAgent具有强大决策能力:如果现有模型不满足查询标准,DBAgent将通过自主触发(如网络修剪、模型压缩或模型再训练)来增强nsDB中的模型管理器的自主性。
在构建nsDB的过程中,抽象出人工智能模型交互的复杂性是一个显著的挑战。为了解决这个问题,作者团队将在模型管理器中引入AI-Tables(AI表),AI-Operators(AI运算符)和AI-Models(AI模型):
引入AI表:目的旨在存储可用人工智能模型的基本元数据,包括模型标识符,功能描述,推理速度等。这些元数据可以是用户提供的,基于公共模型的发布信息自动收集的,或者在私有模型训练期间通过对保留的验证样本进行评估而获得的。
引入AI运算符:除了传统的关系运算符,模型管理器扩展了AI运算符。这些运算符包括粗粒度的运算符,如训练,推理,微调之类的高级操作;以及细粒度的操作,如池层,激活层等等块的抽象。这些操作符将使用户能与AI模型进行丝滑的交互,同时让nsDB能够处理复杂的分析查询,生成既包含基于符号的SQL运算符又包含基于神经的AI运算符的逻辑计划。
引入AI模型:在实际场景中,一些公共模型可能不完全符合查询要求。nsDB通过提供定制选项来解决这个问题。一方面,nsDB自发的创建模型。另一方面,它允许从公共模型中挑选专门的模型。这提供了从头开始训练模型的替代方案,并减轻了与数据收集和标签相关的困难。
2.4查询优化器Query Optimizer

nsDB中的查询处理
在查询处理中,在通过模型管理器得到逻辑计划之后,查询优化器便将其优化为物理计划。nsDB的第二个关键挑战是:如何进行多目标优化?,旨在寻找最有效的符号和神经网络时同时考虑了延迟和准确性。不同于现有的数据库和人工智能集成系统的性能目标只是查询延迟,nsDB中的优化目标是双重的:查询延迟和结果准确性。此外,上文中提到的AI运算符中进行的细粒度操作(如,池化层、激活层)将与符号SQL运算符进行流水线技术的实现,以导出最优物理计划。
假设在上图中的查询过程中,得到的逻辑计划包括两个AI操作符,即人脸识别模型
和动作识别模型
。为了优化逻辑计划,有三个问题需要解决:
每个AI运算符都有各种模型。在物理执行计划中应该使用哪一个?
如何确定模型执行顺序?
如何级联多个模型以实现更好的性能或准确性?
考虑到上述多目标优化问题,nsDB中的查询优化器通过高效准确地导出底层优化问题的Pareto边界来解决该问题。Pareto边界表示理论上的最佳性能。它可以用于指导底层AI模型的选择和物理执行计划的生成。如图显示了对于用户查询的一个Pareto边界。

针对运动员投篮查询的一个Pareto边界
为了识别复杂用户查询,nsDB中查询优化器的设计原则是:通过渐进式查询优化实现性能和准确性目标。首先利用模型管理器提供的AI操作符元数据、成本模型和计划生成器来生成初始物理执行计划。在查询执行期间,触发器观察中间结果并识别到目前为止获得的Pareto边界。渐进式细化组件通过考虑AI模型的运行时统计数据和元数据来细化执行计划。因此,执行计划将被渐进地动态调整。

nsDB中查询优化器的架构
对于渐进式细化组件,有两种实现方法:基于符号的和基于神经的。对于基于符号的方法,中间的运行时间数据被用作优化约束;对于基于神经的方法,这些统计数据被用作训练数据,以改进细化组件中的底层决策AI模型。
构建nsDB的查询优化器还存在着许多研究问题和技术挑战,比如代价模型、查询编译等等。可以利用成功的现有技术,比如利用将浮点值的数量作为nsDB中的一种成本度量,以及考虑一些查询编译和优化框架。
2.5异构原生查询执行Heterogeneity-native Query Execution

nsDB中的查询处理
在查询处理过程中,最后一步是在nsDB的执行引擎中执行优化的物理计划,优化后的物理计划是一个有向无环图(DAG),它由一组符号和神经运算符组成。执行引擎将它们调度到异构计算单元(如,CPU、GPU、FPGA),并通过访问存储引擎中的数据来执行计划。
由于异构在现代数据密集型系统中是非常常见的,因此在nsDB中,构建了一种异构原生执行引擎。对于nsDB的第三个关键挑战是:如何构建异构原生查询执行?为了解决这个问题,主要的技术挑战来自三个方面:
将正确的操作符分配给正确的计算单元。
保证了所有这些异构计算单元之间的负载平衡。
通过存储引擎中特别设计的数据布局来促进执行。
为了解决上述问题,nsDB对执行引擎的设计原则是:分解促进分配。为了客服是执行物理DAG很大的开销,文章为nsDB设计了几个轻量级的用户空间执行单元,为上游应用提供低延迟和高吞吐量。nsDB将物理执行DAG中的每个操作符分解为nsDB中的一组细粒度执行单元细粒度的执行单元要么享受低延迟和高吞吐量,要么促进分配和执行。
2.6存储引擎Storage Engine
随着在数据密集型系统中,数据访问开销越来越大,nsDB存储引擎的设计思想是:利用数据布局促进查询处理。
nsDB在存储引擎中设计了PageStore,因为大规模的多模型数据之间存在依赖性和相似性是很常见的,例如篮球比赛视频的不同帧总是共享相同的背景。为了改善视频数据之间的查询处理,我们计划在nsDB的PageStore中使用平铺数据布局。特别是,它将视频分割成不重叠的平铺的序列,每个序列支持独立解码。可以通过对数据加载、兴趣区域检测、区域解码等成本进行建模来构造最优平铺布局。此外,nsDB在存储引擎中引入VectorStore来存储、管理、并对多模态数据的嵌入向量进行索引。
为了使nsDB更具有通用性,文章讨论了如何清理nsDB中来自现实的脏数据。一些数据清理系统的方法可以分为两类:逻辑规则和机器学习。比如在系统中可以采用Rock方法来统一机器学习和逻辑推理,以解决数据质量问题。因此,在nsDB中,实体增强规则(Entity Enhancing Rules,REE++)的扩展将被分为两部分:
REE++中使用符号谓词作为传统逻辑规则;
使用嵌入的ML模型作为神经操作器。
根据以上两种扩展,最终用户可以通过在nsDB上编写简单的SQL查询,对来自不同应用(如,销售、物流)的各种数据进行错误检测。
4.1神经-符号数据库系统
自2000年以来,学术界和行业内已经研究了大量来集成DB和AI工作负载的方案。现有解决方案的架构可以分为三个代表性类别:以AI为中心,以UDF为中心和以关系为中心。研究者们也通过集成了上述三种架构类别提出了一种新的RDBMS作为混合框架。所有这些解决方案(包括nsDB)为各种分析任务提供AI模型推理。然而到目前为止,现有的解决方案都没有达到事实上的标准。主要原因可以归纳为三个方面: 模型训练,性能目标和优化策略(已在1.2中充分讨论)。

现有AI和DB集成解决方案的比较
4.2多模态数据的查询处理
对多模态数据进行复杂查询是近年来热门的问题。对处理多模态数据上的复杂查询的一般思想是将查询分解为几个子查询并将它们执行到不同的系统。文章中的nsDB在两个方面与他们不同:它集成了符号和神经算子来处理多模态数据复杂查询中的不同任务,并考虑了异构原生查询的执行来提高了性能。此外,nsDB并没有取代这些系统,它为终端用户提供了一种替代解决方案。
4.3模型管理方法
如今,ModelDB,AWS SageMaker等系统已经设计了几个AI模型管理系统。然而,nsDB中模型管理器的基本原理与它们不同。首先,ModelDB被设计为模型跟踪的中央存储库,但缺乏模型创建,训练和部署等高级功能。其次,虽然AWS SageMaker扩展了包括模型创建、训练和部署在内的功能,但它仍然是一个ML平台,整个架构缺乏AI模型与数据库系统中的查询处理之间的广泛交互。相比之下,模型管理器是nsDB中的集成组件,与其他组件紧密配合,完成查询任务。它统一了数据库框架内处理AI模型的整个生命周期,从训练到微调再到部署。
该文章设想了一种数据库框架nsDB,它集成了神经和符号系统,并提供了AI模型管理和复杂查询处理的能力。具体来说,nsDB包括三个重要部分:鲁棒的模型管理器,多目标优化,以及异构原生执行。目前,nsDB已经对一些技术挑战的进行了初步的解决尝试尝试。例如视频数据管理,异构计算,AI增强的查询优化等等。
作为下一代数据库系统,nsDB可以用于各种应用,例如视频分析,化学和自然科学等等。虽然nsDB的发展还处于早期阶段,但它具有很光明的前景,不仅增强了数据库在各种新兴应用中的可用性,而且消除了构建AI项目的障碍,并允许任何没有专业知识的人都可以在nsDB中使用AI模型。
在未来,构建nsDB有许多开放性问题,例如,查询编译和优化,VectorStore在桥接AI和DB系统方面的充分性等等。希望今后有更多来自不同领域方向的研究人员能够共同解决这些问题。
论文解读联系人:
刘思源
13691032906(微信同号)
liusiyuan@caict.ac.cn









