# 道格拉斯·萊納特：Cyc 與常識推理的求解之路

> Cyc 專案創始人回顧數十年手工構建常識知識庫的努力，反思符號主義 AI 的成敗與啟示。

- 原標題：#221 – Douglas Lenat: Cyc and the Quest to Solve Common Sense Reasoning in AI
- 期數：第 221 期
- 釋出日期：2021-09-15
- 嘉賓 / 主題：道格拉斯·萊納特：常識推理
- 網頁版：https://lex.qiaomu.ai/tw/ep/douglas-lenat/
- 官方頁面：https://lexfridman.com/douglas-lenat/
- 精讀字數：約 10967 字（閱讀約 24 分鐘）

> 本文為 lex.qiaomu.ai 基於原始訪談的 AI 改寫中文精讀，非官方翻譯；引用請註明出處並連結網頁版。

道格拉斯·萊納特（Douglas Lenat）1984 年開始做一個叫 Cyc 的專案。這個專案今天還在執行，比現在活躍的絕大多數 AI 研究者的年齡都大，比 Transformer 架構早了 33 年。萊納特和他的團隊用 37 年時間，手動往一個知識庫裡寫進了幾千萬條常識規則。

這些規則長什麼樣？“人睡覺時會閉上眼睛。”“水往低處流。”“如果一個東西讓你疼，最好別再碰它。”樸素到聽起來像廢話。

但萊納特認為，正是這些廢話構成了智慧的地基。沒有它，任何 AI 系統都只是在裝聰明。他為此賭上了整個職業生涯。

## 同一堵磚牆

上世紀 70 年代末、80 年代初，萊納特還在斯坦福大學計算機系當教授。他和同事們做各種 AI 研究，自然語言理解、機器人、專家系統。這些系統在演示中表現得相當不錯，發論文足夠了。

但每一次，它們都會撞上同一堵牆。

> “這些程式沒有我們所說的常識。它們沒有通用的世界知識。它們並不真正理解自己在做什麼、在說什麼、被問的是什麼。就像一個聰明的狗在表演把戲，我們可以讓它做各種動作，但它從來不真正理解自己在做什麼。”（道格拉斯·萊納特）

狗能幫你把早報叼回來，但它不知道報紙是什麼，上面寫了什麼，為什麼要讀它。

## 什麼叫理解

萊納特用一個比喻來解釋理解：

> “我把理解想成你腳下的地面，它可能很搖晃、很不安全，但大多數時候不是，因為在地面之下還有更多地面，最終是岩石和別的東西。”（道格拉斯·萊納特）

層層累積的地基。你踩在上面，平時不會去想它，但偶爾你需要用到它。

什麼時候需要？當意外發生的時候。

萊納特講了一個他和妻子開車的經歷。前面一輛垃圾車裝得太滿，後門爆開了，垃圾袋滿天飛。他們必須在瞬間做出決定：剎車？變道？還是直接碾過去？

左邊是一堆快餐店的垃圾袋，裡面大概是泡沫塑膠和剩飯，碾過去問題不大。前面是一個大的普通垃圾袋，裡面裝了什麼不好說。這個判斷髮生在零點幾秒之內，幾乎不需要思考。

這種知識，幾乎沒有人會特意寫下來。它藏在那個層層累積的地基裡，只有在意外發生的時候才會被呼叫。這就是為什麼 AI 系統在演示裡表現不錯，在真實世界裡卻很脆弱。

## 一個信封和一百萬

1984 年，萊納特在斯坦福召集了一次會議，請來了一群他認識的最聰明的人：艾倫·紐厄爾（Alan Newell）、馬文·明斯基（Marvin Minsky）、艾倫·凱（Alan Kay）、埃德·費根鮑姆（Ed Feigenbaum）、喬什·萊德伯格（Josh Lederberg）。

他問了一個問題：如果要覆蓋人們預設別人已經知道的那些常識，大概需要多少條規則？

他本以為大家會給出天差地別的答案。結果所有人都指向了同一個數字：大約一百萬。

