AI News HubLIVE
站内改写3 分钟阅读

Feyn AI发布SQRL:一个在编写查询前先检查数据库的文本到SQL模型系列

Feyn Labs发布了SQRL,这是一系列文本到SQL模型,能在生成查询前通过只读探针检查数据库。旗舰型号SQRL-35B-A3B在BIRD Dev上达到70.6%的执行准确率,略超Claude Opus 4.6,并可蒸馏为可自托管的4B和9B检查点。

来源MarkTechPost作者: Asif Razzaq

Feyn AI(YC支持的初创公司)发布了SQRL,这是一个新型文本到SQL模型系列,其核心创新在于将自然语言问题转化为SQL之前先检查数据库。与大多数将任务视为翻译的系统不同,SQRL通过只读探针来解决歧义,确保生成的查询与数据实际支持的内容一致。

旗舰型号SQRL-35B-A3B在BIRD Dev基准测试中达到了70.6%的执行准确率,对比之下,Claude Opus 4.6为68.77%。同时,团队发布了三个可在Hugging Face上获取的检查点:SQRL-4B、SQRL-9B和SQRL-35B-A3B。

为什么先检查数据库至关重要

文本到SQL常被描述为翻译问题,但这一视角忽略了最困难的环节。一个查询可以是完全有效的SQL,却返回错误结果——可能因为连接了错误的表、误解了模糊列的含义,或过滤了不存在的值。这些错误不会抛出异常,因此仅通过执行无法捕获。

模式信息也无济于事。模式列出了表、列、类型以及有时包括的关系,但它无法揭示县名是存储为“Alameda”、“Alameda County”还是“ALAMEDA”,也无法告诉你哪种连接会产生重复行。

BIRD基准测试量化了这些失败。其数据库涵盖真实领域,包含不完美的值、模糊列和复杂关系。系统通过执行SQL并将返回行与参考结果比较来评分。对于查询语言来说,语法正确远远不够。Feyn的核心洞察是:缺失的信息已经存在于数据库中,模型只需要被允许去询问。

SQRL的工作原理

SQRL接收问题、模式以及关于数据库的可选证据。如果上下文足够,它会立即返回查询。如果存在歧义,它会执行只读查询,利用返回的行来起草最终答案。检查决策视情况而定:统计单表行数无需查询,因此SQRL直接回答。

交互使用两种不同的动作:inspect块请求数据库观察,answer块提交最终查询。执行框架以只读模式运行探索查询,并在observation标签内返回结果行。SQRL最多可检查五次,但大多数问题在更少的步骤内完成。

训练检查决策

赋予模型数据库访问权限并不能教会它何时以及如何检查。这种行为需要训练,而基于执行的训练是苛刻的:如果参考查询本身错误,正确的模型答案也会受到错误奖励。因此,Feyn首先清理了训练集。从BIRD和Spider开始,团队移除了参考SQL未产生可用结果的示例,然后由三个模型审查剩下的配对,并移除任何未回答其问题的查询。测试集包括Spider的保留部分和BIRD dev,其余数据用于训练。

35B-A3B教师模型使用CISPO(一种来自MiniMax M1工作的强化学习方法)直接训练。CISPO裁剪重要性采样权重而非策略比率,从而保留了来自罕见但关键标记的梯度信号。对于每个问题,模型生成八个完整轨迹,执行每个最终查询,并根据结果是否匹配参考来给予奖励——这是一个忽略措辞、仅检查返回行的二进制信号。

组相对训练需要组内变化。八个成功或八个失败的尝试没有提供关于哪些决策有助于的信号。因此,Feyn在“混合区域”上训练——即只有部分尝试成功的情况,这样每个组都能强化区分正确与错误轨迹的选择。这就是教师模型学习何时检查的方式。

为了使其行为可部署,团队采样了完整的教师轨迹,并仅保留最终SQL返回正确结果的轨迹。这产生了约10,200个示例,每个示例保留了推理、探索查询、观察和最终答案。4B和9B学生模型在这些轨迹上进行微调,随后使用相同的CISPO执行奖励进行优化。SQRL基于Qwen3.5和Qwen3.6模型系列构建。

全系列性能表现

Feyn在BIRD Dev上评估了SQRL,当查询返回与参考相同的结果时计为正确。SQRL-35B-A3B得分为70.60%,每个令牌激活约3B参数。9B学生模型保留了几乎全部性能,达到69.80%。SQRL-4B达到68.80%,在这一评估中与Claude Opus 4.6持平,但模型小巧,可在任何地方托管,使模式、查询和观察数据保留在用户控制的基础设施内。

在Feyn报告中,其他前沿模型表现如下:Claude 4.5 Sonnet为67.34%,Qwen3-Coder-480B-A35B为66.17%,GLM-4.7为63.82%,DeepSeek-R1为61.67%,Kimi-K2-Thinking为60.63%。

部署指南

Feyn推荐SQRL-9B作为默认检查点,SQRL-4B用于预算最紧张的情况,SQRL-35B-A3B用于最高精度。9B模型可通过vLLM提供服务:

vllm serve feyninc/sqrl-9b \
  --served-model-name sqrl-9b \
  --gpu-memory-utilization 0.90 \
  --max-model-len 32768

应用程序循环很简单。保持数据库执行为只读,并将每次观察返回给模型,直到它发出答案。需要注意:不要启用服务层的推理解析器。动作协议出现在/answer关闭标签之后的内容中,因此剥离该内容会移除模型的inspectanswer动作。请解析原始消息内容并保留最终think标签之后的所有内容。模型卡包含完整的系统提示和参考框架。

关键要点

  • SQRL是通过在提交最终查询前执行只读探针来检查数据库的文本到SQL模型系列。
  • Feyn报告SQRL-35B-A3B在BIRD Dev上达到70.6%的执行准确率,高于Claude Opus 4.6的68.77%。
  • 旗舰模型蒸馏为4B和9B学生模型;SQRL-4B在该测试中匹配Opus,同时保持可自托管。
  • 训练清理了BIRD和Spider数据集,奖励执行匹配,并利用CISPO和蒸馏来教会模型何时检查。
  • 所有三个检查点已在Hugging Face开源,并通过vLLM和只读框架提供服务,框架将观察反馈给模型。

SQRL由Feyn构建。团队可在GitHub、Hugging Face和X上找到。