← 返回 2026-05-11

R³-SQL:通过排序奖励与重采样改进Text-to-SQL R^3-SQL: Ranking Reward and Resampling for Text-to-SQL

Hojae Han, Yeonseok Jeong, Seung-won Hwang, Zhewei Yao, Yuxiong He 📅 2026-04-28 👍 3 2026-07-13 08:36
LLM排序 Text-to-SQL 执行一致性 推理时扩展 重采样

用分组排序与按需重采样,同时解决Text-to-SQL中功能不一致与有界召回两大瓶颈。

前置知识

generate-then-rank范式

现代LLM-based Text-to-SQL系统的标准流程:先用LLM对同一问题采样多个候选SQL(temperature较高),再用ranker从中选出最佳候选。这种范式承认单次生成不可靠,但正确性最终取决于候选池质量与排序能力。

R³-SQL是对该范式内部瓶颈的系统性改进,必须先理解为什么需要排序、排序信号从何而来,才能体会本文提出的分组排序与重采样为何有效。

Bradley–Terry偏好模型

经典的成对比较统计模型:两选项 $i,j$ 中 $i$ 胜出的概率为 $P(i \succ j) = \sigma(r_i - r_j)$,其中 $r_i,r_j$ 为潜在能力分,$\sigma$ 是sigmoid函数。本文的pairwise ranker本质上是这种偏好的学习器。

R³-SQL用Bradley–Terry形式把成对偏好聚合成组级得分 $P(g_i \succ g_j)$,理解这一形式才能看懂Eq.(1)-(3)中cross-group preference的来源。

执行准确率(EX)

Text-to-SQL官方指标:把生成的SQL在SQLite上执行,看结果是否与ground-truth执行结果完全一致。只比较结果不看SQL形式,所以存在多个不同SQL产出相同结果的情况。

EX对执行等价不敏感的特性,正是R³-SQL提出"按执行结果分组"思路的基础——既然EX只看执行,那么ranker也应当在执行等价类内部给出一致评分。

GRPO强化学习

Group Relative Policy Optimization,一种无需critic的RL算法,通过组内归一化优势估计优化策略。本文用GRPO训练listwise ranker,并加入position-consistency奖励来对抗位置偏置。

理解GRPO才能读懂R3-7B的训练机制,特别是Eq.(6)中 $R=R_{\text{base}}+\lambda_c R_c$ 的组合奖励是如何在GRPO框架中反向传播的。

研究动机

现有Text-to-SQL排序方法存在两个根本缺陷。第一是"功能不一致(functional inconsistency)":点对点(pointwise)排序器对表面形式不同但执行结果相同的SQL给出不一致分数,导致正确答案被同组错误答案压过。例如图1中s2和s4都正确,但点对点ranker把错误候选s3排到第一;列表式(listwise)ranker和按组大小投票(FMV)也都把大但错误的组G1排到第一。第二是"有界召回(bounded recall)":再聪明的ranker也无法在缺失正确SQL的候选池中救回正确答案。在BIRD-dev上,原始32个候选的召回上限仅78.80%(Table 5),意味着即便用理想ranker也只能拿到约79%的EX。作者在论文Figure 1中用一个6候选示例直观展示了这两个问题:所有基线方法都把大组G1排在前面,正确的G2被压制。

本文的目标是本文的目标是设计一个统一的Text-to-SQL排序框架,同时解决功能不一致和有界召回两个限制,最终在BIRD-dev等公开基准上达到已披露模型规模下的SOTA执行准确率。具体而言,要在不显著增加推理成本的前提下,把BIRD-dev EX从最强基线(CHASE-SQL的73.34%)提升到75%以上,并在5个基准(BIRD-dev、Spider-test、Spider-DK、EHRSQL、ScienceBenchmark)上保持一致优势。

