跳到主要内容

4 篇博文 含有标签「sql」

查看所有标签

生产环境中的Text-to-SQL:自然语言查询为何在Schema边界失败

· 阅读需 10 分钟
Tian Pan
Software Engineer

演示每次都能成功。LLM把"显示上个季度收入前十的客户"翻译成完美的SQL,结果瞬间弹出,会议室里所有人都点头认可。然后你把它部署到你实际的数仓上——130张表、1400个字段、十年积累的有机命名惯例——模型开始自信地生成返回错误数字的查询。没有报错,只是答案是错的。

这就是Schema边界问题,也是为什么Text-to-SQL在所有AI能力中,基准测试性能与生产现实之间的差距最大。在Spider 1.0(标准学术基准)上得分86%的模型,在Spider 2.0上准确率下降到约6%,而后者更接近真实企业Schema的复杂度。供应商在干净的玩具Schema上演示,你却要在自己的Schema上部署。

大规模 Text-to-SQL:上线之前没人告诉你的那些事

· 阅读需 12 分钟
Tian Pan
Software Engineer

Text-to-SQL 演示看起来出奇地简单:把 schema 粘贴到提示词里,向 GPT-4 提个问题,拿到一条整洁的 SELECT 语句,然后 Slack 里就开始涌现"要不要把这个集成进数据平台?"的消息。等到你真正打算上线时,麻烦来了。基准测试显示 85% 的准确率,但内部数据团队反映大约一半的答案是错的,而安全团队则在追问:生成的查询在执行前有没有经过审查?没人能给出一个像样的答案。

这正是 text-to-SQL 作为研究问题与作为工程问题之间的鸿沟。研究问题关注的是让模型生成语法正确的 SQL;工程问题面对的是 schema 歧义、访问控制、查询验证,以及你的企业数据库根本不像 Spider 或 BIRD 数据集这一现实。

SQL Agent 为何在生产环境中失败:针对实时关系型数据库的 LLM Grounding

· 阅读需 13 分钟
Tian Pan
Software Engineer

Spider 基准测试看起来很棒。GPT-4 在数百个测试查询中的 text-to-SQL 转换得分超过 85%。团队看到这些数字,配置好 LangChain 的 SQLDatabaseChain,然后上线“询问你的数据”功能。两周后,一位分析师关于按地区划分收入的无心提问触发了全表扫描,导致报表系统宕机 30 分钟。

基准测试数字是真实的。问题在于,基准测试不使用你的模式 (schema)。

Spider 1.0 在包含 5–30 个表和 50–100 个列的数据库上测试模型。而你的生产数据仓库有 200 个表、700 多个列,根据你查询的系统有三种 SQL 方言,以及在四年前编写代码的工程师看来有意义,但对其他任何人来说都毫无意义的列名。当研究人员推出 Spider 2.0——一个具有企业级规模 schema 和现实复杂性的基准测试时——GPT-4o 的成功率从 86.6% 下降到 10.1%。这种断崖式下跌才是生产环境的真实写照。

你的数据库模式是 AI Agent 的心智模型

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数构建智能体(agent)的团队将数据库模式(schema)视为后端关注的问题。这种模式是由工程师为工程师设计的,遵循了数十年关系型数据库的最佳实践:积极规范化、避免冗余、拆分引用表、强制执行外键。这种方法对于联机事务处理(OLTP)系统是正确的,但对于 AI 智能体来说通常是错误的。

当智能体读取你的模式以确定如何回答问题时,它并不是在解析数据结构,而是在构建你业务的心智模型。如果你的模式是为已经理解该领域的应用程序代码构建的,那么智能体将根据为别人绘制的地图进行工作。结果就是幻觉式的联接、错误的聚合,以及原本只需两步却需要八步的工具调用链。