SAGE: 用于SQL中AI函数的统一代数与自适应执行框架

arXiv cs.AI 论文

摘要

SAGE 引入了一个统一的逻辑和物理框架,用于SQL中的AI函数,使用三个原语(AI_SCALAR、AI_AGG、AI_JOIN)来优化执行,显著减少模型调用和成本。

arXiv:2608.20630v1 公告类型:新 摘要:SQL系统越来越多地暴露AI函数,用于分类、提取、过滤、排名、检索、连接和摘要等任务。尽管它们的API多样,但这些函数只扮演三种关系型角色:转换单个行、聚合组或生成行对之间的关系。我们提出SAGE(自适应生成执行),一个统一的逻辑和物理框架,它使用三个类型化的原语AI_SCALAR、AI_AGG和AI_JOIN来捕获这些角色,并与标准关系运算符自然组合。所有原语共享一个置信度门控执行接口,同时支持针对其关系形状定制的物理策略。主要挑战是AI_JOIN,其中SAGE分析谓词,在可能时分解复合条件,并使用配方卡与小型无标签探测来在完整执行策略中选择。通过对公共AI操作符的广泛审计以及跨标量、聚合和连接工作负载的评估,该公式涵盖了常见的AI功能,同时一致地提高了执行质量和效率。SAGE在SemBench上实现了最强的整体性能,并且在代表性的可因子化连接上,将成对模型调用减少了两个数量级以上,实现了358倍的测量成本降低。
查看原文
查看缓存全文

缓存时间: 2026/08/24 04:17

