網易首頁 > 網易號 > 正文 申請入駐

圖靈獎得主:勸年輕人別學計算機,行業紅利正在消失

0
分享至



Mike Stonebraker 是 2014 年圖靈獎得主,他對數據庫系統的奠基性貢獻幾乎寫進了所有相關教科書。從 Ingres、Postgres,到 Vertica、VoltDB、SciDB,再到最近的 DBOS,每一個都是真正成就了諸多商業公司的工程系統。

最近他做客 Meta 資深工程師 Ryan Peterman 的播客,與其進行了一個小時的對話。他說話直接,不太客氣。聊到 Larry Ellison 時,他說那人“把現在時和將來時混為一談,本質上是在對客戶撒謊”;聊到 Google 當年力推的 MapReduce 和最終一致性,他說“那不是 Google 唯一一件愚蠢的事”;聊到亞馬遜同時維護著十五個數據庫系統,他說“多了十二個”;


(來源:Youtube)

他也表達了對如今 AI 的看法。在他看來,現在多數 agentic AI 還停在“只讀”,給一個客戶算個分、出個預測,并不真的去改數據庫里的字段。一旦 agent 開始做讀寫,比如兩個 agent 協作完成一筆轉賬,問題就立刻落回數據庫的老地盤:事務、一致性、原子性。

說到大模型寫 SQL,他甩出來幾個數字。在 Spider、Bird 這些公開 text-to-SQL 基準上,最好的模型已經能拿到 85% 準確率,看起來差一步就能上生產。但 Stonebraker 團隊用四個真實生產數據倉庫做了一個新基準 Beaver,在這個基準上,大模型的準確率是 0;加上 RAG 也只到 10%;把 join 條件直接喂給模型,最多到 35%。同樣的任務,一個懂 schema 的 SQL 工程師能做到 90% 以上。所以他的結論是:這項技術,至少在可見的未來,還不夠格進生產。

談及對年輕人的建議,他說如今已不太確定是否要推薦十八歲的小孩去主修計算機科學,“醫療和建筑業是穩妥的選擇”。

下面是這次對話的完整內容:

在伯克利,被一個懂門道的人帶進門

Peterman:我第一件想聊的事是 Postgres 是怎么起步的。我想從更早的地方開始,你最初是怎么進入數據庫這個領域的?

Stonebraker:我畢業之后很幸運被伯克利招了進去,但我心里清楚一件事:把博士時候做的東西繼續往下做,不會有什么前途。那時候和今天一樣,能找到一個懂門道的導師把你帶進門,你就比別人快一截。Gene Wong 把我收到他翼下,他現在還在干活。他說,咱倆一起搞點事情吧。

那是 1971 年,Ted Codd(關系數據庫理論奠基人)那篇開創性的論文發表在 CACM(《Communications of the ACM》,計算機領域的頂級刊物)上是 1970 年。Gene Wong 說,我們去研究下數據庫這塊。當時關系模型有兩個對手。一個叫 CODASYL 提案(1960 年代提出的網狀數據庫標準,把數據按“指針網”組織),你大概太年輕沒聽說過。它是個底層的、像意大利面一樣纏繞的網狀結構,要查一條數據得一路追指針。另一個是 IBM 的 IMS(Information Management System,IBM 的層次數據庫系統,今天還在賣),數據是樹形組織的。但 IBM 自己當時就承認樹不夠通用,解決不了很多人的問題,于是又加了一層補丁,把它變成一個受限的網狀結構,一看就是個糟糕的補丁。

CODASYL 那套問題一堆。層級太低,調試起來要命。它還有個性質:一旦你的 schema(數據結構定義)有任何變化,基本就得把所有東西扔了重來,因為它整個根扎在物理層面。而 Codd 那套東西完全說得通。所以 Gene 說,咱們就來造一個這樣的玩意兒吧,下一步顯然該試這個方向。1972 年他開始造 Ingres(INteractive GRaphics REtrieval System)的雛形,那時候我剛到伯克利當助理教授。

Peterman:Ingres 是怎么從一個原型走到真的能用的?

Stonebraker:美國大學里的助理教授一般有五年的考核期,要么熬到終身教職,要么走人。Ingres 就是我拿到終身教職的敲門磚,1976 年我拿到了。

那個年代很多人寫的原型都是“實驗室風”,自己機器上能跑,拿給別人就跑不動了。Ingres 我們先投入了第一個 90% 讓它能跑起來,然后不知道為什么,又投入了下一個 90% 讓它真正好用。所以伯克利版的 Ingres 是真能用的。接下來幾年大概有一百所大學開始跑它,因為 Unix 起來了,而 Ingres 是一套免費的、跑在 Unix 上的數據庫。它在學術圈相當流行。