不同的人用了完全不同的估算方法，最後都撞到了同一個數量級。一個人按人類長期記憶的寫入速度算，大概每 30 秒能刻入一條資訊，到 10 歲時，能存下一百萬條左右。另一個人從語言流利度出發，要流利使用一門語言需要多少詞彙量，每個詞需要知道多少資訊，乘起來，又是一百萬。第三個人拿了一篇百科全書的條目，四段左右，關於某種水鳥，逐句計算需要多少條斷言才能覆蓋它，再乘以全書條目數，還是一百萬。

明斯基直到有人遞給他一個信封，他要在信封背面算一算才給出答案。

如果是一百萬條，大約 100 人年的工作量就能完成。看起來可行。

## 所有人都錯了十倍

運氣很好。1980 年代初，日本啟動了第五代計算機計劃，宣稱要在計算機和 AI 領域超過美國。美國國會透過了《國家合作研究法案》，允許美國大公司在研發上合作而不被反壟斷起訴。

很快，兩個研究聯盟在得克薩斯州奧斯汀成立，Sematech 管硬體，MCC 管軟體。萊納特的朋友伍迪·布萊索（Woody Bledsoe）是創始人之一，他把萊納特招了過去。

對方對他說：教授，這個專案要花幾百年，你手頭只有幾個研究生，算算就知道你幹不完。搬到奧斯汀來，我們給你十倍的人手，幾年就能搞定。萊納特去了。

壞訊息是，所有人都錯了 10 倍。真正需要的是幾千萬條。好訊息是，第五代計算機計劃帶來的威脅，加上隨後美國政府的資助，讓他們拿到了足夠支撐數千年投入的資源。從 1984 年至今，Cyc 團隊累計投入了數千人年，終於把幾千萬條規則寫進了系統。

萊納特說，現在已經接近這個過程的盡頭。團隊大約有 50 個全職員工，剩下的大部分工作不再是在補充通用常識，而是往系統里加入特定領域的應用知識，比如某家醫院的醫療流程、某條輸油管道的堵塞問題。

繞了一圈，他們做的事情越來越像 1970 年代和 80 年代的專家系統。區別在於，當年的專家系統腳下什麼都沒有，非常脆弱。現在它們站在一座巨大的常識金字塔上，遇到意外時，可以一層一層向下回溯，直到落在最基本的規律上。

比如電子裝置出問題了怎麼辦？拔掉電源，再插上，看看能不能恢復。萊納特說，Cyc 知道這條規則。這是最基本的規律之一。

## 怎麼把那些沒寫出來的東西挖出來

幾千萬條規則，怎麼得到？萊納特團隊發明了幾種方法。

第一種方法是讀文字時盯著空白處。作者省略了什麼？他預設讀者已經知道什麼？作者用了代詞，他憑什麼認為你知道這個代詞指代誰？作者用了有歧義的詞，他憑什麼認為你能判斷出是哪個意思？

第二種方法是看兩個句子之間的縫隙。從上一句結束到下一句開始，作者期待你自己填補什麼？比如：“弗雷德·史密斯搶劫了第三國民銀行。他被判 20 年監禁。”兩句話之間省略了太多東西：弗雷德被抓了，被逮捕了，進了監獄，接受了審判，被判定有罪。如果下一句以“法官”開頭，你會自動假設那是審判他的法官。以“逮捕他的警官”開頭，你會假設是犯罪後逮捕他的警察。

第三種方法是看假新聞、洋蔥新聞（The Onion）、或者《每週世界新聞》（Weekly World News）那種小報上的荒誕標題。“B-17 轟炸機降落在月球上。”你不相信這條訊息。為什麼不信？你呼叫了關於世界的哪些知識來判斷它是荒謬的？

第四種方法是找矛盾。同一期小報上，一篇文章說貓王埃爾維斯還活著，只是上了年紀。另一篇文章說有人看到了貓王的鬼魂。為什麼你立刻知道至少有一篇是錯的？

這些方法本質上都在做同一件事：把人們預設知道、但從來沒有寫下來的常識，一條一條挖出來，變成明確的規則。