与已有工作不同的是,R³-SQL的独特切入角度是把"排序"与"重采样"用统一的奖励建模框架协同处理。功能不一致方面,区别于现有FMV(XiYan-SQL、OpenSearch-SQL、CSC-SQL)只按组大小排序,本文提出组级评分,把跨组成对偏好 $r_{\text{list}}$ 与组内点对点效用 $r_{\text{point}}$ 用lexicographic方式结合,再用 $r_{\text{point}}$ 作位置无关锚点打破listwise的次序偏置。有界召回方面,区别于CHASE-SQL只做语法级refine、Agentar-Scale-SQL无条件resample、CSC-SQL对top-2组盲目revise,本文引入agent $f$ 进行"判断-触发"式resampling:仅在 $f(S)=0$ 时才用更大集合 $\tilde{S}$($m=1024$)替换原池 $S$,并用点对点ranker筛top-n。这一触发式机制带来3.92 pp的召回上限提升。

核心方法

R³-SQL采用"探索-利用"两阶段框架:探索阶段用agentic resampling扩大候选召回,利用阶段用groupwise ranking在执行等价类内部精准挑选。直觉上,既然EX只看执行结果,那么排序的单位应该是"执行结果"而不是"SQL字符串";既然ranker有上限,那么应当给candidate pool留二次挽救机会。技术路线上,R³-SQL首先用Arctic-Text2SQL-R1-32B在 $T=0.8$ 下生成32个候选 $S$,agent $f$ 决定是否替换为1024候选的重采样池 $\tilde{S}$;然后把所有SQL按执行结果分组 $G=\{g_1,\dots,g_M\}$,在每个组内计算点对点最高分作为锚 $u(g)$,组间用pairwise ranker $r_{\text{list}}$ 估计偏好,再用组大小 $|g|$ 加权;最后按 $(r_{\text{list}}, r_{\text{point}})$ 字典序排序、取top-1执行组中点对点rank最高的SQL。

R³-SQL最核心的创新是把"排序粒度"从SQL提升到"执行结果组",并把组间成对比较与组内点对点效用通过lexicographic组合。这一做法与Bradley–Terry模型天然契合:把每次pairwise比较看作对组级潜在分数 $r_i$ 的有噪观测,仅在偏好概率 $P(g_i \succ g_j) \geq \tau$(论文固定 $\tau=0.05$)时记为决定性投票。第二个本质区别是引入按需resampling的agent:agent $f$ 对初始池 $S$ 输出 $f(S) \in \{0,1\}$,仅在0时丢弃 $S$ 并用更大的 $\tilde{S}$ 替换,再由pointwise ranker筛出top-$n$ 个,这一机制把无差别扩展转为"针对性扩展"。第三个区别是position-consistency奖励:在GRPO基础上对每对正负样本 $(s^+,s^-)$ 同时按原序和反序呈现,要求决策一致,奖励为 $R_{\text{base}}+\lambda_c R_c$($\lambda_c=0.5$),把listwise ranker对输入顺序的敏感度从45.60%提升到57.49%(+11.89 pp)。

方法步骤详情

R³-SQL的完整流程分四步。第一步(initial pool generation):用Arctic-Text2SQL-R1-32B在 $T=0.8$ 下对每个问题生成 $n=32$ 个候选SQL $S=\{s_1,\dots,s_n\}$,prompt模板要求在标签内做chain-of-thought推理。第二步(agentic resampling):用LLM agent $f$(本文用Arctic-Text2SQL-R1-32B的SFT版本)观察问题、schema、候选SQL及其执行预览,按Figure 8/9的system prompt输出JSON决策 $\{\text{likely\_has\_correct}, \text{confidence}, \text{reason\_tags}\}$;若 $f(S)=0$,则生成 $m=1024$ 个新候选 $\tilde{S}$,用pointwise ranker $R_3$-POINT-32B对其打分并保留top-$n=32$ 个,丢弃原 $S$;若 $f(S)=1$ 则保留 $S$。第三步(groupwise ranking):对最终候选池 $S$(或 $\tilde{S}$)全部执行,按执行结果分组得到 $G=\{g_1,\dots,g_M\}$,每个组计算点对点最高分 $u(g)=\max_{s\in g}RR(s)$ 与组大小 $|g|$,得到 $r_{\text{point}}(g)=|g|\cdot u(g)$;组间用pairwise ranker $R_3$-7B(基于OmniSQL-7B+GRPO+consistency reward训练)逐一比较来自不同组的代表样本,按Bradley–Terry概率 $P(g_i \succ g_j)=\sigma(r_i-r_j)$ 聚合,阈值 $\tau=0.05$ 过滤后累加得到 $r_{\text{list}}(g_i)$。第四步(selection):按 $(r_{\text{list}}, r_{\text{point}})$ 字典序对 $G$ 排序,取top-2组 $\{g_1,g_2\}$,若 $P(g_1 \succ g_2)>0.5$ 则选 $g_1$,否则选 $g_2$;最终输出该组中pointwise rank最高的SQL。