我們在伯克利開始接待大量訪客,他們會說,這東西看起來真不錯,你們最大的 Ingres 應用是什么?我們只能說,其實不太大。

當亞利桑那州立大學考慮用 Ingres 跑他們四萬學生的學籍數據時,這個問題得到了充分的印證。他們要裝一個不被支持的操作系統(貝爾實驗室的 Unix),要跑一個不被支持的數據庫(伯克利這幫人搞的 Ingres),這兩條他們都能接受。但項目最后死在第三條上:Unix 上沒有 COBOL(一種主要用于商業數據處理的老牌編程語言),而他們是個 COBOL 的店。不被支持的操作系統、不被支持的數據庫,再加上沒 COBOL,我們就被判了死刑。

唯一的出路是開公司。1980 年我們拿到了那個年代意義上的風險投資,成立了 Ingres 公司,把 Ingres 移植到 DEC 公司(數字設備公司,當年的小型機巨頭)的 VMS 上,一個真正的操作系統、一家真正能支持產品的公司。這就是商業化旅程的起點。

Larry Ellison 把現在時和將來時混為一談

Peterman:我看到 Ingres 當時是和 Larry Ellison 的 Oracle 在競爭。從能力上看 Ingres 明顯更好,他們怎么還能跟你們爭?

Stonebraker:Larry Ellison 是個一流的銷售。他當時基本上把現在時和將來時混為一談,說白了就是對客戶撒謊。他會發不能用的東西,讓早期客戶幫他 debug。我覺得他做的是非常不光彩的生意,對客戶撒謊在我看來是不可原諒的。

舉個例子,有一個東西叫“參照完整性”(Referential Integrity,關系數據庫里的一種約束:一張表里對另一張表的引用必須真實有效,不能指向不存在的記錄)。比方說你解雇了一個員工,而他正好是某個部門的最后一個人,那你是要把這個部門刪掉,還是留一個空殼部門?諸如此類。Ingres 公司把參照完整性實現了。Oracle 公司寫了兩頁手冊,先把參照完整性的定義寫出來,這部分大家都同意,然后在底下加了一行:尚未實現。

Peterman:有意思。我之前采訪過一個在 Sun Microsystems 干過的人,他對 Larry Ellison 的看法也差不多,覺得這人有點不光彩?磥硎莻共識。我還在某處看到你說過,Oracle 收購 MySQL 的時候,所有人都怕了,轉去用 Postgres。

Stonebraker:那就是 Postgres 取代 MySQL、成為首選開源關系型數據庫的起點。

一個債券交易員的電話,催生了 Postgres

Peterman:你造了 Ingres,里面有大量技術創新,讓它比對手強。但最后它還是沒了,你做了 Postgres。Ingres 沒做、而 Postgres 做了的那件關鍵的事是什么?

Stonebraker:一開始就有一件事埋在我們腦子里。學術版 Ingres 最早的目標是要支持隔壁那位 Praveen Varah 教授要做的地理信息系統(GIS)。要支持 GIS,你得有點、線、多邊形、線組這些數據類型。但 Ingres 顯然搞不定,我們放進 Ingres 的數據類型是標準那幾樣:整數、浮點、文本字符串。在這之上你不可能高效地支持 GIS 類型。所以作為一個 GIS,學術版 Ingres 是個徹頭徹尾的失敗。這件事一直放在我們腦子后面。

另一件事時間上稍微往后跳一下,但能把這個點說透。大概 1985 年,ANSI(美國國家標準協會)剛提了一個關系數據庫的日期時間標準。商業版 Ingres 把日期時間實現了,用的是標準的格里高利歷。我那時候跟商業版那邊也有聯系,同時還在伯克利當教授。

我接到一個 Ingres 客戶的電話。他說,你們日期時間實現錯了。我說,我們實現的就是格里高利歷啊,你能做減法,月份有 30 天或者 31 天,二月除外、閏年除外,日期減法就是按你期望的方式工作的。

他說不對,那不是我要的。他做的是債券金融工具。出于某種原因,他的債券每個月付的利息一樣,不管這個月有幾天。他有買債券的日期、賣債券的日期,他想直接做減法,乘以票息率,得到付給客戶的利息。但他要的減法是:3 月 15 日減 2 月 15 日等于 30 天,因為他那套日歷就是這么定義的。結果他不得不把兩個日期取出來,在用戶代碼里做減法,再把答案塞回數據庫,效率掉了兩到三倍。

他說,我為什么不能直接重載你定義的減法,換成我要的版本?當然,Ingres 是寫死的。

但他要的東西,本質上跟前面那個“點、線、多邊形”是一回事。他要的是債券時間。Postgres 的設計目標就是有一個可擴展的類型系統,你想要什么數據類型都行,而且都是高效的。這就是 Postgres 的核心,它有這種靈活性。