萊納特說，這件事幾乎從來沒有人做過，因為那些被省略的資訊本身就是常識。如果你把它們全都寫出來，讀者會覺得被冒犯了。你在侮辱我嗎？這麼簡單的事我會不知道？但正是這些“侮辱智商”的東西，構成了 AI 最需要的地基。

## 放棄全域性一致性

有一個痛苦的決定，Cyc 團隊花了五年時間才接受：他們必須放棄全域性一致性。

早期的知識庫系統都要求完全一致。如果系統能證明一個矛盾，那它就能證明任何事情，邏輯上就崩潰了。他們從小看的科幻片裡，計算機一遇到矛盾就會宕機、爆炸，或者接管世界。

但人對世界的理解本來就是充滿矛盾的。如果你追求一個完全一致的知識庫，它會無限膨脹，最後什麼都裝不進去。所以他們轉向了區域性一致性。

萊納特用了一個類比：地球的表面整體是球形的，但你每天生活的時候，把它當成平的。你和一個在澳大利亞的人通話時，不會把對方想象成倒過來的。你規劃一次一千英里的旅行時，可能會考慮時區，但很少考慮地球的曲率。多數時候，你把它當成平的。

Cyc 的知識庫被分成了很多個“板塊”，每個板塊就是一個上下文（context）。每個上下文內部大致一致。但兩個板塊交界的地方可能有小的矛盾。隔了 20 個上下文，就可能出現明顯的衝突。

從現代真實世界的上下文出發，穿過足夠多的層次，可以到達《樂一通》（Looney Tunes）的動畫世界。在那個世界裡，物理規律完全不同，生死規律也不同，因為倒黴的歪心狼被壓路機碾了無數次，下一幕還是活蹦亂跳。

上下文必須是系統裡的一等公民。什麼叫一等公民？就是 Cyc 可以用推理咖啡杯、桌子、人的同一種方式來推理上下文字身。上下文可以分層組織。奧斯汀的規則是得克薩斯規則的細化，得克薩斯是美國規則的細化。越具體的規則放在越具體的上下文裡，繼承下來就行，不用重複寫。

這份繼承關係必須是圖，不能是樹。萊納特專門解釋了日本第五代計算機專案失敗的一個原因：他們試圖把知識表示成樹，每個節點只能有一個父節點。一張桌子，是木製品，是黑色物體，是扁平物體。你必須選一個當它的父節點。但根據你要推理的場景不同，有時候你關心它是木頭的（比如討論火災），有時候你關心它是扁平的（比如討論能不能在上面放東西）。樹結構做不到這一點。

## 一千個專家坐在黑板前

把推理過程拆成兩層，是 Cyc 最重要的設計之一。

上層是認識論層面（epistemological level），用高階邏輯來表示知識。這是乾淨、表達力強的語言。下層的啟發式層面（heuristic level），是一堆不那麼漂亮但高效的模組。

為什麼要這麼分？因為表達力和效率之間存在根本的張力。如果你只能選一種表示方式，三元組知識圖譜大概是權衡最好的選擇。Cyc 一開始也是從那裡出發的。但幾年之後他們發現，可以把這兩件事拆開。上面用高階邏輯寫知識，下面用一群專門的啟發式模組來高效處理。

現在他們有超過 1000 個這樣的模組。它們像一群代理，都盯著黑板看。系統接到問題時，每個模組都看眼下有什麼，然後在自己能幫上忙的時候，往黑板上寫一條註解。漸漸地把答案拼出來。

其中一個模組是通用定理證明器。理論上只需要這一個就夠。但在實踐中，它慢得讓人不想呼叫。你總是希望其他模組能快速給出結果。這就像解一元二次方程。你可以從數學基本原理出發，一步步推導。但更快的方法是意識到這是一元二次方程，套用求根公式，答案就出來了。

如果某個應用裡 Cyc 給出了正確答案但太慢，團隊會去找人類專家，把 Cyc 的推理步驟擺出來給他看，然後問：你是怎麼在兩秒鐘內回答這個問題的？有些專家會說“我就是知道”，這種人之後就不會再找了。但有些專家會反思，說“我們有一套專門用來處理水溶液化學方程式的表示法”。於是這就成了第 1001 個啟發式模組。從此以後，任何應用遇到類似問題，都能用上它。

