通过SFT和DPO学习Text-to-SQL的推理时机

arXiv cs.CL 论文

摘要

提出了AutoThinkSQL,一个将自动思考机制集成到Text-to-SQL的SFT和DPO中的框架,使模型能够动态跳过简单查询的推理,并对复杂查询调用深度CoT,在Spider和BIRD基准测试上取得提升,同时将输出token减少24.6%,延迟减少17.1%。

arXiv:2607.22622v1 公告类型:新 摘要:最近的Text-to-SQL方法严重依赖以推理为中心的范式,如思维链(CoT),在复杂基准测试上取得了显著提升,但牺牲了高昂的推理时间开销。然而,大量现实世界的查询是简单的查找或聚合操作,无需多步推理即可解决,强制推理会造成浪费。因此,我们提出了AutoThinkSQL,一个将自动思考机制集成到Text-to-SQL的监督微调(SFT)和直接偏好优化(DPO)中的框架。我们的方法使模型能够动态绕过简单查询的推理,同时对复杂查询调用深度CoT。在Qwen3-Coder-30B-A3B上,与最佳对比基线相比,我们的方法在Spider和BIRD基准测试上均取得了一致的提升,同时与仅使用CoT的生成相比,平均输出token分别减少了24.6%和18.3%,平均延迟分别减少了17.1%和11.5%。进一步分析表明,模型学会了将其推理决策与查询难度对齐。
查看原文
查看缓存全文

缓存时间: 2026/07/28 06:27

# 通过 SFT 和 DPO 学习 Text-to-SQL 中何时进行推理  
来源:https://arxiv.org/html/2607.22622  

**Soohyuk Jang¹, Jiheum Yeom¹, Nohil Park¹, Sang Hun Kim², Yoonyoung Choi², Kiwook Bae², Sungroh Yoon¹,³**  

¹首尔大学电气与计算机工程系  
²三星电子AI中心  
³首尔大学AIIS, ASRI, INMC, ISRC, IPAI  

{soohyuk.jang, quilava1234, pnoil2588, sryoon}@snu.ac.kr  
{phd.kim, yy45.choi, kiwook.bae}@samsung.com  

###### 摘要  

近期Text-to-SQL方法严重依赖以推理为中心的范式(如思维链CoT),在复杂基准上取得了显著收益,但代价是高昂的推理时间开销。然而,现实世界中大量查询是简单的查找或聚合,无需多步推理即可解决,强制进行推理反而造成浪费。为此,我们提出**AutoThinkSQL**,一个将自动思考机制集成到Text-to-SQL的监督微调(SFT)和直接偏好优化(DPO)中的框架。我们的方法使模型能够动态地绕过简单查询的推理,同时为复杂查询调用深度CoT。在Qwen3-Coder-30B-A3B上,我们的方法在Spider和BIRD基准上均持续超越最佳对比基线,同时与仅CoT生成相比,平均输出token分别减少24.6%和18.3%,平均延迟分别降低17.1%和11.5%。进一步分析表明,模型学会了将其推理决策与查询难度对齐。  

## 1 引言  