業務數據處理多數時候用標準類型就夠了,但關系數據庫開始擴散到各種地方,人們想要的是抽象數據類型,或者叫存儲過程,叫法很多。這種可擴展性給了Postgres 巨大的適用面,這是 Postgres 最大的事情。

Postgres 也支持了當時 AI 那幫人想要的繼承機制。我們還做過時間旅行(time travel,讓數據庫能查詢歷史時點狀態),但實現爛得一塌糊涂,過了一陣就被拿掉了。但不管怎么說,Postgres 確實包含很多有意思的東西。

Peterman:你想招的是非常出色的軟件工程師。你之前說過,你找這種人沒什么困難。你怎么識別那種“非凡”的工程師?

Stonebraker:通常很明顯。我對什么事大概有多難,心里有數。如果他們在學校里干完的量是我覺得合理水平的三倍,那他們就是非常出色的人。

Peterman:反過來,你說過一句很有意思的話:“我受不了不那么聰明的人,跟他們說話很費勁!蹦阌质窃趺醋R別一個人不聰明的?

Stonebraker:這事很容易,你跟他聊幾句,很快就能看出來。你的碩士論文做的是什么?具體怎么工作的?錯誤條件你怎么處理的?用了多少進程?為什么不用線程?就是問深度的技術問題。

一種數據庫不可能解決所有問題

Peterman:你做過一個演講,后面也有篇論文,講的是“一種數據庫通吃所有場景”是錯的,你想要的是針對具體需求的數據庫方案。今天市面上你看到哪些數據庫還在試圖通吃?

Stonebraker:我寫那篇論文是 2004 年。我們當時有一個學術項目,后來變成了 StreamBase(流處理數據庫),流處理引擎跟關系數據庫長得一點都不像。我們還有一個列存(按列存儲數據,更適合分析型查詢)的雛形,做數據倉庫用的,后來 Vertica(基于列存的分析型數據庫)把它推開了,列存跟行存也長得一點都不像。三種完全不同的實現,互相沒有任何相似,每一種都比對手快一個數量級。所以很清楚,你跑一個不是為你這類工作負載設計的數據庫,你就要付一個數量級的代價。

我覺得今天還是這樣。ClickHouse(開源列式分析數據庫)是個列存,Pinecone(向量數據庫)做文本向量處理比“用戶自定義類型”那條路要快。所以這個判斷基本沒變。

技術上沒什么難度把一個統一的解析器架在多種實現之上。Postgres 到現在為止選擇不這么做。它沒有列存實現,所以在大型數據倉庫上它不具備競爭力。它也沒有多節點支持,對大數據倉庫來說這是入場券。所以這個觀點今天和當年一樣成立。

不過另一個角度也對:如果你想快點干起來,有數據庫需求,選 Postgres。社區巨大,各種數據類型實現都有,免費,你能找到 Postgres 直接用。在你撐到每秒百萬級事務之前,它都用得挺好。在你支撐 PB 級數據倉庫之前,它就是那個最優解。低端,Postgres 就是絕對的“一種通吃”。高端,這話就不成立了。

Peterman:GPU 會不會給數據庫優化帶來什么新機會?

Stonebraker:可能。但我覺得最大的挑戰在于,GPU 是 SIMD(Single Instruction Multiple Data,單指令多數據),這跟索引正好是反著來的。所以只要“索引”是正確答案的地方,GPU 大概就不是好主意。另外架構上你得讓從存儲到 GPU 的帶寬不成為瓶頸。如果 GPU 是 CPU 的附加件,那 CPU 到 GPU 的總線很多時候就是瓶頸。

Peterman:你能解釋一下為什么 SIMD 下索引就不那么有效?

Stonebraker:比方說我要找 Ryan 的工資,我有一棵 B 樹(一種平衡樹索引結構)。你先到根節點,找到 Ryan 落在哪一邊的分隔符,順著指針走,那是一次內存訪問;然后再來一遍,這樣跑三四層。這種過程沒法很好地并行。所以答案是:索引并行不起來。

Peterman:你剛才說 B 樹。第一版 Ingres 那會兒,這些都是你們手寫的嗎?那時候應該沒有現成的 B 樹庫。

Stonebraker:對。Ingres 最早的版本完全是從零寫的。

Peterman:那次實現里最難的是哪部分?

Stonebraker:查詢優化器(數據庫里負責把 SQL 查詢翻譯成最優執行計劃的模塊)。

Peterman:為什么這個最難?

Stonebraker:算法上就是難。你今天去問任何一個資深的數據庫工程師,最難的部分是什么,他還是會說優化器。

那不是 Google 唯一一件愚蠢的事