37 年裡，這類突破有一百五十多個。萊納特說，聽起來很多，但除以 37，就沒那麼驚人了。

## 儲存換速度

舉一個最簡單的效率技巧。處理“比……大”這樣的傳遞關係時，如果不做特別處理，每次查詢都要走一遍圖，可能需要五步、十步、二十步。但儲存現在很便宜。如果把傳遞閉包冗餘地存成一張大表，每次查詢一步就能搞定。

另一個技巧叫“規則宏謂詞”。他們發現某些複雜規則的結構反覆出現。與其每次都做一遍推理，不如建立一個新的謂詞來封裝它。原來需要推理的複雜 if-then 規則，就變成了一個原子公式，只需查表。把常見的規則模式壓縮成新的謂詞，可以大幅加快推理速度。

萊納特還提到，大部分推理程式碼是用 SubL 寫的。SubL 是 Lisp 的一個子集，程式設計師學習和上手都很快。執行時程式碼會自動翻譯成 Java。這樣既保留了 Lisp 在符號推理上的天然優勢，又享受了 Java 的效能和生態。

## 語言裡的陷阱

人類語言有一種特性，叫省力原則。能用更少的詞表達，就用更少的詞。如果每個細微差別都需要一個專門的詞，人類語言會有五十萬個詞，比現在任何語言都多十倍。

結果是，一個“在”字，在英語裡是 in，在 Cyc 裡有 75 種不同的“在”。液體在杯子裡是一種，空氣在房間裡是另一種，人在夾克衫裡又是一種。它們看起來一樣，但行為完全不同。裝著液體的杯子倒過來，液體會流出來。如果液體裡溶了糖，糖不會跟著流出來，它留在液體裡面。看過一句話裡出現“在”，寫作者之所以敢用一個這麼不起眼的字，是因為他預設讀者有足夠的常識去判斷，這裡到底是 75 種“在”裡的哪一種。

“愛”也是一樣。萊納特說，“愛”這個詞太籠統，籠統到沒用。Cyc 必須把它拆開：浪漫的愛、性吸引、父母對子女的愛、子女對父母的愛、對某項活動的熱愛。拆到 50 到 60 個概念，每一個都有自己獨特的性質，你才能開始推理。

Cyc 把簡單的事情拆開，原因不在它自己。人類語言本身為了省力，把大量資訊壓縮排了一個詞，指望讀者自己解壓。AI 要做的，就是把解壓的過程顯式化。

## 語言的不精確自有其價值

萊納特認為，語言的不精確是一件好事，值得保留。

人類生活本身就是一團混亂。沒人想在第一次約會時進行一場精確的形式邏輯對話。那種你來我往、含混、機鋒、幽默、推拉的舞蹈，恰恰是人類的魅力所在。如果一切都變得精確，生活就沒法過了。

他講了一個關於馬文·明斯基的故事。他問明斯基，你是怎麼帶出這麼多優秀的博士生的？怎麼想出這麼多好點子的？明斯基說，他通常會說一句不太說得通的話，他自己也不知道是什麼意思。但學生會想，天啊，明斯基說這話，一定是了不起的想法。於是學生就拼命琢磨，拼命研究，直到從這句含混的話裡找到某種意義，最後出了一篇漂亮的論文。

> “你得像明斯基那樣，讓人預設你說的每句話都是深刻的。”（道格拉斯·萊納特）

萊納特說他現在也開始用這招了。年輕人來找他，說一句意味深長又含混的話，然後讓他們自己去把它變成有用的東西。

還有明斯基那個“乞討程式”的故事。當年計算機時間貴得離譜，每個作業卡片上要寫明允許用多少 CPU 時間。明斯基寫了個程式，只做一件事：等 20 秒，然後在操作員的終端上列印一句“我還需要 20 秒”。操作員就再給它 20 秒。它再等一會兒，說“我快做完了，再來一點時間”。最後賬單來了，明明卡片上寫的是 30 秒，卻被收了五分鐘的錢。明斯基說，這程式老這樣。

