用于文本到SQL集成模型的残差技能优化
摘要
DivSkill-SQL是一个残差技能优化框架,无需模型微调即可构建互补的智能体文本到SQL集成模型,通过针对当前集成模型失败的示例进行优化,在Spider2-Lite上将选定准确率提升高达+11.1个百分点。
arXiv:2605.21792v1 发布类型:新
摘要:文本到SQL集成模型通过生成多个SQL候选并选择一个,优于单一候选生成,但其有效性受限于Pass@K,即至少有一个候选正确的概率。现有方法通过随机解码或提示变体启发式地获取多样性,导致候选集被相关失败所主导。我们提出DivSkill-SQL,一种残差技能优化框架,无需模型微调即可构建互补的智能体文本到SQL集成模型:每个新技能针对当前技能集成失败的示例进行优化,理论保证其对Pass@K的边际贡献。在Spider2-Lite上,与最强的集成基线相比,DivSkill-SQL在Snowflake上提升了高达+11.1个百分点的选定准确率,在BigQuery上提升了+8.3个百分点,且在两个基座模型(Opus-4.6和GPT-5.4)上均有持续改进。针对单一方言优化的技能可无需重新训练即可跨方言(Snowflake、BigQuery、SQLite)迁移,并适用于不同的任务形式,如BIRD-Critic(+2.6个百分点)。错误诊断显示,幻觉性的模式引用和函数调用减少了高达3倍,表明性能提升来自于真正可靠的互补技能,而非表面形式的变异。
查看缓存全文
缓存时间: 2026/05/22 08:43
# 面向文本到SQL集成的残差技能优化
来源:https://arxiv.org/html/2605.21792
Jiongli Zhu¹\*†,Haoquan Guan¹\*†,Parjanya Prajakta Prashant¹\*†,Nikki Lijing Kuang²,Seyedeh Baharan Khatami¹†,Canwen Xu²,Xiaodong Yu²,Yingyu Lin¹,Zhewei Yao²,Yuxiong He²‡,Babak Salimi¹†‡
¹加州大学圣迭戈分校 ²Snowflake AI Research
###### 摘要
文本到SQL集成通过生成多个SQL候选并从中选择一个来改进单候选生成,但其有效性受限于Pass@K,即至少有一个候选正确的概率。现有方法通过随机解码或提示变体启发式地获取多样性,导致候选集受关联失败主导。本文提出**DivSkill-SQL**,一种残差技能优化框架,无需模型微调即可构建互补的智能体文本到SQL集成:每个新技能在当前技能集成失败的样本上进行优化,从而有理论保证地针对其对Pass@K的边际贡献。在Spider2-Lite上,**DivSkill-SQL** 在Snowflake和BigQuery上的选定准确率分别比最强的集成基线提高最多**+11.1**和**+8.3**个点,并且在两个基础模型(Opus-4.6和GPT-5.4)上保持一致的提升。在单一方言上优化得到的技能无需重新训练即可跨方言(Snowflake、BigQuery、SQLite)迁移,并适应不同的任务形式(如BIRD-Critic,提升**+2.6**个点)。错误分析显示,幻觉式模式引用和函数调用减少多达**3×**,表明性能提升源于真正可靠的互补技能,而非表面形式变化。
¹共同第一作者。²工作完成于Snowflake AI Research。³共同资深作者。
## 1 引言
文本到SQL(Text-to-SQL)将自然语言问题转换为可执行的SQL查询,使非SQL专家也能访问关系数据库。虽然大型语言模型(LLM)在标准基准测试上取得了强劲结果[44, 31],但涉及大型模式、方言特定语法和多步查询逻辑的真实世界查询仍然困难。这推动了智能体文本到SQL系统的发展,这些系统检查模式、执行中间查询、观察反馈并迭代修复错误[35, 9]。然而,即使有多步交互,没有单个智能体执行能可靠地解决每个查询,这促使集成作为一种互补的鲁棒性维度[29, 41, 22, 9]:集成不依赖于单个SQL生成,而是生成多个SQL候选并选择一个最终答案。集成的潜力上限由Pass@K界定,即K个候选中至少有一个正确的概率[5]:无论选择器多么优秀,都无法恢复从未生成的答案。因此,Pass@K负责捕获生成阶段的任务,与选择阶段分离。
现有的文本到SQL集成通过组合随机解码、手工设计的提示或工作流变体,以及在某些情况下多个微调生成器[29, 22]来产生候选多样性。然而,由此产生的候选是否能覆盖不同的失败案例则依赖于偶然性:过程中没有任何机制推动新候选去解决先前候选遗漏的样本。在智能体系统中,这一点尤其脆弱:早期规划中的随机性会沿着长推理轨迹传播,因此高温采样会生成同一条路径的噪声变体而非互补解决方案,并引入不稳定的推理、虚假连接和方言错误,从而降低候选池质量[32]。因此,Pass@K趋于平稳,额外的候选带来的收益甚微。
为了解决这个问题,我们引入**DivSkill-SQL**,一种残差技能优化框架,将候选互补性作为明确的优化目标,而非依赖启发式或偶然性。一个**技能**是一个高级指令文件,控制智能体的分解风格、模式探索策略、起草逻辑和修复逻辑;**DivSkill-SQL**完全在此提示层面运行,无需模型微调。从基础技能开始,**DivSkill-SQL**在训练集上评估智能体,识别未解决的样本,并使用反思式提示优化[1]专门针对这部分残差精炼一个新技能;它逐轮重复,直到学习到K个互补技能。新技能不必在全局上优于其前身;只有当它能恢复前身遗漏的样本时才有用。在推理时,**DivSkill-SQL**运行每个学到的技能,并通过成对比较[29]从生成的候选集中选择一个最终SQL。每个技能都训练为覆盖其他技能遗漏的部分,因此集成不是靠偶然而是通过构建具有互补性。