Peterman:MapReduce 在 2000 年代初出來,在數據世界掀起了風暴,大家覺得 Google 真懂行,這是面包發明以來最好的東西。但我看你當時和你后來的論文,你強烈不同意。為什么?

Stonebraker:那時候有一大批不太開竅的人,他們說 Google 這么聰明,他們做的肯定是對的,Google 怎么說我們就怎么做。于是一窩蜂上 Hadoop(MapReduce 的開源實現)。但 Hadoop 的效率低得離譜。當時 Dave DeWitt(數據庫領域元老,威斯康星大學教授)和我們 2011 年那篇論文的幾個作者都懂分布式數據庫,我們清楚分布式數據庫系統能把 Hadoop 按在地上摩擦,那篇論文基本就是這么寫的。事實證明也是如此。

而那不是 Google 唯一一件愚蠢的事。同一時期 Google 還在大力鼓吹“最終一致性”是做并發控制的正確方式,這是他們居高臨下發布的。但所有數據庫圈的人都說,你們腦子壞了,它只解決一小類特殊問題,而那類問題在實際中很少出現。

Peterman:他們為什么追“最終一致性”?

Stonebraker:這個想法是這樣:你東海岸有個數據庫,西海岸有個數據庫,互為副本,你想讓它們保持一致。

如果你說,我做一個事務把西海岸倉庫的小部件數量減一,提交這個事務之前,我要先把消息發到東海岸更新它,再發回來確認,然后還要再來一輪消息確保兩邊都正確提交,那做一個分布式提交是很貴的,今天也還是這樣。

所以那個想法是:你在西海岸做更新、把庫存減一,只是異步發個消息出去、不放進事務里,東海岸最終會被減一。同時如果你在東海岸把另一種貨品減一,你也異步發消息,西海岸最終也會收到,最后一切收斂。

但如果允許庫存跌破零,會發生這種事:東海岸和西海岸的人同時賣掉了最后一個小部件,最后倉庫狀態變成負一,有人拿不到他的貨。

如果你像亞馬遜那樣說“通常 24 小時內發貨”,那也許還能允許超賣。但大多數企業做不到。所以最終一致性就是不工作。我們前面提到過參照完整性,在銷售系統里,參照完整性的約束就是“庫存大于負一”,這個約束在最終一致性下崩了。Google 的 Jeff Dean(Google 首席科學家,MapReduce 和 Spanner 的主要作者之一)后來想清楚了這件事。他們做 Spanner(Google 的全球分布式數據庫)的時候,Spanner 是一個傳統的事務系統,Google 完全放棄了最終一致性,完全放棄了 MapReduce。

Peterman:所以這個權衡基本上是用正確性換性能。

Stonebraker:是性能 vs 數據完整性。如果你不在乎你的數據,那你就愿意接受壞事發生。

Peterman:你當時跟 Google 團隊聊過嗎?

Stonebraker:2011 年那篇論文之前我們找過他們,問要不要合作做點事。他們沒興趣,拒絕了。

Peterman:其他大公司呢?亞馬遜、Facebook,有沒有你強烈不同意他們做法的?

Stonebraker:大概三年前我在亞馬遜做過一次演講,把所有我覺得他們做錯的事都講了。亞馬遜的問題是他們在維護十五個不同的數據庫系統,大概多出了十二個。他們有自己的文化,我說你們維護的數據庫系統太多了。到現在為止他們一個也沒退役。

Peterman:為什么你說十五個應該只留三個?

Stonebraker:比方說他們在維護一個圖數據庫。但大家都清楚,圖數據庫在性能上幾乎從來不是首選。如果你喜歡“節點和邊”那種用戶接口,沒問題,在關系數據庫之上做一層殼,把這個用戶模型給你就行。他們大多數數據庫系統,都有另一個數據庫系統在該做的事上做得更好。所以答案是:任何在足夠大的市場里不具備性能競爭力的數據庫系統,你都該退役它,因為維護要錢。

我跟笨人打交道有困難

Peterman:你從學術界深刻地影響了產業。我有個問題:為什么不直接去工業界?為什么你更愿意留在學術界用這種方式產生影響,而不是去 AWS 之類的地方做個杰出工程師?

Stonebraker:因為那樣你頭上就有個老板,有公司規章,限制你發表論文的自由,限制你去會議講東西的自由,限制你去探查競爭對手在做什么的自由。但更主要的是,我喜歡做創業。

商業版 Postgres 后來被 Informix(1980-1990 年代的關系數據庫巨頭之一)收購,我那時在 Informix 兼職。那是一家兩千人的公司,我感覺做不出什么改變,它官僚,總裁要什么就是什么。我天生不適合搞政治,搞不來。我跟我覺得笨的人打交道有困難。所以我跟大公司有點麻煩。