# 1 引言  
来源:https://arxiv.org/html/2608.20630  
1 预印本。未经同行评审。内容和结论由作者负责。  
![[无标题图片]](https://arxiv.org/html/2608.20630v1/ibm_logo.png)![[无标题图片]](https://arxiv.org/html/2608.20630v1/nd_logo.png)  

**SAGE:AI函数在SQL中的统一代数与自适应执行**  

Xiangqi Wang¹,²  Nhan H. Pham²  Oktie Hassanzadeh²  Dharmashankar Subramanian²  Xiangliang Zhang¹  
¹ 圣母大学 | ² IBM研究院  

SQL系统日益暴露AI函数,用于分类、提取、过滤、排序、检索、连接和摘要等任务。尽管这些函数的API多样,但它们在关系数据流中仅扮演三种角色:转换单行、聚合分组或生成行对之间的关系。我们提出SAGE(自适应生成执行),一个统一的逻辑与物理框架,通过三个类型化的原语`AI_SCALAR`、`AI_AGG`和`AI_JOIN`捕获这些角色,并与标准关系运算符自然组合。所有原语共享一个置信度门控执行接口,同时支持针对其关系形状定制的物理执行策略。主要挑战在于`AI_JOIN`,SAGE分析谓词,在可能时分解复合条件,并使用“配方卡”与小型无标签探针来选择完整的执行策略。通过对大量公开AI运算符的审计以及跨标量、聚合和连接工作负载的评估,该公式覆盖了常见AI功能,并持续提升执行质量和效率。SAGE在SemBench整体性能上达到最强水平,并在典型的可分解连接上,将成对模型调用次数减少了两个数量级以上,实现**358倍**的实测成本降低。  

通讯作者:[email protected]  日期:2026年8月  

> **图1:系统概览**。表层AI函数编译为三个逻辑原语。每个原语共享一个自适应骨架,并针对特定形状的物理前端;每个查询的探针会确定最终的执行配置。  

AI函数将非结构化数据引入SQL。用户可以在关系查询中直接对评论进行分类、从报告中提取字段、检索与问题相关的段落、在自然语言条件下匹配记录,或对组内所有文档进行摘要[29] (https://arxiv.org/html/2608.20630#bib.bib1); [23] (https://arxiv.org/html/2608.20630#bib.bib4); [33] (https://arxiv.org/html/2608.20630#bib.bib6)。研究系统和生产数据仓库因此不断暴露日益增长的AI运算符词汇,如`AI_CLASSIFY`、`AI_EXTRACT`、`AI_FILTER`、`AI_SIMILARITY`、`AI_JOIN`和`AI_AGG`等[10] (https://arxiv.org/html/2608.20630#bib.bib13); [34] (https://arxiv.org/html/2608.20630#bib.bib14); [14] (https://arxiv.org/html/2608.20630#bib.bib15)。这种运算符增长掩盖了更简单的执行结构。查询计划不应按用户可见名称组织AI函数,而应推理模型调用在关系数据流中的位置。每个调用扮演三种角色之一:`AI_SCALAR`将行映射到值,`AI_AGG`将分组归约为值,`AI_JOIN`决定哪些行对存活。分类、提取、重写和过滤是标量操作;摘要是聚合;检索、相似性搜索、实体解析和自然语言连接是成对谓词,后接标准关系运算符。更复杂的任务是这些原语的组合。  

这些角色也导致不同的物理优化问题。标量主要需要逐行模型路由;聚合还需要压缩和分块;连接必须控制潜在的二次方行对空间,并决定谓词何时可被分解。在所有类型中,模型成本主导执行:仅使用强大模型成本高,而仅使用廉价模型会牺牲质量[6] (https://arxiv.org/html/2608.20630#bib.bib17)。固定级联也不足,因为输入难度变化,模型质量并不总是随规模单调递增[28] (https://arxiv.org/html/2608.20630#bib.bib18),且每个原语暴露不同的优化选择。因此,高效执行需要一个共享的自适应接口以及针对角色的物理策略。  

我们将问题分为逻辑层和物理层。逻辑层为每个查询时AI函数提供类型化公式,并将表层语法编译为三个原语加上普通SQL的计划。物理层保持这些语义,同时调整执行力度。所有原语共享一个由答案标记置信度门控的小到大级联[13] (https://arxiv.org/html/2608.20630#bib.bib19)。它们仅在前端有所不同:`AI_SCALAR`直接执行行;`AI_AGG`可压缩冗余分组成员;`AI_JOIN`使用配方卡探针来选择成员关系、关系或推理执行。第二个每个查询的探针在当前谓词下评估完整配置,并冻结满足成本和延迟预算的最佳配置。图[1] (https://arxiv.org/html/2608.20630#S1.F1)总结了该设计。  

此组织方式改变了语义连接的角色。原始仅限连接的视图将成员关系、关系和推理谓词作为顶层分类。在统一公式中,它们只是`AI_JOIN`的物理子类。顶层改为按关系基数的三重划分:行保留、分组归约和行对生成。因此,相同的质量-成本目标、置信度信号、配置接口和测试时适应循环可以服务于整个AI函数表层。  

我们在SAGE(自适应生成执行)中实现了此设计,并区分了两类证据。对于逻辑广度,对来自十一个公开系统的78个运算符的审计,将63个模型调用运算符直接映射到三个原语;其余的是多模态转换或非语义索引和控制构造。另外,37个语义查询意图最多需要三个原语,94.6%最多需要两个。统一评估报告了SemBench Q1–Q10[21] (https://arxiv.org/html/2608.20630#bib.bib22)和Multi-XScience[26] (https://arxiv.org/html/2608.20630#bib.bib25),从而在一张表中覆盖标量、聚合、连接和排序工作负载。对于重叠连接,我们使用当前AI-Join在SemBench Q5–Q7、FewRel[16] (https://arxiv.org/html/2608.20630#bib.bib23)和BRIGHT[36] (https://arxiv.org/html/2608.20630#bib.bib24)上的运行;三个复合连接被单独报告。SAGE获得了SemBench的最佳平均性能,并在除Q5外的每个更新连接上达到最佳或并列最佳质量,而固定的无竞赛变体在所有三个复合工作负载上给出最低成本点。连接专业化将一个精确全对执行从**16,256**次生成式调用减少到128次,实测**358倍**成本降低。  

我们的贡献是:  
1. **AI函数的统一公式**:我们根据关系基数和依赖签名定义三个类型化逻辑原语,为常见AI函数API提供编译规则,并说明公式的边界。这将用户可见的函数名与最小模型调用核心分离。  
2. **原语感知的自适应执行**:我们将物理执行分解为共享的置信度门控级联和原语特定前端。特别是,语义连接路由和谓词分解成为对原语的一个特例,与标量和聚合计划并列。  
3. **每个查询的配置选择**:我们将执行表述为对整个AI函数计划的约束配置选择。一个无标签探针竞争运算符特定候选,并在成本和延迟预算下冻结质量最大化的计划。  
4. **跨原语评估与对原语深入分析**:我们在SemBench Q1–Q10和Multi-XScience上一起评估标量、聚合、连接和排序工作负载。对于重叠连接列和三个复合谓词,我们使用最新的AI-Join运行;这些运行也支持机制消融、配方与代理审计、石板分析、收敛性、可扩展性和对原语的跨域评估。  

## 2 AI函数的统一代数  

我们首先独立于任何模型、提示或执行策略定义逻辑层。设关系R包含元组r,I为自然语言指令,T为SQL或结构化输出类型。AI函数是一个类型化、模型评估的表达式,其关系角色由其输入绑定和基数效应决定。这产生三个原语签名。  

### 2.1 三个逻辑原语  

#### AI_SCALAR:行→值  
标量原语独立评估每个已绑定的元组:  
S_{I,T} : r ∈ R ↦ v ∈ T. (1)  
应用于关系时,通过将v作为虚拟列附加,它保持基数,N → N。分类、提取、重写、评分、基于行本地上下文的问答以及布尔过滤都实例化公式(1)。布尔结果可被WHERE子句使用;其他类型可出现在SELECT、ORDER BY或后续原语中。  
```sql
SELECT review_id, ai_classify(review_text, ARRAY['positive','negative','neutral']) AS sentiment FROM reviews;
```  

#### AI_AGG:分组→值  
聚合原语评估共享关系分组键的元组袋:  
A_{I,T} : ℬ(R_k) ↦ v_k ∈ T, (2)  
其中ℬ(R_k)是第k组的行袋。它将基数从N行归约为G个分组输出。摘要、分组级判断、语义计数或估计、共识提取和结构化主题列表是其示例。与SUM或COUNT不同,A不一定结合或可分解;该属性属于其物理契约,而非其逻辑签名。  
```sql
SELECT movie_title, ai_agg(review_text, 'Summarize the audience sentiment.') AS summary FROM reviews GROUP BY movie_title;
```  

#### AI_JOIN:行对→谓词  
连接原语评估两个独立范围元组上的语义条件:  
J_I : (a, b) ∈ A × B ↦ y_{ab} ∈ {0, 1}. (3)  
其关系结果为 A ⋈_I B = {(a, b) ∈ A × B : J_I(a, b) = 1}. (4)  
此原语在选择前是基数生成的:|A| × |B| → K。物理实现可能产生分数并应用阈值,但逻辑契约是一对谓词。语义连接、实体匹配、查询-文档相关性、相似性搜索和top-k检索使用相同的行对判断;普通SQL执行最终选择或排序。  
```sql
SELECT r.review_text, m.title FROM reviews r JOIN movies m ON ai_join('Is this review about the movie?', r.review_text, m.title);
```  

> **表1**:原语按其在关系数据流中的角色划分,而不仅仅是提示元数。  

#### 为什么AI_JOIN是针对行对的布尔判断  
任何跨表AI连接都可被视为候选行对上的布尔判断:给定r∈R和s∈S,模型决定它们是否满足语义关系。这覆盖匹配、相关性、相似性、成员关系和自然语言关系。与AI_SCALAR的关键区别是AI_JOIN在N×M的行对空间上操作,并决定哪些行对存活。暴露此行对空间让优化器在模型调用前枚举、阻塞、检索或分解候选。因此,AI_JOIN本质上是行对上的语义IF,并带有连接优化所需的关系结构。  

### 2.2 范围、完整性和覆盖性  
我们的主张涵盖*单次传递、查询时的语义函数*,其中每个模型调用消耗关系数据并返回一个值或决策。这遵循经典关系查询理论,其中复杂查询通过组合少量运算符构建,包括元组和连接函数[7] (https://arxiv.org/html/2608.20630#bib.bib2)以及分组聚合[19] (https://arxiv.org/html/2608.20630#bib.bib3)。在此观点下,每个模型调用作用于三种输入之一:一行、一个分组或一个候选行对,对应于`AI_SCALAR`、`AI_AGG`和`AI_JOIN`。更复杂的任务是这些原语与普通SQL的组合。递归代理、训练、多模态转换、索引和带副作用操作不在我们范围内。  

我们进一步针对现有系统和工作负载测试此公式。表[2] (https://arxiv.org/html/2608.20630#S2.T2)比较了来自十一个公开语义查询系统的78个运算符。其中,63个语义函数直接映射到我们的三个原语,其余是转换、索引、普通SQL或超出范围的循环操作。附录J.1 (https://arxiv.org/html/2608.20630#A10.SS1)提供了完整映射。我们还将37个端到端语义任务分解为原语计划。图[2] (https://arxiv.org/html/2608.20630#S2.F2)显示几乎全部不需要超过两个AI原语,且没有超过三个的。  

> **图2**:37个语义查询意图按原语组合深度的覆盖。大多数需要一个或两个原语;全部最多需要三个。  

这些结果共同表明,三个原语既覆盖现有AI函数表层,也覆盖其在实际查询中的常见组合。  

> **表2**:公开运算符表层的审计编译。M表示多模态转换,NS表示模型调用核心之外的非语义基础设施。  

### 2.3 计划级优化目标  
设编译查询包含AI节点F_q = (f₁, ..., f_h),其中f_i ∈ {S, A, J},并令a = (a₁, ..., a_h)为每个节点选择一个物理配置。我们通过任务质量Q(q, a)、货币成本C(q, a)和端到端延迟L(q, a)评估完整计划。给定预算B_C和B_L,优化器寻求:  
a_q* = argmax_{a ∈ A(F_q)} Q(q, a)  
满足 C(q, a) ≤ B_C,  L(q, a) ≤ B_L。 (5)  

此计划级形式很重要。局部准确的标量提取可能实质性降低下游连接成本;早期有损连接或聚合可能不可逆地移除证据。因此,SAGE具体化可重用的标量值,尽早推送无损且具选择性的谓词,并避免对整体聚合进行部分执行。附录J (https://arxiv.org/html/2608.20630#A10)给出了优化器使用的组合和MapReduce条件。  

## 3 原语感知的物理执行  
逻辑层定义每个AI函数的含义,而物理层决定如何高效执行。SAGE在原语间共享置信度、升级和配置机制,同时保留行、分组和行对空间的不同优化需求。  

### 3.1 共享自适应骨架  
对于逻辑调用f_I(x),令M_f为可选的廉价前端,M_s为分配给第一次生成尝试的模型,M_ℓ为分配给不确定情况的模型。下标表示路由角色,而非模型大小:经验质量不必随参数数量单调递增。执行有三个决策:  
1. **M_f** 当其边际超过

相似文章

SAAG:决定AI实际适用场景的实用方法论

Reddit r/AI_Agents

SAAG(简化、自动化、智能体化、防护)是一种实用方法论,用于决定AI在业务中的适用位置,强调在自动化和智能体化之前先进行简化,并设置防护措施以降低风险。