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

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

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.

相關推薦
熱點推薦
突發!美國國會提議FDA禁用中國臨床數據,中國藥企和醫藥BD面臨挑戰

突發!美國國會提議FDA禁用中國臨床數據,中國藥企和醫藥BD面臨挑戰

藥時空
2026-05-02 10:13:35
賽后謝場環節,浙江死忠球迷區打出橫幅:拒絕外行指導內行

賽后謝場環節,浙江死忠球迷區打出橫幅:拒絕外行指導內行

懂球帝
2026-05-02 22:44:16
被震撼到了,實拍橘子洲頭掃碼搶票人群!本地人:歡迎大家來到長沙,吃好逛好

被震撼到了,實拍橘子洲頭掃碼搶票人群!本地人:歡迎大家來到長沙,吃好逛好

三湘都市報
2026-05-02 11:10:22
斯諾克賽程:半決賽完結,吳宜澤或復刻趙心童成就,巫師沖紀錄?

斯諾克賽程:半決賽完結,吳宜澤或復刻趙心童成就,巫師沖紀錄?

劉姚堯的文字城堡
2026-05-02 08:59:06
皇馬悔青腸子!死保姆巴佩的同時,當初錯過的神鋒正在持續封神

皇馬悔青腸子!死保姆巴佩的同時,當初錯過的神鋒正在持續封神

奶蓋熊本熊
2026-05-03 02:07:54
美聯儲變天:鮑威爾打破75年慣例, 新主席卻要“閉麥”?

美聯儲變天:鮑威爾打破75年慣例, 新主席卻要“閉麥”?

每日經濟新聞
2026-05-02 15:05:53
膠著!斯諾克世錦賽3日凌晨 13-13 吳宜澤打平艾倫 防守欠佳進攻在線

膠著!斯諾克世錦賽3日凌晨 13-13 吳宜澤打平艾倫 防守欠佳進攻在線

等等talk
2026-05-03 03:55:13
51歲黃渤三亞隱居,百億身家難抵阿爾茨海默隱痛

51歲黃渤三亞隱居,百億身家難抵阿爾茨海默隱痛

君笙的拂兮
2026-05-02 19:20:31
徐靜蕾京圈傳聞曝光:上流社會的光鮮與陰暗

徐靜蕾京圈傳聞曝光:上流社會的光鮮與陰暗

悅君兮君不知
2026-05-02 02:29:32
特朗普這次訪華恐怕徹底終結了一個時代!

特朗普這次訪華恐怕徹底終結了一個時代!

隔壁董小姐
2026-05-02 20:22:07
女子睡夢中184萬被自動捐給三家慈善機構,支付寶回應令人震驚。

女子睡夢中184萬被自動捐給三家慈善機構,支付寶回應令人震驚。

一絲不茍的法律人
2026-05-02 23:26:44
心理學有個殘忍發現:讓別人對你產生敬畏感的,不是你的強勢,不是你的反擊,而是你骨子里的這兩種“人性破綻”操控術

心理學有個殘忍發現:讓別人對你產生敬畏感的,不是你的強勢,不是你的反擊,而是你骨子里的這兩種“人性破綻”操控術

心理觀察局
2026-05-02 06:39:34
海南放話,救人夫妻獲終身特權!女子溺水原因流出,會游泳也難逃

海南放話,救人夫妻獲終身特權!女子溺水原因流出,會游泳也難逃

奇思妙想草葉君
2026-05-01 21:37:00
李悅州準絕殺!浙江加時逆轉寧波2-0進八強將戰深圳 蘭道夫33分

李悅州準絕殺!浙江加時逆轉寧波2-0進八強將戰深圳 蘭道夫33分

醉臥浮生
2026-05-02 22:05:49
慘烈!五一票房11年來最差,陳思誠呼吁給中國電影機會

慘烈!五一票房11年來最差,陳思誠呼吁給中國電影機會

文娛春秋Plus
2026-05-02 13:45:48
國乒心態差!林詩棟緊張擔心梁靖崑輸球,王楚欽強裝鎮定卻露餡兒

國乒心態差!林詩棟緊張擔心梁靖崑輸球,王楚欽強裝鎮定卻露餡兒

三十年萊斯特城球迷
2026-05-02 22:23:49
官方回應劉曉慶風波!王婆說話陰陽怪氣,網友:慶奶75了還想怎樣

官方回應劉曉慶風波!王婆說話陰陽怪氣,網友:慶奶75了還想怎樣

天天熱點見聞
2026-05-02 17:15:14
爭議!中超裁判單場3次誤判,無視紅牌犯規,名記:妥妥主場哨!

爭議!中超裁判單場3次誤判,無視紅牌犯規,名記:妥妥主場哨!

國足風云
2026-05-02 21:29:07
這幅畫把中國美協釘在恥辱柱上

這幅畫把中國美協釘在恥辱柱上

深度報
2026-05-02 21:50:49
40歲女人親口承認:最抵抗不了男人的4種“壞”,越壞越離不開

40歲女人親口承認:最抵抗不了男人的4種“壞”,越壞越離不開

皓皓情感說
2026-05-02 07:45:03
2026-05-03 04:44:49
DeepTech深科技 incentive-icons
DeepTech深科技
麻省理工科技評論獨家合作
16653文章數 514913關注度
往期回顧 全部

科技要聞

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

頭條要聞

父母互相拍照 6歲兒子失足墜落20米山崖

頭條要聞

父母互相拍照 6歲兒子失足墜落20米山崖

體育要聞

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

娛樂要聞

高圓圓趙又廷游三亞 牽手逛街好甜蜜

財經要聞

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

汽車要聞

同比大漲190% 方程豹4月銷量29138臺

態度原創

手機
游戲
時尚
教育
藝術

手機要聞

拯救者手機Y70新一代本月發布!驍龍8 Gen5+2K屏 功耗比友商1.5K還低

合作恐怖《Devil of the Plague》登陸Steam EA

連衣裙還得是“法式”,性感嫵媚卻不輕浮

教育要聞

高考地理:45個地理名詞及概念

藝術要聞

看!海夫蘭筆下的美女,令人驚艷的藝術之美!

無障礙瀏覽 進入關懷版