Peterman:我想聊一下 DBOS,這是個很有意思的技術模型。能解釋一下 DBOS 是什么嗎?

Stonebraker:我們 2019、2020 年左右開始這個學術項目。當時 Matei Zaharia(Spark 的創造者,Databricks 聯合創始人)在斯坦福任教。他說,Databricks 那時候基本上就是在云上跑用戶的 Spark(一種主流的分布式數據處理引擎)任務,任意時刻可能有上百萬個 Spark 任務在調度,得寫一個能在百萬級別工作的調度器。

他說他們試過所有 OS 圈那些人寫的調度器,都不行,扛不住。所以最后他們把所有調度數據放進了一個 Postgres 數據庫,基本就是用一個 Postgres 應用來做調度。

然后我們就意識到:你在操作系統里大部分時間做的事,就是在管理大規模數據。你應該用數據庫技術來做這件事。那干脆把 Linux 的上半部分換成數據庫系統好了。

那就是這個學術項目的主旨。我們在 20 年代初在伯克利和斯坦福做這個,做得相當成功,確實能跑通。過程中斯坦福那邊給 JavaScript 寫了一個擴展,因為你需要某種編程入口跟你的實現對話。

如果你做的是一個跑在數據庫之上的“操作系統”,而你又有一個編程語言運行時,那很自然就是把所有狀態都放到數據庫里,他們就是這么做的。所以我們既有一個創新的編程語言模型,也有一個創新的操作系統模型。

接下來當然是想,能不能做公司?我們跟風投聊,沒有一個人不說“你想取代 Linux 那是做夢”,但他們都說,你這個編程語言部分很有意思。我們的 JavaScript 擴展能讓任何程序都擁有數據庫系統的那些好性質:狀態是持久的,你可以有事務,失敗時可以故障轉移,這些好東西。

2023 年我們拿到融資成立了 DBOS(Database Operating System)公司,這一直是項目的名字。但我們做的實際上是編程語言生意。今天 DBOS 有 TypeScript 版本、Java 版本、Go 版本、Python 版本,都是無縫的,看起來就是普通程序,但跑在云的世界里。

Peterman:這跟最初那個“用數據庫替換操作系統內核”的研究項目相比,是不是收窄了?

Stonebraker:現在每個人都有動機把應用結構組織成“工作流”。所以我們決定就支持工作流系統。DBOS 在那四種語言下支持的工作流,里面的每一步,叫微操作也好叫別的也好,都是事務性的。工作流是持久的,一步走完不會被忘記。如果有人有市場需求,我們可以做到工作流是原子的:整個工作流要么完成,要么看上去從未發生過。它的性質非常好,比競爭對手快很多、用起來也容易很多。公司在這塊賣得很好,也在持續創新。

整個想法是,把應用的狀態放到數據庫里讓它持久化,然后想辦法跑得快。商業模式是先抓底層程序員,跟他們說,你需要什么我們沒有,告訴我們,我們盡快加上,把人拉過來試。

Peterman:今天 DBOS 的客戶主要在哪些場景?

Stonebraker:我們在很多創業公司里很成功,他們想選最好的東西。我們也開始打進大客戶。今天大概三分之二的客戶在做 agentic AI,一個大語言模型,周圍加一堆增強信號的東西。目前為止 agentic AI 大多是只讀的,比如你要給“Ryan 是不是好客戶”產出一個預測,跑一堆東西出一個新結果給某個人。本質上是只讀的,你沒真的去改 Ryan 的信用評級。

我估計很快整個世界就會用 agent 做讀寫應用,那它就會變得非!皵祿䦷臁,而 DBOS 在這塊做得特別好。比方說你寫兩個 agent,把我賬戶里的 100 美元轉到你賬戶:一個 agent 把我賬戶減 100,另一個把你賬戶加 100,這兩個 agent 必須要么都提交、要么全部回滾,也就是說工作流必須是我說的“原子的”,要么發生,要么看起來沒發生過。我覺得這個市場對原子性的需求會越來越高,這對 DBOS 是好事。

Peterman:那今天向應用開發者交付的 DBOS,跟最初那個“把操作系統內核換成數據庫”的研究版本不一樣了。這其實挺酷的,我以前沒想過把操作系統所有狀態都放進數據庫。這里一定有什么權衡吧?

Stonebraker:在 DBMS(Database Management System,數據庫管理系統)之上寫的文件系統比 Linux 文件系統更快。調度引擎跟其他調度引擎相比也有競爭力。所有東西都能故障轉移,你不用做任何額外的事就拿到了高可用。答案是沒什么壞處。

Peterman:那為什么 Linux 不去吸收這個,把自己升級一下?

Stonebraker:你希望他們這么做。意思是,把所有設備驅動那些雜事留在底層,東西多沒人想碰,把上面的東西全部換成數據庫實現。