技术新颖性

技术上,R³-SQL有三个相对前作的新颖点。第一,把FMV(Functional Majority Voting)从"硬规则"升级为"软融合":FMV只看 $|g|$,本文把 $|g|$ 吸收进 $r_{\text{point}}(g)=|g|\cdot u(g)$ 作为tie-breaker,主排序仍由pairwise $r_{\text{list}}$ 决定。这一设计在Table 4中得到验证:单独Listwise得73.34、单独Pointwise 73.14、组合R³-SQL 75.03,融合带来的提升在in-domain上+1.69 pp。第二,把信息检索中bound recall的概念显式引入Text-to-SQL,并通过LLM agent实现"判断+扩展"的闭环检索范式,对应信息检索领域的cascade ranking和resampling文献(Wang et al. 2011, Rathee et al. 2025等)。第三,把position-invariance目标显式加入GRPO奖励 $R=R_{\text{base}}+\lambda_c R_c$:每对正负样本按原序与反序各评一次,只有两次都正确才给全额奖励,把listwise ranker的输入顺序一致性从57.49%扩展为端到端EX提升。

Groupwise Ranking by R³-SQL
Figure 2: Groupwise Ranking by R³-SQL
Prompt for the Initial Pool Generation stage
Figure 6: Prompt for the Initial Pool Generation stage
Full input prompt for the LLM agent f for resampling decision
Figure 9: Full input prompt for the LLM agent f for resampling decision

实验结果

Table 2显示,R³-SQL在5个基准上均取得最高EX:BIRD-dev 75.03、Spider-test 87.19、Spider-DK 77.92、EHRSQL 46.30、ScienceBenchmark 66.82,平均70.65%,是唯一突破70%天花板的方法,且相比最强基线CHASE-SQL(68.70%)平均提升+1.95 pp。Table 3揭示功能不一致缓解:Contextual-SQL在执行等价的SQL之间分数方差达0.8571,R³-SQL通过执行组评分把方差归零,单是这一步把EX从73.14提升到73.47;再加入listwise ranker后进一步提升到75.03。Figure 3展示了跨4个随机种子的稳定性:R³-SQL最低单次73.99%,仍高于所有基线的最高单次(CHASE-SQL 73.27%)。Table 5是召回分析的关键证据:去掉agentic resampling后候选召回上限平均从82.72%降到78.80%(-3.92 pp),说明agent成功识别了37.01%的查询并触发了重采样。Table 9的消融显示每个组件都贡献显著:无agentic resampling -0.78 pp、无pointwise pruning -0.33 pp、无execution grouping -0.45 pp、无pointwise ranker -0.58 pp、无listwise ranker -0.78 pp。Table 10证明重采样策略选Replace $(m>n)$ 比Union和Always都更优(75.03 vs 73.92 vs 74.32)。Table 11给出agent决策质量:触发重采样的precision 93.27%、recall 56.02%,跳过重采样的precision 31.22%、recall 83.17%,整体F1 70.00%。Table 8显示计算开销:R³-SQL每查询1.56秒(8×H200),比CHASE-SQL(1.68秒)还快0.12秒,因为只对distinct execution group做listwise比较。Table 17在Spider2.0-SQLite上R³-SQL达29.17%,远超CSC-SQL的12.50%和CHASE-SQL的20.83%,证明在更现实的schema设置下框架仍然有效。