我们在最近四个方言的文本到SQL基准测试上评估**DivSkill-SQL**:Spider2-Lite(分属SQLite、Snowflake和BigQuery)和BIRD-Critic(PostgreSQL)。**DivSkill-SQL**在Spider2-Lite上比最强集成基线在Snowflake上提高最多**+11.1**个点,在BigQuery上提高**+8.3**个点,并且在两个基础模型(Opus-4.6和GPT-5.4)上保持一致提升。在单一方言(Snowflake)的标准文本到SQL上优化得到的技能无需重新训练即可迁移到BigQuery和SQLite。此外,为标准文本到SQL优化的技能也能泛化到BIRD-Critic的调试式生成设置,**DivSkill-SQL**将准确率提升了**+2.6**个点。错误分析显示,幻觉式模式引用和不支持函数调用减少多达**3×**,工具使用轨迹分析表明,**DivSkill-SQL**将智能体行为中的冗余度降低了**19%**–**28%**,相比同一智能体的重复运行,产生了更多样化的模式检查、分解、起草、执行和修复模式。我们的贡献如下:
- • 我们将文本到SQL集成形式化为对智能体技能的残差Pass@K优化,目标在于学习覆盖不同失败模式的互补行为。
- • 我们提出**DivSkill-SQL**,一个残差技能优化框架,无需模型微调或高温采样即可改进候选集覆盖。
- • 我们证明,每个新技能在未解决样本上的优化直接针对其对Pass@K的边际贡献。
- • 我们在最新文本到SQL基准测试和四种SQL方言上评估**DivSkill-SQL**,展示准确率的提升和智能体轨迹中冗余度的降低。
## 2 相关工作
#### Pass@K优化
Pass@K衡量模型在K个样本中是否至少产生一个正确解[5],近年被采纳为优化目标。Yue等人[45]表明,使用可验证奖励的强化学习能提高Pass@1但不能提高Pass@K:训练降低了输出多样性,使得基础模型支持以外难解的问题保持不变。这促使直接优化多样性,几项工作通过策略优化[6, 36, 43]追求这一目标。然而,这些方法都需要参数更新,限制了它们只能用于开放权重模型以及改进单个模型的输出分布。我们的方法则在不进行参数更新的情况下学习K个互补技能,通过集成构造同时改进开放和封闭模型的Pass@K。
#### 技能与提示优化
提示强烈影响LLM行为[3],这激发了从任务反馈而非手工设计中自动优化提示的方法。早期工作优化离散触发词或文本提示[33],而近期方法使用LLM迭代地提出、评估和修改提示[52, 40, 1]。增强式提示集成[28]也通过添加针对当前集成不确定或错误样本的少样本提示来优化提示集成。除了简短提示和少样本示例外,智能体系统越来越多地使用**技能**:模块化的指令文件,编码任务策略、约束和工具使用策略[47]。近期工作探索了能够自我重写技能的智能体[51]、联合优化技能与模型参数[38],或随时间演变和重用技能[24, 48, 49]。我们的工作遵循这一方向,但以集成构建为目标:不是学习一个强大的技能,而是学习互补的技能,以处理不同的失败模式并提高集成的Pass@K。
#### 文本到SQL
早期基于LLM的文本到SQL方法通过提示单个模型直接生成SQL[10, 34, 17, 18, 4]。近期系统使用基于智能体的管道,将任务分解为模式剪枝、证据提取、SQL生成、执行和精炼[30, 12, 37, 35, 39, 8, 50]。一些工作进一步通过集成提高性能[29, 9, 41, 22, 15, 13]:CHASE-SQL从不同提示生成候选并通过锦标赛选择其中之一[29];MARS-SQL使用强化学习训练多智能体系统[41, 23, 46];XiYan-SQL微调多个生成器以诱导多样性[22, 42]。相比之下,我们的方法不需要权重修改或手工设计的集成。我们优化技能以显式构建互补生成器,提高Pass@K覆盖,同时适用于开放和封闭LLM。
## 3 方法
### 3.1 设置与符号
#### 带智能体执行的文本到SQL。
文本到SQL实例是一个对 \((q, \mathcal{D})\),包含自然语言问题 \(q\) 和一个关系数据库 \(\mathcal{D}\),目标是生成一个可执行的SQL查询,其在 \(\mathcal{D}\) 上的执行结果与黄金参考匹配。我们遵循近期文本到SQL系统[35, 9]的智能体执行范式:一个**智能体**不是通过单次前向传递生成SQL,而是在多步中交错工具调用(如检查模式、采样行、起草候选SQL、修复错误),最终返回一条查询。
#### 技能。
我们通过**技能**来调节智能体的行为。一个技能 \(s\) 是一个高级指令文件(以自然语言表达的系统提示),控制智能体的推理和工具使用策略:倾向于哪种分解风格、何时探索模式与直接起草、遇到执行错误时采用哪些修复模式等。我们将用技能 \(s\) 装备的智能体记为 \(a_s\),并将技能 \(s\) 视同其提示 \(\pi_s\),因此优化空间 \(\mathcal{S}\) 是自然语言指令文件的空间。两个不同的技能会为同一输入产生两种真正不同的智能体轨迹,而不仅仅是同一轨迹的两次随机样本。
###### 示例 3.1(技能示例)。
下面展示两个简化技能,它们的差异不仅在于措辞,还在于它们鼓励的智能体轨迹:`decompose` 技能推迟最终SQL生成,直到查询逻辑被分解为经过验证的子组件;而 `direct_coder` 技能则推动智能体尽早起草并依赖执行反馈进行快速修复。
**decompose 技能**
将复杂问题分解为简单子查询,自底向上构建。
1. 将问题解析为原子需求。
2. 将每部分构建为独立的CTE。
3. 使用WITH...SELECT将CTE组合为最终查询。
**direct_coder 技能**
你是一个高效的SQL编写者。快速编写SQL,测试,迭代。
1. 仔细阅读问题。识别核心表、连接和聚合。
2. 基于模式立即写出你最好的SQL尝试。
3. 执行它。如果出现错误,仔细阅读错误信息并修复。
#### 符号。
设 \(\mathcal{X}\) 表示输入任务 \((q,\mathcal{D})\) 的空间,\(P\) 为底层任务分布。对于技能 \(s \in \mathcal{S}\),记 \(p_s(x) \in [0,1]\) 为智能体 \(a_s\) 在输入 \(x \in \mathcal{X}\) 上单次执行产生正确SQL查询(即执行结果与黄金参考匹配的查询)的概率。对于有限训练集 \(D_{\mathrm{train}} \subseteq \mathcal{X}\) 和子集 \(R \subseteq D_{\mathrm{train}}\),记 \(\hat{p}_s(R) = \frac{1}{|R|}\sum_{x \in R} p_s(x)\) 为技能 \(s\) 在 \(R\) 上的经验成功率。对于由 \(K\) 个技能组成的集合 \(A = \{ s_1, \ldots, s_K \}\),总体 Pass@K,定义为至少一次智能体执行成功的概率,为
\[
\operatorname{Pass@K}(A) = \mathbb{E}_{x \sim P} \left[ 1 - \prod_{j=1}^{K} \bigl(1 - p_{s_j}(x)\bigr) \right].
\]
### 3.2 残差技能优化
#### 残差原理。
如图1所示,我们构建一个由相似文章
SkillOpt:自我进化智能体技能的执行策略
SkillOpt 引入了一种系统化的文本空间优化器,用于智能体技能。该优化器将技能训练为智能体的外部状态,具有稳定的更新和零部署推理开销,在多个基准测试和执行环境中实现了卓越性能。
@Yif_Yang: 介绍 SkillOpt — 一个面向智能体技能的优化器。不再微调模型权重,而是将自然语言…
介绍 SkillOpt,一个将自然语言技能视为可训练外部参数而非微调模型权重的优化器。它通过有界编辑和验证门控实现稳定、可控的技能更新,在 7 个模型的 6 个基准测试的 52 个设置中取得最佳或并列最佳结果。
SkillRet:面向 LLM 智能体技能检索的大规模基准
本文提出了 SkillRet,这是一个用于评估 LLM 智能体技能检索的大规模基准,旨在解决从大型技能库中选择相关技能的挑战。该基准提供了包含超过 17,000 项技能的 dataset,并证明针对特定任务的微调能显著提升检索性能。
SkillOpt 将 markdown 技能文件视为可训练参数并配备适当的优化机制
一篇新论文通过将 markdown 技能文件视为可训练参数并使用经过保留集验证的有界编辑,将智能体的技能优化形式化。该方法在不同模型间迁移良好,并提升了程序化基准测试的性能。
SkillFlow:流程驱动的递归技能演化用于智能体编排
SkillFlow 提出了一种基于流程驱动的递归技能演化框架,用于基于大语言模型的智能体编排,采用 Tempered Trajectory Balance 来防止策略崩溃并提供透明的信用分配。在 14 个数据集上的实验表明,在问答、数学、代码和决策制定任务中,该框架显著优于基线方法。