Peterman:你跟 Linux 圈的人提過嗎?他們的反應通常是什么?

Stonebraker:學術項目階段,我跟操作系統那幫人提的時候,他們會覺得很被冒犯,覺得這是數據庫圈的人在搶他們的地盤。編程語言的人也一樣,他們覺得編程環境的運行時該是他們的,我們說運行時該用數據庫做,他們也不爽。

Peterman:有意思。但如果客觀上是對的,可能它最后會贏。

Stonebraker:Java 也用了 10 年才被廣泛接受,這種事的時間常數我覺得就是大。

在我們的基準上,大語言模型得 0 分

Peterman:咱們聊了很多過去的事,我想知道你怎么看數據庫領域那些沒解決的問題和未來。

Stonebraker:有兩件事我想說。第一件,跟所有人一樣,三年前我們開始看大語言模型能干什么。我們一直在做 text-to-SQL(讓模型把自然語言問題翻譯成 SQL 查詢)。我們想讓它在真實世界的數據庫上工作,尤其是真實世界的數據倉庫。我們在四個生產級的數據倉庫上試,拿到了真實的用戶工作負載、真實運行的查詢,讓真實用戶回過頭給我們提供這些 SQL 對應的自然語言文本。所以我們有四個真實的 text-to-SQL 基準。

Peterman:你說 text-to-SQL,意思是人用自然語言對模型說,比如“四歲以上的所有人”這種?

Stonebraker:比方說“告訴我所有在 MIT 拿過圖靈獎的教授”。LLM 應該擅長這件事。Text-to-SQL 已經有公開基準,一個叫 Spider,一個叫 Bird(兩個學術界主流的 text-to-SQL 基準數據集)。最好的 LLM 系統在這些基準上挺不錯,80% 準確率以上,當前榜首大概 85%,你會考慮用它,雖然還不到生產級。

但在我們的基準上,大語言模型的準確率是 0%。如果你給它加上 RAG(檢索增強生成)和所有那些花招,能到 10%。如果你在 prompt 里直接告訴它 from 子句,也就是把所有要訪問的表、所有要做的連接條件都喂給它,準確率到 35% 左右。這東西離生產級很遠,而且短期內大概也到不了,如果它真的能到的話。

那區別在哪?

第一,數據。LLM 是在 The Pile(Eleuther AI 制作的開源大模型訓練語料庫,800GB 文本)上訓練的,數據倉庫里的數據不在 The Pile 里。有句老話,如果你之前沒見過這數據幾次,你沒機會把它復述出來。這是第一。

第二,查詢復雜度。Spider 和 Bird 上的查詢大概十到二十行 SQL,真實世界數據倉庫里是一百行 SQL,復雜度差一個量級。

第三,schema。Spider 和 Bird 里的 schema 是干凈的,表名是助記的,列名是助記的,沒有重復。但真實數據倉庫里,人們到處建物化視圖(materialized view,預先計算好的查詢結果,加速分析),意味著到處有冗余;列名經常是 underscore_z_uppers_andre_blah 這種,毫無助記性,很難。還有他們有特異數據,比方說 J-term(MIT 等美國大學一月份的一個迷你學期)在 MIT 是個流行詞,一月份的一個一個月學期,這個詞不只 MIT 有,但也不普及,不在 The Pile 里。特異數據、查詢復雜、schema 一團糟,這三件事在我知道的每個數據倉庫里都成立。所以這技術就是不工作,短期內也不會工作。

Peterman:那你們怎么辦?

Stonebraker:第一,我們把基準發表了,叫 Beaver,是這四個數據倉庫的脫敏抽象版本。如果你覺得自己 text-to-SQL 做得很好,來真基準上試,別老在假的上跑。

第二,接著我剛才說的,如果你拿不到 from 子句、拿不到所有連接條件,你就完蛋;如果你不把查詢拆成更簡單的小塊,你也完蛋。這告訴我什么呢?你想給檢索系統更簡單的小塊,小塊里要包含 from 子句、要包含連接條件。這是一。

第二,你一旦想跨兩個不同的結構化數據庫聊,比如你的數據倉庫和你的 CRM 系統,那很顯然,用 LLM 做結構化數據連接是個壞主意。你最好把它們留在表里,做 SQL 連接。所以我們的視角是,把所有東西都變成表。

我們在跟德國慕尼黑交通部合作。他們有六個全職的人在回答市民投訴性的查詢,比方說“為什么我家旁邊的路口綠燈時間不夠我過馬路”、“為什么電車停的時間不夠我上車”、“為什么電車一小時才來一班”。他們的數據庫里有什么?電車時刻表是 SQL,信號燈時序是 SQL,路口圖是 CAD(計算機輔助設計文件),德國聯邦的相關法規是文本,慕尼黑市的相關法規也是文本。所以你要做的是 SQL × SQL × CAD × 文本 × 文本的連接。