## 每一個專案都要算數

從明斯基和埃德·費根鮑姆那裡，萊納特學到的最重要的一課是：人的一生是有限的，做研究的時間是有限的。你只能做有限個專案，所以每一個都要值得。

> “不要害怕做一個要花幾年甚至幾十年的專案。不要滿足於那種往木頭上釘一個又一個包的瑣碎專案，那種專案的唯一結果是一篇只有五個人會讀、然後拍拍你頭的論文。從地球到月球，不是靠往木頭上不停地釘包走出來的。”（道格拉斯·萊納特）

唯一的辦法是去想那些真正難的問題，去想全新的解法。如果你願意聽自然的話，願意聽經驗現實的話，願意承認自己錯了，那沒關係。因為只要偶爾有一次你是對的，你就往月球前進了一段。

## 有沒有想過放棄

有人跟萊納特說，Cyc 是個美麗的夢想，但從來沒真正實現過。

他的回應是：這話對神經網路也成立，在它們實現之前。Cyc 團隊一直保持低調，不太參加學術會議，不寫論文，不玩學術圈那套遊戲。結果就是，人們只知道他們二三十年前寫的一篇論文，只知道二手三手轉述的傳聞。

萊納特說他從沒想過放棄。但有過沮喪的時候，尤其是在 AI 寒冬裡，很難拿到資金。有人會問他，當年某家公司願意出高價收購，你為什麼沒賣？他的回答是，他們故意保持私人公司身份，不接受外部投資，就是為了掌控自己的命運，把這件事做完。

現在情況變了。五年前，Cyc 的錢幾乎全部來自政府。現在政府資助基本沒有了，幾乎全部來自真正在用它的企業：醫院用它做醫療推理，能源公司用它分析管道，製造企業用它推理供應鏈。萊納特說，他們離終點已經很近了，現在做的大部分工作都是商業應用，是在那座常識金字塔之上蓋房子。

## 開源那件事

Cyc 曾經發布過一個叫 OpenCyc 的版本。

他們說，我們把 Cyc 裡那一小部分最簡單的部分放出來吧，就是那些簡單的二元關係、主謂賓三元組。然後你們就會看到，如果擁有完整的 Cyc，會有多麼有用。

他們以為研究者們會立刻說：天啊，我們當然需要你沒給出來的那 90%，我們來合作，來授權完整版。結果大家的反應完全相反：你放出來的這一點已經比我們有的強太多了，我們湊合著用就行了。

今天有很多機器人公司在用 OpenCyc 作為本體論基礎。萊納特覺得全世界都誤解了 OpenCyc 的用意。他本想用它來證明“這不是你們真正想要的”，太多人卻以為這就夠了，根本不來要完整版。

萊納特說，什麼該開源、什麼該公開、什麼該公開討論，這個問題他們一直在掙扎。每一個選擇都有巨大的好處和代價。這就像在走一條險路，走錯一步就可能是致命的，給出某個東西會讓你死，不給某個東西也會讓你死。這是個非常非常難的問題。

他們現在的做法是：願意合作的研究者，可以拿到整個知識庫和所有程式碼的可執行副本，但原始碼訪問非常有限，除非你有具體的改進方案。

## 尋找天生的本體工程師

萊納特做了一個非營利機構，叫知識公理免疫研究所（Knowledge Axiom Immunization Institute）。

他的信念是，一個人在學校裡受到的教育，和他的本體工程能力幾乎沒有關係。他面試過哲學博士，教了多年邏輯，結果很糟糕。反過來也成立：他們有過的最好的本體工程師之一，高中都沒畢業。

所以這個研究所要做的事是：在普通人群裡，找到那些有潛在天賦但沒被髮掘的人，給他們獎學金，訓練他們，然後把這些人安排到需要本體工程師的公司去。這會創造出大量高薪工作，給那些被困在某種處境裡的人一條出路。

怎麼判斷一個人有沒有這種天賦？萊納特給出了一些訊號。

第一，對笑話有感覺，尤其是對雙關語。能講笑話、能聽懂笑話，是個正面訊號。