Text-to-SQL将自然语言问题翻译成可执行的SQL查询,为关系数据库提供直观的接口(Li et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib29), 2024 (https://arxiv.org/html/2607.22622#bib.bib30); Pourreza and Rafiei, 2023 (https://arxiv.org/html/2607.22622#bib.bib1); Liu et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib23); Hui et al., 2024 (https://arxiv.org/html/2607.22622#bib.bib19))。虽然大语言模型(LLMs)推动了该领域的重大进展,但近期最先进的方法严重依赖以推理为中心的学习范式,这些范式由强化学习(RL)(Yao et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib24); Ma et al., 2026 (https://arxiv.org/html/2607.22622#bib.bib25); Pourreza et al., 2025b (https://arxiv.org/html/2607.22622#bib.bib31))和思维链(CoT)提示(Pourreza and Rafiei, 2023 (https://arxiv.org/html/2607.22622#bib.bib1))驱动。通过显式生成中间逻辑步骤,这些方法有效弥合了复杂用户意图与复杂数据库模式之间的语义鸿沟,在挑战性基准上取得了显著的准确率提升(Pourreza et al., 2025b (https://arxiv.org/html/2607.22622#bib.bib31); Yao et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib24); Ma et al., 2026 (https://arxiv.org/html/2607.22622#bib.bib25))。然而,这种对冗长推理轨迹的依赖引入了关键的推理时间瓶颈。这一点尤为棘手,因为现实世界中很大一部分Text-to-SQL查询是简单的查找或单表聚合,可以通过直接的模式链接解决(Yu et al., 2018 (https://arxiv.org/html/2607.22622#bib.bib20); Li et al., 2023 (https://arxiv.org/html/2607.22622#bib.bib21))。强制模型为这些查询生成大量推理轨迹不仅浪费推理预算,还可能引入语法噪声和幻觉(Liu et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib23); Sprague et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib27))。这促使我们设计一种训练策略,既保留CoT在复杂查询上的准确率优势,又避免其在简单查询上的推理成本。  

为解决这一问题,我们引入**AutoThinkSQL**,一个新颖的框架,将自适应自动思考机制(Lou et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib11); Tu et al., 2026 (https://arxiv.org/html/2607.22622#bib.bib14))集成到Text-to-SQL领域。我们的方法赋予LLM固有能力,使其能够为简单查询跳过CoT,仅保留给复杂推理任务。我们通过SFT和DPO(Rafailov et al., 2023 (https://arxiv.org/html/2607.22622#bib.bib32))的两阶段训练流程实现这一点。在Qwen3-Coder-30B-A3B(Qwen Team, 2025 (https://arxiv.org/html/2607.22622#bib.bib22))上评估时,我们的自动思考SFT在大多数设置中持续超越其仅CoT对应物的执行准确率,同时显著减少了推理的平均token数和延迟。  

我们的主要贡献有三点:  

- **持续增益**:AutoThinkSQL 在两种解码模式下均在 Spider 和 BIRD 上实现了强性能,而单一模式基线在至少一种设置中存在明显弱点。  
- **推理效率**:与仅 CoT(SFT+DPO)对应物相比,AutoThinkSQL 在 Spider 上将平均输出 token 减少 24.6%,在 BIRD 上减少 18.3%;在 Spider 上将平均延迟降低 17.1%,在 BIRD 上降低 11.5%,在不牺牲准确率的情况下显著降低了推理时间成本。  
- **路由分析**:我们分析了模型的推理激活模式,并验证了 AutoThinkSQL 能根据难度自适应地路由查询,确认效率提升反映了与查询复杂度有意义的对齐行为。  

## 2 相关工作  

先前关于基于LLM的Text-to-SQL的工作大致分为两类。一类通过提示工程和推理时推理利用专有LLM而不更新参数,包括模式链接分解(Pourreza and Rafiei, 2023 (https://arxiv.org/html/2607.22622#bib.bib1))、上下文示例选择(Gao et al., 2024 (https://arxiv.org/html/2607.22622#bib.bib2))、多智能体协作(Wang et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib4); Talaei et al., 2024 (https://arxiv.org/html/2607.22622#bib.bib5))以及多路径候选选择(Pourreza et al., 2025a (https://arxiv.org/html/2607.22622#bib.bib6))。另一类则微调开源LLM以缩小与专有模型的差距,方法包括增量预训练(Li et al., 2024 (https://arxiv.org/html/2607.22622#bib.bib30))、大规模合成SFT(Li et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib29))、基于DPO的对齐(Yang et al., 2024 (https://arxiv.org/html/2607.22622#bib.bib7))以及带推理轨迹的RL(Pourreza et al., 2025b (https://arxiv.org/html/2607.22622#bib.bib31))。尽管这些微调方法有效,但它们强制对所有查询进行思维链推理,而不考虑查询难度,从而在即使可以通过多步推理解决的查询上也膨胀了推理时的token预算。  

另一项关于自适应推理的并行工作训练模型决定何时调用CoT,使用SFT后接PPO(Lou et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib11); Schulman et al., 2017 (https://arxiv.org/html/2607.22622#bib.bib28))或基于GRPO的RL(Zhang et al., 2025 (https://arxiv.org/html/2607.22622#bib.bib12); Fang et al., 2026 (https://arxiv.org/html/2607.22622#bib.bib13); Tu et al., 2026 (https://arxiv.org/html/2607.22622#bib.bib14))。然而,这些方法通常针对数学和通用推理,据我们所知,尚无先前工作训练Text-to-SQL模型自适应地决定何时推理。作为最接近的尝试,Tai et al. (2023 (https://arxiv.org/html/2607.22622#bib.bib15))观察到详细推理可能会放大简单SQL查询上的错误,但仅提供了提示级别的修复,未在训练中解决该问题。  

## 3 方法论  

### 3.1 问题形式化  

给定一个自然语言问题、一个数据库模式以及外部知识,Text-to-SQL任务旨在生成一个有效的SQL查询。我们将包含这三者的输入记为 \(x\)(图2 (https://arxiv.org/html/2607.22622#A3.F2)),并引入模式特定格式提示 \(p_m\) 来规定输出结构。具体来说,\(p_{\text{NC}}\) 指示模型直接生成SQL而不进行推理(图4 (https://arxiv.org/html/2607.22622#A5.F4)),\(p_{\text{C}}\) 要求在最终SQL之前进行逐步推理(图3 (https://arxiv.org/html/2607.22622#A3.F3)),而 \(p_{\text{Auto}}\) 指示模型首先评估查询复杂度,然后要么直接生成SQL,要么在SQL之前生成推理链(图5 (https://arxiv.org/html/2607.22622#A5.F5))。给定 \(x\) 和提示 \(p_m\),模型产生响应 \(y_m\),即 \((x, p_m) \rightarrow y_m\)。  

### 3.2 自动思考SFT  

#### 数据构建。  
对于每个BIRD训练实例 \(x\),我们在每种模式特定格式提示下执行 \(16\) 次独立 rollout:  
\((x, p_{\text{NC}})\) 得到 \(\{ y_{\text{NC}}^{(i)} \}_{i=1}^{16}\),  
\((x, p_{\text{C}})\) 得到 \(\{ y_{\text{C}}^{(i)} \}_{i=1}^{16}\)。  
令 \(N_{\text{C}}\) 和 \(N_{\text{NC}}\) 分别表示每种模式下的正确输出数量。训练模式 \(m^*\) 分配如下:  

\[
m^* = 
\begin{cases} 
\text{NC} & \text{若 } N_{\text{NC}} = 16 \\
\text{C} & \text{若 } N_{\text{NC}} < 16 \land N_{\text{C}} > 0 \\
\text{丢弃} & \text{否则}
\end{cases}
\]

对于每个标注实例,从模式 \(m^*\) 中均匀采样一个正确的 rollout,得到 \(y_{m^*}\)。然后,将对 \(((x, p_{\text{Auto}}), y_{m^*})\) 添加到 \(\mathcal{D}_{\text{SFT}}\)。尽管 rollout 是在 \(p_{\text{NC}}\) 和 \(p_{\text{C}}\) 下收集的,但 SFT 输入始终与 \(p_{\text{Auto}}\) 组合,因此模型学会自主产生适当的输出风格。  

#### 训练目标。  
模型通过最小化 \(\mathcal{D}_{\text{SFT}}\) 上的标准负对数似然进行微调:  

\[
\mathcal{L}_{\text{SFT}}(\theta) = 
- \mathbb{E}_{((x, p_{\text{Auto}}), y) \sim \mathcal{D}_{\text{SFT}}} 
\sum_{t=1}^{|y|} \log p_\theta(y_t \mid x, p_{\text{Auto}}, y_{<t})
\]

**匹配内容:**  
外部知识:  
问题:  
[格式指令]  

图2:SFT和DPO训练实例的共享提示模板。  

**格式指令 (CoT)**  
{internallinenumbers*}  
请逐步思考并在 [SQL] 和 [/SQL] 之间输出最终 SQL 查询。  

图3:仅CoT格式指令。  

## 附录D 许可证  

我们在表5 (https://arxiv.org/html/2607.22622#A2.T5) 中列出了本工作中使用的所有科学工件的许可证和来源。所有工件均在允许研究使用的宽松许可下公开发布,我们的使用符合其预期目的。  

## 附录E AI助手的使用  

我们使用了AI助手(ChatGPT、Claude和Gemini)进行写作辅助(语法、措辞和翻译)以及编码支持(调试和样板代码)。所有研究想法、实验设计和分析均由作者完成,所有AI辅助内容均经过审查和验证。  

**格式指令 (No-CoT)**  
请只输出最终 SQL 查询,以关键字 `SELECT` 开头。  

图4:仅No-CoT格式指令。  

**格式指令 (AutoThinkSQL)**  
格式指令:  
{internallinenumbers*}  
分析问题、数据库模式和外部知识以确定如何编写 SQL 查询。  
首先,评估问题的复杂度。  
{internallinenumbers*}  
如果是简单问题:不提供任何推理或解释。直接在 [SQL] 和 [/SQL] 标签内输出最终 SQL 查询。  
{internallinenumbers*}  
如果是需要思考的困难问题:首先以纯文本形式写下详细的推理和分析过程。充分思考问题后,在最后提供包含在 [SQL] 和 [/SQL] 标签内的最终 SQL 查询。  
输出格式:  
(对于简单问题)  
[SQL]你的SQL语句[/SQL]  
(对于困难问题)  
你的推理过程  
[SQL]你的SQL语句[/SQL]  

图5:自动思考格式指令。

相似文章

结构化思维:改进推理与上下文剪枝

arXiv cs.CL

本文介绍了结构化思维(Structured Thoughts),这是一个将大语言模型推理过程组织成交替的<try>和<outcome>块的框架,实现了上下文剪枝,并在推理基准测试上将性能提升高达8.08%,同时节省了85%的内存。

面向低资源开源Text-to-SQL模型的知识蒸馏

arXiv cs.CL

本文提出了一种知识感知的Text-to-SQL框架,利用知识蒸馏在低资源环境下通过构建任务特定的知识库并生成合成训练数据来提升性能。在七个基准上的实验表明,该方法带来了显著的改进,尤其是对于开源模型。