学习何时推理:基于SFT和DPO的Text-to-SQL方法
提出AutoThinkSQL框架,通过监督微调(SFT)和直接偏好优化(DPO)集成自动推理机制,使模型对简单查询绕过推理,对复杂查询使用深度思维链,在Spider和BIRD基准上取得一致提升,同时减少输出令牌和延迟。
文本到SQL(Text-to-SQL)技术旨在将自然语言查询转换为可执行的SQL语句,是自然语言处理与数据库交互领域的重要研究方向。近年来,以思维链(Chain-of-Thought, CoT)为代表的推理型方法在复杂查询上取得了显著突破,但其推理过程带来的计算开销不容忽视。现实应用中,大量查询仅涉及简单的单表查找或聚合运算,强制模型执行完整的推理链条不仅浪费算力,还增加了用户等待时间。
为应对这一挑战,来自研究团队的Soohyuk Jang等人提出了AutoThinkSQL框架。该框架创新性地将自动思考机制(auto-thinking mechanism)整合到监督微调(SFT)和直接偏好优化(DPO)两个阶段中。在训练过程中,模型学习根据查询的复杂度动态决策是否启动推理流程。具体而言,对于判别为简单的查询,模型会跳过推理步骤直接输出SQL;而对于复杂查询,则自动启用深度CoT进行逐步推理。这种自适应策略在保证模型处理复杂查询能力的同时,大幅降低了简单查询的资源消耗。
AutoThinkSQL的另一个亮点是其训练方法。研究者利用DPO来优化模型的推理决策偏好,使模型能够更精准地判断何时需要推理。实验在Qwen3-Coder-30B-A3B模型上进行,选用业界标准的Spider和BIRD两个基准数据集。结果显示,AutoThinkSQL在两项基准上的表现均超过了现有最强基线方法。更重要的是,与纯CoT生成模式相比,该框架在Spider数据集上平均减少输出令牌约24.6%,在BIRD数据集上减少约18.3%,同时推理延迟分别降低了17.1%和11.5%。进一步的显著性分析证实,模型确实学会了根据查询难度调整推理深度:简单查询几乎不触发推理,而困难查询则会启动深度思考链。
该工作的代码和模型检查点已公开,为Text-to-SQL社区提供了一个兼顾性能与效率的新方案。AutoThinkSQL的思路对于其他需要动态推理的NLP任务同样具有借鉴意义。随着大模型在真实场景中的广泛应用,如何在保证准确性的前提下降低推理成本已成为关键问题,AutoThinkSQL的提出正是对这一需求的有力回应。