我們的視角是把它們全部變成 SQL、變成表,然后用一個相當于查詢優化器的東西做連接。這就是我們現在在做的事。我覺得別人會有別的想法,但這是個非常肥沃的領域,因為人們真的想做這件事。這是一。

第二,前面說的 agentic AI,一旦它變成讀寫,它就是個分布式數據庫問題,你要原子性、要一致性、要那一整套東西。我覺得這是非常有意思的領域。這就是我現在在做的。

Peterman:你剛才說的那個基準,LLM 現在拿 0 分,人能拿多少?如果你找一個真懂 SQL 的人,他能打多少?普通人呢?

Stonebraker:一旦把自然語言部分消歧之后,一個懂 SQL、了解 schema 的程序員,準確率會非常高。

Peterman:90% 這個量級?

Stonebraker:至少。

Peterman:好。我挺意外大模型在這種基準上得分這么低。也許這期播客出去之后會有 Anthropic 的人聯系你或者怎樣。

Stonebraker:我很想知道,因為這會是個很棒的成功故事。

計算機科學不一定還是個增長行業

Peterman:對那些想深入理解數據庫的人,你會推薦什么材料?有什么頂級的技術書?

Stonebraker:文獻里的論文。我和 Joe Hellerstein(伯克利數據庫教授,與 Stonebraker 長期合作)出過一本叫《Readings in Database Systems》的“紅皮書”,但已經八年了。作為八年前的讀物我覺得它很好。除此之外就是文獻里有名的論文。

Peterman:如果你能回到剛畢業那會兒,以你今天知道的事給自己一個建議,你會說什么?

Stonebraker:我剛到伯克利接那份工作的時候,沒怎么思考過就說,我們來寫一個數據庫系統吧。當時我們對數據庫一無所知,對實現也一無所知,我們也不是 Bill Joy(BSD Unix 主要作者,Sun Microsystems 聯合創始人)那種水平的程序員。開局做這種事,真的相當瘋狂。但你硬著頭皮干,讓它能跑起來,一路上學。所以答案是:跳出框架,想些瘋狂的事,去做。

更好的問題是:如果你今天剛開始,會主修什么?因為我覺得計算機科學未來不一定是一個增長行業。我現在不太確定我會推薦 18 歲的小孩去主修計算機科學。

我覺得醫療和建筑這些行業是穩妥的賭注,其他都看起來風險大不少。如果你即將拿到博士學位、要決定接下來做什么,那其實容易:挑你能拿到的最有聲望的工作,找一個愿意幫你的導師,選一個不隨大流的方向。比方說我們的項目 Rubicon,就是不隨大流的。

我和我太太總跟人說,跟隨你的熱情,錢總會有的。但說實話我一秒鐘都不信這話,我覺得這只是你必須告訴孩子和孫子的話。

Peterman:既然你不信,為什么你必須這么說?

Stonebraker:我太太就是個例子。她有計算機科學的碩士和本科學位,但她想做 K-12 老師。她父母說,你不能這么做,賺不到錢。我覺得從那以后她一直后悔這個決定。她對計算機科學沒什么熱情,只是把它當個手藝干。所以答案是:找你有熱情的事做,你不會餓死,可能賺不到大錢,但你大概率會比做你沒熱情的事更快樂。

我認識很多人把工作僅僅當工作,生活是發生在下午五點到早上八點之間的事。我完全不是這樣,我真的喜歡我做的事,賺多少錢不重要。

參考資料:

1. https://www.youtube.com/watch?v=YPObBOwIrHk

排版:胡巍巍

注:封面/首圖由 AI 輔助生成

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
倫敦世乒賽爆出大冷,孫穎莎閨蜜輸球!世界冠軍慘敗,賽后哽咽

倫敦世乒賽爆出大冷,孫穎莎閨蜜輸球!世界冠軍慘敗,賽后哽咽

老王大話體育
2026-05-02 02:08:17
目標明確!小勒布倫最新采訪:我們贏中國隊,不靠我擊敗王楚欽

目標明確!小勒布倫最新采訪:我們贏中國隊,不靠我擊敗王楚欽

鳳幻洋
2026-05-02 16:02:37
“人老有3坎,熬過就高壽”,這“3坎”分別是哪年,早了解不吃虧

“人老有3坎,熬過就高壽”,這“3坎”分別是哪年,早了解不吃虧

芹姐說生活
2026-04-26 16:04:37
五一檔最慘電影,上映多天票房只有0元,一個觀眾都沒有

五一檔最慘電影,上映多天票房只有0元,一個觀眾都沒有