Comparison of recent Text-to-SQL systems on BIRD-dev
Table 1: Comparison of recent Text-to-SQL systems on BIRD-dev
EX comparison of different selection methods across five benchmarks
Table 2: EX comparison of different selection methods across five benchmarks
Functional inconsistency mitigation by R³-SQL on BIRD-dev
Table 3: Functional inconsistency mitigation by R³-SQL on BIRD-dev
Comparison of group scoring strategies across five benchmarks
Table 4: Comparison of group scoring strategies across five benchmarks
Bounded recall mitigation by R³-SQL's agentic resampling
Table 5: Bounded recall mitigation by R³-SQL's agentic resampling
Position bias mitigation in R³-SQL's listwise ranker via consistency reward
Table 6: Position bias mitigation in R³-SQL's listwise ranker via consistency reward
Position bias mitigation by R³-SQL's pointwise ranker on BIRD-dev
Table 7: Position bias mitigation by R³-SQL's pointwise ranker on BIRD-dev
Computational overhead and performance trade-off of SQL selection methods on BIRD-dev
Table 8: Computational overhead and performance trade-off of SQL selection methods on BIRD-dev
Ablation study of R³-SQL on BIRD-dev
Table 9: Ablation study of R³-SQL on BIRD-dev
Effect of agentic resampling in R³-SQL on BIRD-dev EX
Table 10: Effect of agentic resampling in R³-SQL on BIRD-dev EX
Precision, recall, and F1-score of Agent f on resampling decisions
Table 11: Precision, recall, and F1-score of Agent f on resampling decisions
Performance on in-domain and out-of-domain datasets w.r.t. the ranker's training distribution
Table 12: Performance on in-domain and out-of-domain datasets w.r.t. the ranker's training distribution
EX stability across 4 random seeds on BIRD-dev
Figure 3: EX stability across 4 random seeds on BIRD-dev
Execution accuracy of R³-SQL on BIRD-dev across the threshold τ in Eq. (2)
Figure 4: Execution accuracy of R³-SQL on BIRD-dev across the threshold τ in Eq. (2)
查看结构化数据
任务指标本文基线提升
BIRD-dev (跨域SQL生成) EX (%) 75.03 Contextual-SQL 73.14 / CHASE-SQL 73.34 / XiYan-SQL 72.03 / CSC-SQL 71.58 +1.69-3.45 pp,披露模型规模SOTA
Spider-test EX (%) 87.19 Contextual-SQL 86.36 / CHASE-SQL 86.18 / XiYan-SQL 85.89 / CSC-SQL 86.64 +0.55-1.30 pp
Spider-DK (领域知识扩展) EX (%) 77.92 Contextual-SQL 75.50 / CHASE-SQL 75.94 / XiYan-SQL 75.28 / CSC-SQL 76.97 +0.95-2.64 pp
EHRSQL (医疗领域OOD) EX (%) 46.30 Contextual-SQL 41.41 / CHASE-SQL 44.44 / XiYan-SQL 43.43 / CSC-SQL 41.04 +1.86-5.26 pp
ScienceBenchmark (科学领域OOD) EX (%) 66.82 Contextual-SQL 63.13 / CHASE-SQL 63.59 / XiYan-SQL 63.59 / CSC-SQL 56.68 +3.23-10.14 pp
Spider2.0-SQLite (企业级现实场景) EX (%) 29.17 Contextual-SQL 16.67 / CHASE-SQL 20.83 / XiYan-SQL 16.67 / CSC-SQL 12.50 +8.34-16.67 pp,难度极高场景下提升尤其显著