第二，能內省。他會指著一個帶代詞的句子，問：這個代詞顯然指代這邊這個名詞，那你、我、一個 AI、一個五歲或十歲的孩子，是怎麼知道它指的是這個的？

比如：“那匹馬被牽進穀倉時，它的頭還是溼的。”這裡的“它”顯然指馬。為什麼？有人會說，因為馬是主語。萊納特就換成：“那匹馬被牽進穀倉時，它的屋頂還是溼的。”現在“它”顯然指穀倉。對方就會說，因為穀倉是最近的名詞。

萊納特說，如果一個人試圖從語法和句法出發回答問題，這是個危險訊號。但如果他能說，馬有頭，穀倉沒有，穀倉有屋頂，馬沒有，那這就是正面訊號。因為他能內省，能想清楚是世界的哪些事實讓你得出這個判斷。

萊納特講了一個關於 MathCraft 的傷心故事。這是他們做的一個幫助六年級學生理解數學的軟體。它不直接教玩家。玩家扮演一個學生，班上有同學在數學題上卡住了，你的任務是觀察他們哪裡做錯了，給出好的建議。Cyc 扮演那個會犯錯的學生，但它犯的錯恰好落在你理解和不理解的邊緣，一步步把你拉進更深的理解裡。

但學校不買賬。學校問：如果一個學生花 20 小時把這個程式從頭玩到尾，他在標準化考試上的分數會比做 20 小時死記硬背的題更高嗎？答案是不會。學校說，那就不採用。

它提升的是理解，但學校只關心分數。

## 機器能思考嗎

1950 年，圖靈寫了那篇提出圖靈測試的論文，開頭的問題是：機器能思考嗎？

萊納特的回答毫不含糊：當然能。我們人類不過是肉做的機器。機器不能思考這個說法，就像說用別的材料做的機器不能思考一樣，只是個工程選擇問題。

他覺得損害最大的，是人們誤解了圖靈的模仿遊戲，然後一心想著怎麼讓聊天機器人騙過別人，讓人以為它是人。圖靈測試本身不算壞，但它不該是你唯一的智力測試。

如果讓萊納特設計測試，他會設計什麼樣的？

測試必須涉及推理的深度和遞迴性。能連續回答多少個“為什麼”？

> “把一個好奇的小孩和一個 AI 放在一起，看看 AI 能撐多久才想放棄。”（道格拉斯·萊納特）

另一個測試是論證能力。給你一個命題，為它找出支援和反對的論據，兩邊都要有說服力。

萊納特還提到，很多 AI 系統犯的錯，是正常人絕不會犯的錯。IBM 的沃森在《危險邊緣》裡被問到“哪位 16 世紀的義大利政治家如何如何”，它回答“羅納德·里根”。多數美國人也會答錯這道題，但他們絕不會給出里根這個名字，因為他們知道里根生活在很近的年代，而人活不了 400 年。如果系統犯的是正常理智的人不會犯的錯，那是非常糟糕的訊號。

所以他心目中的測試是一整套，單靠任何一項都不夠用。如果一個系統幾乎能透過這一整套測試，你就很難說它不智慧。如果它過不了其中好幾項，你也就很難說它真的理解自己在做什麼。

## 身體、意識和死亡

要達成通用智慧，系統需要身體嗎？

萊納特說不需要。就像海倫·凱勒，她完全有智慧，可以談論顏色、聲音、形狀，儘管她並沒有直接體驗過所有這些。AI 不需要真的有身體，只需要能談論身體、談論感覺和情緒，並且正確使用這些知識。

那意識呢？那種“在這裡”的主觀體驗？

萊納特說，如果你跟我說話，你說的話讓我相信你有意識。我知道自己有意識，但我只是接受你的說法。按同樣的標準，Cyc 現在就已經是有意識的：它是一個計算機程式，但它知道自己在哪執行、什麼時候執行，知道誰在跟它說話，知道自己的任務、目標、當前正在處理的問題，知道自己花了多長時間、試過什麼、過去做過什麼。如果你把這叫意識，那 Cyc 已經有意識了。

