ACTS-SQL: Agentic and Critic-Oriented Tree-Structured SQL Correctness with Large Language Models
该论文介绍了 ACTS-SQL,这是一个无需训练的树状结构框架,它利用智能体规划、回溯和基于执行的验证,显著提高了在基准测试评估和实际工业部署中的 SQL 纠错准确率。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在现代世界中,海量的信息被存储在被称为数据库的数字仓库中。为了向这些仓库提问,人们使用一种被称为 SQL 的特定语言,它作为检索结构化数据的主要接口。虽然正确编写这种语言需要对复杂的逻辑和关系有深刻的理解,但即使是经验丰富的专业人士也会犯错,从而导致错误的答案。最近,被称为大型语言模型的强大计算机系统已被教会自动编写这些查询,承诺让数据变得触手可及。然而,这些模型经常生成看起来正确但无法回答用户真实问题的查询,或者包含导致计算机崩溃或返回误导性结果的细微错误。修复这些错误非常困难,因为查询中一处的微小改动就可能完全改变整个请求的含义。
来自中国人民大学和字节跳动的一个研究小组开发了一种新方法,来帮助这些计算机系统修复自身的错误。他们的系统名为 ACTS-SQL,该系统并没有尝试在单一的直线路径上纠正错误的查询,而是将这个过程视为一个分支路径,计算机可以同时探索多种可能性。如果计算机走错了路,它可以退后一步并尝试另一条路线,而不是困在错误的假设中。这种方法已在标准基准测试和实际工业系统中进行了测试,显著提高了计算机生成的问题的准确性。研究人员发现,通过允许系统暂停、检查其工作并重新考虑其选择,它能够解决以往方法无法解决的问题,使这项技术更加可靠,便于日常使用。
研究人员解决的核心问题是,目前的计算机系统经常陷入错误的循环。当模型生成错误的查询时,旧的纠错方法通常尝试以单线推理的方式逐步修复它。如果模型在早期阶段犯了错误,例如误解了用户对某个特定词汇的含义,那么随后的每一次修复都会建立在这个初始错误之上。这就像是在迷宫中导航时只能向前移动;如果你在开始时走错了路,你可能会一直走入死胡同,并深信自己正走在正确的路径上,直到用尽所有选项。研究人员观察到,这些线性方法是脆弱的,因为它们无法轻易地回溯并重新考虑最初的选择。一旦计算机对用户的请求做出了特定的解释,它很少会改变主意,即使结果证明它是错误的。
为了解决这个问题,该团队设计了一个将纠错过程组织成树状结构的系统。想象一个决策树,计算机从顶部开始,每当一个工具引入一个新的决策点时——例如,“检测歧义”工具识别出用户请求中的特定歧义短语时——它就会分裂成不同的分支,每个分支代表一种不同的含义。一个分支可能假设用户想查看全年的销售额,而另一个分支则假设他们想查看特定月份的销售额。系统随后独立测试每个分支。如果一个分支导致的结果与用户可能意图的内容不符,系统可以切断该分支,并返回到分裂点尝试另一条路径。这种回溯和探索替代方案的能力防止了计算机困在单一的错误想法中。
该系统通过使用一个中央“大脑”来制定修复查询的计划。这个计划不是一个简单的步骤列表,而是一张潜在行动的地图。计算机使用特殊的工具来帮助它在地图中导航。一个工具帮助系统识别用户问题中的歧义词汇,并生成理解它们的不同方式。另一个工具允许计算机在实际数据库中运行查询的小部分,以查看返回什么数据,这就像是一个快速测试,用来查看一个想法是否可行。如果计算机发现语法错误(即查询语法上的错误),一个专门的工具会将查询分解成更小的部分,以便精确找到语法出错的位置,而无需从头开始重写整个查询。
研究人员在名为 BIRD-Critic 的基准测试上测试了他们的系统,该测试包含许多具有各种类型错误的复杂 SQL 查询示例。他们将自己的方法与几种其他方法进行了比较,包括专门训练用于修复 SQL 的强大模型,以及其他尝试使用线性、逐步方法来纠正错误的系统。结果显示,他们的树状结构方法明显更加准确。在基准测试中,新系统的成功率比之前的最佳方法提高了 9.42 个百分点。这种提升在不同的数据库语言类型中都成立,表明该方法具有鲁棒性,且不依赖于特定的编写查询风格。
为了证明该系统在现实世界中有效,研究人员将其部署在字节跳动的生产环境中,具体是在一个名为 Torch Log Service 的日志分析服务中。在这种环境下,该系统被用于在将查询发送给用户之前,对强大的语言模型生成的查询进行纠错。结果令人瞩目:实际执行成功的查询准确率从 36.77% 跳升至 53.61%。这意味着在处理具有复杂、定制化数据的现实场景时,该系统能够将大多数失败的尝试转化为成功的操作。研究人员指出,这种提升是在无需对底层计算机模型进行新数据再训练的情况下实现的,使得该解决方案具有很强的实用性,且易于集成到现有系统中。
研究还强调了回溯能力的重要性。在一次详细的案例研究中,研究人员展示了线性方法如何无法修复一个关于“月度销售额”的查询,因为它卡在了“用户指的是年度销售额”这一想法上。无论线性系统尝试如何微调查询,它都无法摆脱那个最初的错误假设。相比之下,树状结构系统识别出了歧义,尝试了年度销售额的想法,看到失败后,立即切换到了正确解释请求为月度数据的分支。这种基于证据改变方向的能力是其成功的关键。
虽然新系统更有效,但它运行起来也需要更多时间,因为它会探索多条路径并运行更多测试。研究人员测量了纠正查询所需的时间,发现它为过程增加了几分钟时间,对于显著提高准确性的回报来说,这是一个合理的权衡。他们还发现,该系统可以很好地兼容不同类型的计算机模型,而不仅仅是他们用于测试的那一个,这表明该方法具有灵活性,可以广泛应用。
这项工作证明,对于像编写数据库查询这样复杂的任务,结构化的、基于计划的方法优于简单的线性方法。通过赋予计算机暂停、考虑多种选项并在犯错时退后的能力,该系统变得更加可靠。这一发现表明,未来人工智能在数据分析领域的进步,可能不再仅仅依赖于让模型本身变得更聪明,而更多在于赋予它们更好的工具和检查自身工作的流程。研究人员已经公开了他们的代码和数据,允许他人基于此方法进行改进,以进一步提升计算机与人类数据交互的方式。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。