LLM取代的第一個編程語言竟是SQL?網(wǎng)友吵翻天
一年前,AI 大牛 Andrej Karpathy 曾預(yù)言,最熱門的新編程語言是英語。
一年后,人工智能及機器學(xué)習(xí)研究商 Abacus.AI 首席執(zhí)行官 Bindu Reddy 表示:「LLM 用英語取代的第一個編程語言是 SQL,SQL 生成準(zhǔn)確率超過 95%,超過了人類 SQL 程序員(準(zhǔn)確率為 92%)的平均水平,大多數(shù)數(shù)據(jù)庫產(chǎn)品已經(jīng)提供了一個 chatbox 接口來查詢數(shù)據(jù)」。
Bindu Reddy 口中的 Chatbox 是一個開源的桌面端程序,Prompt 的調(diào)試與管理工具,支持 OpenAI 模型、Claude、Google Gemini 等。
從大模型出現(xiàn)以來,改變的不僅是文字、圖片生成領(lǐng)域,還有編程領(lǐng)域。這些 AI 助手給句提示就能自主學(xué)習(xí)新技術(shù)、構(gòu)建和部署應(yīng)用程序、以及自主查找和修復(fù)代碼中的 Bug。一時間,AI 取代程序員的爭論不斷。我們暫且不管這種說法結(jié)論如何,但 AI 已經(jīng)確確實實的影響到了每一位開發(fā)者。
就連 Karpathy 都表示自己基本上無法再回到三年前那種「無輔助」編碼的狀態(tài)了。
英偉達首席執(zhí)行官黃仁勛在一次關(guān)于人工智能未來的演講中也曾表示,在過去 10 年、15 年的時間里,你會告訴自己的孩子學(xué)習(xí)計算機科學(xué)至關(guān)重要。但現(xiàn)在情況幾乎相反,人工智能所帶來的奇跡可以讓每個人都成為程序員。
我們不難看出,黃仁勛的觀點與 Reddy 言論不謀而合。
不過,Bindu Reddy 一言既出,不少質(zhì)疑也冒了出來:「你聲稱(LLM 生成)SQL 準(zhǔn)確率高達 95%,有什么文獻或者統(tǒng)計支撐嗎?」
Bindu 立馬給出了回擊,她貼出了兩個示例片段,片段展示的正是 Bindu 家的一款 AI 工具。如下所示要求 AI 篩選同時符合選中特征的店鋪和銷售,但不要統(tǒng)計店鋪關(guān)閉時的數(shù)據(jù):
它就自動把代碼都寫好了,距離完成工作,只差一個復(fù)制到數(shù)據(jù)庫的動作。
稍微復(fù)雜的任務(wù)它也能搞定,只需要說清楚你想要的這組數(shù)不包含指定期間的數(shù)據(jù),并統(tǒng)計每個港口的平均出發(fā)延誤時間。不需要進一步提示,AI 助手自己就能分析出解題思路,并寫出按條件過濾數(shù)據(jù),并把幾個表格關(guān)聯(lián)起來計算平均值的 SQL 代碼。
看完展示,有網(wǎng)友表示,AI 寫 SQL 的效果這么好,似乎也合情合理。因為相比 Java、Python 等編程語言,SQL 中有 90% 是英語,它主要用于和數(shù)據(jù)庫交互,在格式上相對固定,需要填空的部分比較少,模型產(chǎn)生「幻覺」的空間有限。
然而,也有在日常工作中經(jīng)常用大模型生成 SQL 代碼的網(wǎng)友得到了另一番體驗:「到目前為止,ChatGPT 或 Perplexity 生成的 SQL 查詢還沒有一個不需要大量重寫的。」
他表示,這和用 AI 寫代碼差不多:「確實可以節(jié)省時間,但遠不能代替開發(fā)人員。」
這是因為大模型經(jīng)常犯錯,并且「不長記性」,還總是在同一個地方翻車。常見錯誤有:語法問題,混淆了 SQL Server、Postgres 等不同平臺的語法;使用了在某些平臺無效的函數(shù);缺少別名;在不同平臺之間遷移代碼時表現(xiàn)得很差。雖然挑了一堆錯,這位網(wǎng)友還是認同 AI 寫 SQL 的能力的:「盡管如此,它仍然比手寫要好?!?/span>
不過他已經(jīng)被 Bindu 拉黑了,這讓人很難不懷疑,Bindu 只是在推廣自家產(chǎn)品。
這位網(wǎng)友進一步質(zhì)疑道:「當(dāng)脫離了基準(zhǔn)測試?yán)锏暮唵稳蝿?wù),需要做比較復(fù)雜的查詢時,不會所有 AI 工具都失效了吧。」
評論區(qū)也有很多工作中常用 SQL 的網(wǎng)友與他有同感:
「AI 會寫 SQL 與能寫高效且性能優(yōu)良的復(fù)雜 SQL 是兩碼事。」
「寫 SQL 查詢很容易,但想要優(yōu)化查詢,需要在工作中積累經(jīng)驗和基于真實世界的知識,這是 AI 未能實現(xiàn)的?!?/span>
「我每天都用大模型,它們無法進行復(fù)雜的查詢。任何超過一個 CTE 的內(nèi)容,我都必須手動拆分。拆起來需要你會編程,否則只會白費幾天的時間。」
甚至還引來了 Hacker News 官方下場發(fā)表評論:「SQL 的核心不在于語言本身,而在于它能夠查詢和操作復(fù)雜的數(shù)據(jù)結(jié)構(gòu)?!乖谒磥?,提出正確的問題和理解數(shù)據(jù)結(jié)構(gòu)可能比語法本身更為關(guān)鍵。
除了從親身體驗的角度對 Bindu 提出質(zhì)疑之外,還有一些專業(yè)人員擺出了現(xiàn)成的數(shù)據(jù)。在基礎(chǔ)測試集 Text-To-SQL on Spider 中,目前的 Sota 模型的準(zhǔn)確度是 87.6%。
圖源:https://paperswithcode.com/sota/text-to-sql-on-spider
在另一個注重策略針對大型數(shù)據(jù)庫的基準(zhǔn)測試集中,最好的方法準(zhǔn)確率也僅為 72.28%,遠不及 95%。
圖源:https://bird-bench.github.io/
目前,也有不少科技公司推出了用大模型提升數(shù)據(jù)處理和查詢分析的產(chǎn)品,比如火山引擎數(shù)智平臺 VeDI—AI 助手、 Kyligence Copilot AI、ThoughtSpot 等。不過,這些企業(yè)解決方案面向的是專業(yè)用戶和團隊,而像 Abacus.AI 這樣的個人 SQL 助手可能更側(cè)重于幫助「小白」快速上手。