
摘要
将自然语言问题转换为SQL查询,即文本到SQL(text-to-SQL),是一个长期存在的研究难题。有效的文本到SQL合成可能会因以下原因变得非常具有挑战性:(i) 数据库目录(表及其列的描述)和数据库值的庞大数量;(ii) 对大型数据库模式进行推理;(iii) 确保生成查询的功能有效性;以及 (iv) 解决自然语言问题中的歧义。我们介绍了CHESS,这是一种基于大语言模型(LLM)的多代理框架,旨在实现高效且可扩展的SQL合成,包含四个专门针对上述挑战的代理:信息检索器(Information Retriever, IR)提取相关数据;模式选择器(Schema Selector, SS)简化大型模式;候选生成器(Candidate Generator, CG)生成高质量候选并迭代优化查询;单元测试器(Unit Tester, UT)通过基于LLM的自然语言单元测试验证查询。我们的框架提供了可配置的功能,以适应不同的部署约束,包括:1) 支持工业规模的数据库:利用模式选择器代理,CHESS能够高效地将非常庞大的数据库模式缩减为可管理的子模式,从而提高系统准确性约2%,同时减少LLM令牌数量约5倍。2) 最先进的隐私保护性能:在使用开源模型的方法中,CHESS实现了最先进水平的性能,构建了一个高性能且具备隐私保护能力的系统,适合工业部署。3) 高计算预算下的可扩展性:在高计算预算的情况下,CHESS在BIRD测试集上达到了71.10%的准确性,与领先的专有方法相比仅相差2%,但所需的LLM调用次数减少了约83%。
代码仓库
shayantalaei/chess
官方
pytorch
yeounoh/lc_nl2sql
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| text-to-sql-on-bird-big-bench-for-large-scale | CHESS | Execution Accuracy % (Dev): 65 Execution Accuracy % (Test): 66.69 |