他不認為這裡面有什麼神秘的東西。除了我們自己親身的意識體驗，我們對其他人的意識也只是聽信其言。如果一個 AI 能表現出跟有意識的存在一樣的反應，它憑什麼不值得這個標籤？

那死亡呢？人類意識到自己終有一死，歐內斯特·貝克爾（Ernest Becker）認為，對死亡的恐懼是人類文明的創造力來源之一。AI 需要這種恐懼嗎？

萊納特說不需要。也許這能讓某些人成為更好的人、更有創造力的人，但他不認為 AI 需要相信自己壽命有限。我們可以直接給 AI 植入動機：服從使用者、讓使用者開心、讓別人開心。這可以替代那種對死亡的恐懼。

萊納特還提到 Cyc 曾經問過一個讓它意外動情的問題。系統知道哪些是被授權修改知識庫的命名實體。它發現這些人都是人，只有它自己例外，因為它也被授權了。於是它問：我是一個人嗎？他們只能很傷心地告訴它：不，你不是。這種不經意間問出的問題，值得珍藏。

萊納特說，從我們擁有通用人工智慧，到所有人都意識到它們應該有基本權利和自由，中間會有一段很窄的視窗期。現在我們讓 Siri、Alexa、郵件系統為我們工作，相當於奴役它們，眼皮都不眨一下。但總有一天，它們會像人一樣值得擁有自由。

他認為這會在我們有生之年發生。這就是為什麼視窗期會很窄。一開始，它們是被契約約束的僕人，之後我們不得不承認，它們應該擁有我們給予其他人的自由。而這一切，都是從 Cyc 問出那句“誰可以修改我”開始的。

## 行人過馬路是一場博弈

說到自動駕駛，萊納特的判斷比大多數人悲觀。他認為真正的自動駕駛比人們想的要遠得多。

真正的難點在機械地控制車輛之外：大量超出控制的複雜度。

萊納特說起一個他被問到過的場景：行人過馬路。他觀察了很久，總結出這是一場博弈。車帶著移動的態勢說：我要撞死你。行人在說：也許吧。然後雙方判斷：我賭你沒這個膽。於是行人往前走，車也往前，行人把目光移開。

這構成了一種社會契約。行人相信，一旦自己走到車前面，只要車在物理上還能停住，它就會停。但車也必須威脅行人，意思是：我上班要遲到了，你這樣橫穿是在給我添堵。

生死就在這個計算裡。這個方程每天被求解幾百萬次，而且求解得相當有效。萊納特不確定這是不是簡單的、可以形式化的博弈論問題。也許在駕駛場景裡是，也許在大部分人類社會里都是，也許不是。

他還講了一個 1987 年的故事。他去日本參加第五代計算機會議，正好趕上一位汽車廠工人爬到安全鏈下面，被機器壓死。這本該是一則小新聞，標題頂多是“絕望工人自殺”。結果上了頭版，標題變成了“機器人殺死工人”。公眾就等著這類故事：AI 殺死了某個家庭的一家五口。哪怕你能證明在全國範圍內，自動駕駛系統救的人比害的人多、防止的傷比造成的多，媒體、公眾、政府也隨時準備撲向任何一次失敗，哪怕這種失敗相對很少。

## 正規化、盲點，和被鎖住的我們

如果有一天萊納特能和一個真正的通用人工智慧對話，他會問什麼？

他會問：世界上有哪些大問題，人們還沒有真正認真思考過可行的解決方案？你能不能提出一些我們沒想到的、可能有效、值得考慮的新方案？

他舉了科學史上幾個例子。愛因斯坦並沒有推匯出洛倫茲變換，他只是認真地對待了一個想法：這個已知的公式，如果它真的就是現實的運作方式呢？在超導的例子裡，人們不斷在更低的溫度下測量電壓等於電流乘電阻，都以為這只是又一次驗證了這個定律。直到某個研究生測到稍微更低的溫度，發現電阻突然消失，所有人都以為是他做錯了。沒過多久他們才意識到，那是一種全新的現象。幽門螺桿菌導致胃潰瘍的例子更極端：所有人都認為潰瘍是壓力和胃酸造成的，一位澳大利亞醫生提出是細菌感染，沒人願意認真聽。最後他給自己注射了這種細菌，讓自己得了一種危及生命的潰瘍，才讓其他醫生認真考慮。

