Schema linking 是 Text-to-SQL 流程中的关键步骤,旨在从目标数据库中找出与用户查询相关的表和列,同时过滤掉无关的部分。然而,链接不完备常导致遗漏必需列,进而影响生成的 SQL 正确性。\ \ 本文重新审视了在最新大语言模型(LLM)环境下的 schema linking。实验表明,当前的 LLM 能够在生成过程中自行辨别并利用相关的 schema 元素,即使上下文中混杂了大量无关信息。因此,当整个 schema 能够放入模型的上下文窗口时,我们的 Text-to-SQL 流程直接省略 schema linking,以避免因过滤导致的必需信息丢失。\ \ 为了进一步提升准确率,我们引入了三类技术:\
- 增强(augmentation):在提示中加入示例或额外描述,帮助模型更好地理解数据库结构;\
- 选择(selection):在生成前对候选 SQL 进行筛选,保留最符合上下文的候选;\
- 纠错(correction):利用后处理模型或规则对生成的 SQL 进行错误修正。\ \ 在 BIRD 基准测试上,该方法取得了 71.83% 的准确率,排名第一。\ \ 点评:本文展示了在上下文窗口足够大的情况下,完全可以依赖强大的 LLM 进行隐式 schema 关联,从而简化传统的显式链接步骤,并通过增强、选择、纠错三招显著提升 Text-to-SQL 的整体性能。