局限与改进

作者在Limitation小节明确指出,R³-SQL的领域泛化性受限于pointwise ranker R3-POINT-32B的训练数据——它基于Contextual-RM-32B,仅在BIRD-train上微调,导致在EHRSQL等OOD基准上仅比w/o R3-POINT-32B变体高0.46-0.67 pp,pointwise组件实际构成out-of-domain的瓶颈。Table 12验证了这一点:去掉R3-POINT-32B后,OOD平均从56.56%反而上升到57.13%。另一个隐含限制是agent resampling的precision虽高(93.27%),但recall仅56.02%,意味着约44%的"实际需要resample但agent误判跳过"的查询被漏掉,限制了召回上限的进一步挖掘。作者还讨论了execution-based grouping的edge case:所有结果都不同(0%)或都为空(1.43%)的边界场景,前者实际不发生、后者由agent通过低confidence检测并触发resample解决。一个独立观察是,B.1节提到"coincidental correctness"风险(语义错但执行对的SQL被分到正确组),本文用pointwise rank在组内选最高分候选来缓解,但并未给出定量的false positive率统计。

独立分析的弱点

独立审视,R³-SQL至少有三个可改进点。第一,resampling的trigger recall仅56.02%(Table 11),意味着对一半需要重采样的查询,agent错误地认为初始池已足够,召回上限被人为压低;改进方向是改用更细粒度的决策信号(如多轮refine或基于多次独立判断的投票),或用专门的reward model训练agent。第二,pointwise ranker R3-POINT-32B在OOD场景反而拖后腿(Table 12),根源是其训练仅基于BIRD-train;改进方向是用OmniSQL或SynSQL-2.5M这类跨域数据重训pointwise ranker,或在OOD推理时完全旁路 $r_{\text{point}}$、仅靠 $r_{\text{list}}$ 排序。第三,listwise pairwise ranker的input consistency仅57.49%(Table 6),虽比无一致性奖励的45.60%显著提升,但仍有近一半顺序会改变决策;改进方向是引入listwise而非pairwise的偏好学习(如全排列排序学习),或对GRPO的KL散度做更激进约束。

未来方向

作者明确提出的方向是"集成domain-generalized pointwise ranker"。基于论文成果,可延伸的方向包括:(1) 把"功能不一致"概念推广到其他code generation任务(如Launer et al. 2026已把它用于代码embedding),探索通用LLM执行等价聚类框架;(2) 把agent $f$ 改为multi-turn或debate式结构,进一步提高resampling recall;(3) 把按需resampling范式与test-time scaling(如self-consistency、tree-of-thought)结合;(4) 探索在Agentar-Scale-SQL这类agentic text-to-SQL框架中,把R³-SQL作为后置ranker嵌入,进一步扩展到multi-turn schema interaction场景;(5) 在Table 17的Spider2.0-SQLite上做完整end-to-end评估,验证在多表、复杂schema下的可扩展性。

复现评估

R³-SQL的复现友好度较高。作者明确披露了所有组件的backbone:候选生成用Arctic-Text2SQL-R1-32B(开源),pointwise ranker基于Contextual-RM-32B在BIRD-train上做hard-negative重训得到R3-POINT-32B,listwise ranker基于OmniSQL-7B用GRPO+consistency reward训练得到R3-7B。训练数据构造过程详尽:用BIRD-train+Spider-train生成32候选/题,再sample正负对、从Top 15高分错例中采hard negative。所有超参与阈值都给出($\tau=0.05$、$\lambda_c=0.5$、$n=32$、$m=1024$、$T=0.8$)。prompt模板完整列于Figure 6/7/8/9,可直接复用。算力门槛:单节点8×H200 GPU训练(约几天),推理1.56秒/查询。代码未在论文中给出GitHub链接,但所有依赖模型均为HuggingFace开源。复现难度中等偏高,主要工程量在ranker的GRPO训练和agent的prompt调优。