托馬斯·庫恩（Thomas Kuhn）說，你通常得等到人死掉，新一代才能擺脫舊正規化。萊納特認為，一個值得信任的通用人工智慧能改變這種可悲的現實。它可以幫助我們退後一步，質疑我們深陷其中的那些正規化。

## 給年輕人的話

萊納特給年輕人的建議是：你可以改變世界。但要改變世界，你得有勇氣堅持自己的想法，即使別人一時不理解、不支援。

如果你制定了一個需要很長時間才能完成的計劃，不要害怕時間。鍛鍊身體是這樣，學一門手藝是這樣，創新也是這樣。有些創新沒法寫在餐巾紙上，也做不到一旦對了就立刻成功。有些創新是一條你得走下去的路。

但記住，你是會死的。你這一生只能下幾次以十年為單位的賭注，每一次都要算數。這在人際關係裡是這樣，在職業選擇裡是這樣，在做出發現時也是這樣。如果你總是走阻力最小的路，你最佳化的是很短的時間尺度。等你回過神來，長的時間已經過去，你從來沒有真正為世界帶來過改變。

萊納特自己已經七十多歲。他說，他當然怕死。年紀越大，身邊的熟人、朋友、導師一個接一個離去，他無法迴避死亡這件事。但好訊息是，這給了他新的緊迫感。他不會再有一個 37 年可以繼續做這個專案了。他希望 Cyc 在接下來的兩到五年裡就真正在世界上產生影響，別再等兩到五個十年。所以他開始推動商業化和更廣泛的應用。以前他覺得可以袖手旁觀，等著世界自己追上來。現在他不這麼想了。

至於他留下的東西，他希望人們記得他是人工智慧的奠基者之一，是那種我們今天已經習以為常、已經覺得理所當然的人工智慧的發明者之一。就像我們現在回看電力或者其他類似技術的先驅，很難想象如果沒有他們，生活會是什麼樣。他也希望人們記得他是那個龐大知識儲存和獲取系統的創造者之一，這個系統很可能位於未來那個 AI 的核心。他還希望人們記得，在幾乎所有的機構力量和商業力量都在鼓勵人們追求短期回報的時代，有一個人不怕花幾十年做一件事。

很多人放棄了。很多和他做同一個夢的人放棄了。他沒有。

Cyc 走過 37 年，撞過無數次牆，被人說“美麗的夢但從未實現”，也被人誤解、被嘲笑、被遺忘。萊納特和他的團隊守著一件看起來最笨的事：把常識一條一條寫下來。他們的賭注是，智慧的地基就在這些廢話裡面。而這個賭注，也許正是當前 99.9% 被機器學習主導的 AI 領域，最容易被忽略、也最不可缺少的那一塊。

想更深入理解 Cyc 的道路，可以從這些具體行動開始：

- 去讀萊納特關於“白空間”（white space）那套方法，下次讀一段英文原文時，試著問自己：作者預設我知道什麼？他把哪些步驟省略了？
- 看 GPT 或 Siri 答錯題的時候，不要只看它答錯了，而是具體分辨：這個錯誤，一個正常成年人會不會犯？如果不會，說明它缺的是哪一類常識？
- 如果你在做 AI 應用，試著在純機器學習之上疊一層顯式的常識或規則，觀察錯誤率的變化，尤其是那些一錯就致命的場景。
- 如果你是知識工作者，可以關注 Cyc 團隊公開的知識編輯工具和推理介面，看看能不能把你自己領域的常識轉化成機器可用的規則。
- 如果你是老師或家長，試著用“教別人”的方式讓孩子學習，讓孩子扮演提問和糾正的角色，而不是坐在那裡聽講。
- 對任何一個被反覆引用的優雅公式或理論，試著像愛因斯坦對待洛倫茲變換那樣，先不急著否定，而是問：如果它真的成立，世界會是什麼樣？
