一年前,AI 大牛 Andrej Karpathy 曾预言,最热门的新编程语言是英语。
一年后,人工智能及机器学习研究商 Abacus.AI 首席执行官 Bindu Reddy 表示:「LLM 用英语取代的第一个编程语言是 SQL,SQL 生成准确率超过 95%,超过了人类 SQL 程序员(准确率为 92%)的平均水平,大多数数据库产品已经提供了一个 chatbox 接口来查询数据」。
Bindu Reddy 口中的 Chatbox 是一个开源的桌面端程序,Prompt 的调试与管理工具,支持 OpenAI 模型、Claude、Google Gemini 等。
从大模型出现以来,改变的不仅是文字、图片生成领域,还有编程领域。这些 AI 助手给句提示就能自主学习新技术、构建和部署应用程序、以及自主查找和修复代码中的 Bug。一时间,AI 取代程序员的争论不断。我们暂且不管这种说法结论如何,但 AI 已经确确实实的影响到了每一位开发者。
就连 Karpathy 都表示自己基本上无法再回到三年前那种「无辅助」编码的状态了。
英伟达首席执行官黄仁勋在一次关于人工智能未来的演讲中也曾表示,在过去 10 年、15 年的时间里,你会告诉自己的孩子学习计算机科学至关重要。但现在情况几乎相反,人工智能所带来的奇迹可以让每个人都成为程序员。
我们不难看出,黄仁勋的观点与 Reddy 言论不谋而合。
不过,Bindu Reddy 一言既出,不少质疑也冒了出来:「你声称(LLM 生成)SQL 准确率高达 95%,有什么文献或者统计支撑吗?」
Bindu 立马给出了回击,她贴出了两个示例片段,片段展示的正是 Bindu 家的一款 AI 工具。如下所示要求 AI 筛选同时符合选中特征的店铺和销售,但不要统计店铺关闭时的数据:
它就自动把代码都写好了,距离完成工作,只差一个复制到数据库的动作。
稍微复杂的任务它也能搞定,只需要说清楚你想要的这组数不包含指定期间的数据,并统计每个港口的平均出发延误时间。不需要进一步提示,AI 助手自己就能分析出解题思路,并写出按条件过滤数据,并把几个表格关联起来计算平均值的 SQL 代码。
看完展示,有网友表示,AI 写 SQL 的效果这么好,似乎也合情合理。因为相比 Java、Python 等编程语言,SQL 中有 90% 是英语,它主要用于和数据库交互,在格式上相对固定,需要填空的部分比较少,模型产生「幻觉」的空间有限。
然而,也有在日常工作中经常用大模型生成 SQL 代码的网友得到了另一番体验:「到目前为止,ChatGPT 或 Perplexity 生成的 SQL 查询还没有一个不需要大量重写的。」
他表示,这和用 AI 写代码差不多:「确实可以节省时间,但远不能代替开发人员。」
这是因为大模型经常犯错,并且「不长记性」,还总是在同一个地方翻车。常见错误有:语法问题,混淆了 SQL Server、Postgres 等不同平台的语法;使用了在某些平台无效的函数;缺少别名;在不同平台之间迁移代码时表现得很差。虽然挑了一堆错,这位网友还是认同 AI 写 SQL 的能力的:「尽管如此,它仍然比手写要好。」
不过他已经被 Bindu 拉黑了,这让人很难不怀疑,Bindu 只是在推广自家产品。
这位网友进一步质疑道:「当脱离了基准测试里的简单任务,需要做比较复杂的查询时,不会所有 AI 工具都失效了吧。」
评论区也有很多工作中常用 SQL 的网友与他有同感:
「AI 会写 SQL 与能写高效且性能优良的复杂 SQL 是两码事。」
「写 SQL 查询很容易,但想要优化查询,需要在工作中积累经验和基于真实世界的知识,这是 AI 未能实现的。」
「我每天都用大模型,它们无法进行复杂的查询。任何超过一个 CTE 的内容,我都必须手动拆分。拆起来需要你会编程,否则只会白费几天的时间。」
甚至还引来了 Hacker News 官方下场发表评论:「SQL 的核心不在于语言本身,而在于它能够查询和操作复杂的数据结构。」在他看来,提出正确的问题和理解数据结构可能比语法本身更为关键。
除了从亲身体验的角度对 Bindu 提出质疑之外,还有一些专业人员摆出了现成的数据。在基础测试集 Text-To-SQL on Spider 中,目前的 Sota 模型的准确度是 87.6%。
图源:https://paperswithcode.com/sota/text-to-sql-on-spider
在另一个注重策略针对大型数据库的基准测试集中,最好的方法准确率也仅为 72.28%,远不及 95%。
图源:https://bird-bench.github.io/
目前,也有不少科技公司推出了用大模型提升数据处理和查询分析的产品,比如火山引擎数智平台 VeDI—AI 助手、 Kyligence Copilot AI、ThoughtSpot 等。不过,这些企业解决方案面向的是专业用户和团队,而像 Abacus.AI 这样的个人 SQL 助手可能更侧重于帮助「小白」快速上手。