孤城落日
2026-05-02 17:43:29
“蘇超”太卷了!歐文穿蘇州球衣打call,菲戈將空降南京,揚州呢

“蘇超”太卷了!歐文穿蘇州球衣打call,菲戈將空降南京,揚州呢

以茶帶書
2026-05-01 18:11:31
美劇把馬斯克寫進陽痿笑話,觀眾秒懂

美劇把馬斯克寫進陽痿笑話,觀眾秒懂

熱搜摘要官
2026-05-01 16:10:58
身份證復印給他人時,記得畫上一條橫線,很多人不知道有啥用

身份證復印給他人時,記得畫上一條橫線,很多人不知道有啥用

小談食刻美食
2026-04-28 07:33:04
深圳新政首日:有業主加價100萬?這類房子率先漲價成交

深圳新政首日:有業主加價100萬?這類房子率先漲價成交

深圳買房計劃
2026-05-01 22:30:45
繼亨德利后,世錦賽六冠王戴維斯也痛批艾倫:“這讓斯諾克蒙羞”

繼亨德利后,世錦賽六冠王戴維斯也痛批艾倫:“這讓斯諾克蒙羞”

求球不落諦
2026-05-02 10:35:55
70年的太子沒有白當,查爾斯三世的英式幽默不僅有典故,還帶刺

70年的太子沒有白當,查爾斯三世的英式幽默不僅有典故,還帶刺

書醬瞄瞄
2026-05-01 13:43:47
朝鮮“炮轟”日本!安理會激烈交鋒,4字前所未有,中朝統一戰線

朝鮮“炮轟”日本!安理會激烈交鋒,4字前所未有,中朝統一戰線

主宰穩場
2026-05-02 18:56:56
超級大買家,突然開始賣了。

超級大買家,突然開始賣了。

格隆匯
2026-04-26 12:14:02
蔡一杰腦癌擴散!59歲頻繁回內地農村老家,重溫童年時光

蔡一杰腦癌擴散!59歲頻繁回內地農村老家,重溫童年時光

原夢叁生
2026-04-30 08:10:48
14美元的種植箱:Aldi憑什么讓宜家緊張

14美元的種植箱:Aldi憑什么讓宜家緊張

字節漫游指南
2026-05-01 18:02:04
湖南師范大學團委副書記被舉報多個違紀違規違法行為,校方未回應

湖南師范大學團委副書記被舉報多個違紀違規違法行為,校方未回應

公評天下
2026-05-02 15:55:04
油價大降0.48元/升后,統計上漲540元/噸,6天后調價,1個好消息

油價大降0.48元/升后,統計上漲540元/噸,6天后調價,1個好消息

豬友巴巴
2026-05-02 16:30:03
高盛栽了!新進14只A股龍頭全跌超20% 最高虧42%

高盛栽了!新進14只A股龍頭全跌超20% 最高虧42%

慧眼看世界哈哈
2026-05-02 13:30:02
美伊談判,大消息!昨夜今晨,大漲

美伊談判,大消息!昨夜今晨,大漲

中國基金報
2026-05-02 08:17:51
央視坐實!成本2元售價19800元!不少人受騙,趕緊別用了

央視坐實!成本2元售價19800元!不少人受騙,趕緊別用了

番外行
2026-03-10 08:01:42
火箭被淘汰!謝潑德談今夏提升計劃,申京被打服,伊森希望續約!

火箭被淘汰!謝潑德談今夏提升計劃,申京被打服,伊森希望續約!

籃球資訊達人
2026-05-02 14:31:21
2026-05-02 20:31:00
DeepTech深科技 incentive-icons
DeepTech深科技
麻省理工科技評論獨家合作
16653文章數 514913關注度
往期回顧 全部

科技要聞

AI熱潮耗盡庫存,Mac Mini起售調高200美元

頭條要聞

美國制裁5家中企 商務部發禁令阻斷

頭條要聞

美國制裁5家中企 商務部發禁令阻斷

體育要聞

休賽期總冠軍,輪到休斯頓火箭

娛樂要聞

白百何罕曬大兒子 18歲元寶越來越帥

財經要聞

雷軍很努力 小米還是跌破了30港元大關

汽車要聞

新紀錄!零跑汽車4月交付達71387臺

態度原創

時尚
教育
手機
旅游
軍事航空

流汗不流“湯”!五一假期底妝指南請收好~

教育要聞

親愛的媽媽,孩子躺平不是你的錯,你也是“受害者”!

手機要聞

Nothing Phone多款手機在印度漲價,最高漲幅5000盧比

旅游要聞

五一假期次日:廣東百個鄉村和歷史古村落接待游客超40萬

軍事要聞

特朗普:對伊戰事結束 無限期延長;

無障礙瀏覽 進入關懷版