International Essays

ChatGPT 擁有 “Wolfram 超能力”!

​
要使用此處敘述的功能, 請從 ChatGPT 中選擇並安裝 Wolfram plugin。請注意此功能目前僅適用於某些 ChatGPT Plus 用戶; 更多詳細資訊請參閱 OpenAI's announcement。

短短兩個半月...

一月初, 我寫了篇文章有關將 ChatGPT 連結到 Wolfram|Alpha 的可能性。今天—僅短短的兩個半月後—我很高興地宣佈這件事已經發生了! 感謝我們團隊和 OpenAI 一些英雄的軟體工程, ChatGPT 現在可以訪問 Wolfram|Alpha—和 Wolfram 語言—賦予我們認爲可能的 “計算超能力”。這一切都還處於早期階段, 可是已經非常令人印象深刻—我們可以開始看到所謂的 “ChatGPT + Wolfram” 的强大功能 (甚至可能是革命性的)。
早在一月份, 我就指出, 作爲 LLM 神經網路, ChatGPT—以文字方式產生 ”就像” 從網路讀取資料的非凡實力等等。—本身無法進行實際的重要計算, 或系統性的產生正確資料等等。(而不是僅僅 “看起來大致正確”) 但是當與 Wolfram plugin 連接時, 就可以做到這些事。這是我從一月開始的 (非常簡單) 第一個範例, 但是現在由安裝了 “Wolfram 超能力” 的 ChatGPT 完成:
這是一個正確的結果 (但在一月時不是)—透過實際的計算。這裏有額外的表現: 即時視覺化:
這是怎麽產生的?在幕後, ChatGPT 在為 Wolfram|Alpha 制定查詢—然後發送到 Wolfram|Alpha 進行計算, 然後根據讀取返回的結果 “決定要説什麽”。透過點擊 “Used Wolfram” 框可以來回查看此内容 (而經由查看内容可以檢查 ChatGPT 沒有 “編造任何東西”):
在 ChatGPT 和 Wolfram|Alpha 方面, 這裡發生了許多重要的事情。但結果是一個好的、正確的結果, 編織成一段漂亮、流暢的文字。
讓我們試試另一個例子, 也是我在一月份寫的:
一個很好的結果, 值得使用我們的技術。同樣的, 得到一個額外的結果:
一月的時候, 我注意到當 ChatGPT 在給出下列提示時, 最後只是 “編造” 看似合理 (但是錯誤) 的資料:
但是現在調用 Wolfram plugin 並且得到好的, 權威的答案。而且, 作爲額外的結果, 我們可以進行視覺化:
一月份的另一個例子現在正確地呈現了:
如果你實際上試這些例子, 不要訝異如果產生與此處呈現的不同結果 (有時好些, 有時差些)。由於 ChatGPT 使用隨機性來回答問題, 因此即使詢問完全相同的問題, 也會產生不同的結果 (即使是一個新的對話)。感覺非常 “人性化”。但是不同於在 Wolfram|Alpha 與 Wolfram 語言獲得的 “right-answer-and-it-doesn’t-change-if-you-ask-it-again” 可靠經驗。
這是一個 ChatGPT (相當令人印象深刻) 與 Wolfram plugin “進行對話” 的例子, 當一開始發現 “wrong Mercury”:
這裏有件特別重要的事情是 ChatGPT 不是只利用來執行 “死胡同” 操作, 例如顯示網頁內容。相反的, 我們這些行為更像是 ChatGPT 的真正 “大腦植入物”—在需要的時侯提出詢問, 然後我們給予回應, 使其可以回饋到正在處理的工作中。目睹此行動過程實在令人印象深刻. 而且—雖然肯定有許多可以精進的工作—已經有很長的路要走 (除了其他事項) 讓 ChatGPT 能夠提供準確、精選的知識和資料—以及正確的、重要的計算。
但還有更多。我們已經看到能夠為 ChatGPT 提供自定義創建的視覺化效果的例子。憑藉計算的能力, 我們通常能夠製作 “真正原創”的內容—以前從未做過的計算。還有一點:當 “pure ChatGPT” 是僅局限於 “在訓練中學到的”, 透過我們則可以得到最新的資料。
這個可以基於即時的資料饋送 (這裡我們被調用兩次;每個地點一次):
或者可以基於 “科學式” 的預測計算:
或兩者都有:

一些可以做的事情

Wolfram|Alpha 和 Wolfram 語言 涵蓋了很多内容:
現在 (幾乎) ChatGPT 可以使用所有的内容—開闢新的可能性的巨大廣度和深度。為了做些了解, 這裏有一些 (簡單) 例子:

現代人 + AI 工作流程

ChatGPT 旨在與人類進行來回對話。但是當對話中包含實際的計算和計算知識時, 我們能做什麼呢?這裏有個例子。首先問一個 “世界性知識” 問題:
而且, 是的, 透過 “opening the box” 我們可以檢查是否提出了正確的問題, 以及得到的原始回答是什麽。然後現在我們可以繼續索取一張地圖:
我們可以使用 “漂亮些” 的地圖投影。藉由 ChatGPT 基於網路閲讀等的 “常識”, 我們可以要求使用:
可是也許我們想要一張熱圖。同樣的, 要求 ChatGPT 在使用我們的技術下創建出來:
讓我們再改變投影, 現在再次要求 ChatGPT 使用 “常識” 選擇:
而且, 是的, 得到了 “正確的” 投影。但是沒有對中。所以讓我們要求來解決這個問題:
好的, 我們這裏有些什麽?我們有一些 “合作” 建造的東西。我們逐漸地說出想要的東西; AI (也就是 ChatGPT + Wolfram) 逐步地構建出來。但是我們實際上得到了什麽?是一組 Wolfram 語言代碼—可以從 “opening the box” 看到, 或是就詢問 ChatGPT:
如果將代碼複製到 Wolfram 筆記本, 我們可以立即執行並發現有一個 “豪華特色”—就如 ChatGPT 在其描述中宣稱的, 有動態提示框給出每個國家的名稱:
(而且, 是的, 有些遺憾的是這段代碼中只有明確的數字, 而不是關於牛肉生產的原始符號查詢。發生這種情況是因為 ChatGPT 向 Wolfram|Alpha 提出原始問題, 然後將結果提供給 Wolfram 語言。但是我認為整個序列的處理非常令人印象深刻。)

怎麼運作的—以及與 AI 爭論

ChatGPT 與 Wolfram plugin 在 “幕後” 發生了什麽?還記得 ChatGPT 的核心是從網路訓練來的 “大型語言模型” (LLM), 可以從任何提供的文字來產生 “合理的延續”。但是作爲訓練的最後階段, ChatGPT 也被教導如何 “進行對話”, 以及何時 “向某人提問”—那個 “某人” 可能是一個人, 或是一個外掛程式。尤其特別的是學習與 Wolfram plugin 連接的時機。
Wolfram plugin 事實上有兩個切入點: Wolfram|Alpha 入口點和 Wolfram 語言入口點。Wolfram|Alpha 版本對於 ChatGPT 在某種意義上是 “較容易” 處理; Wolfram 語言則畢竟是更具强大的功能。Wolfram|Alpha 較爲容易的原因是以自然語言作爲輸入—這正是 ChatGPT 經常處理的内容。而且, 更重要的是, Wolfram|Alpha 的構建是寬容系統—實際上爲了處理 “典型的類人輸入”, 不管輸入會有多混亂.
另一方面, Wolfram 語言被安裝為精確且定義明確—能夠用於構建任意複雜的計算塔。在 Wolfram|Alpha 内部所處理的是將自然語言翻譯成精準的 Wolfram 語言。其實際上是在捕捉 “不精確的自然語言” 並將其 “匯集” 到精確的 Wolfram 語言中。
當 ChatGPT 調用 Wolfram plugin 時, 通常只是提供 Wolfram|Alpha 自然語言。但是截至目前爲止, ChatGPT 本身對編寫 Wolfram 語言已有某種程度的了解。在最後, 如同我們之後會討論到的, 這是一種更靈活、更強大的溝通方式。 但是除非 Wolfram 語言代碼完全正確, 否則並不會起作用。要做到這一點, 有部分原因在於訓練。這裏還有另一件事: 給定一些 Wolfram plugin 可以執行的候選代碼, 如果結果是明顯錯誤 (例如產生很多錯誤), 則 ChatGPT 可以試著修復, 然後再運行一次。(更詳細地說, ChatGPT 可以嘗試產生要運行的測試, 如果失敗的話就更改代碼。)
這裡還有很多需要作開發, 可是有時侯已經可以看見 ChatGPT 來回多次。可能是在重寫 Wolfram|Alpha 的問題 (例如將不相關的部分刪除來作簡化), 或可能決定在 Wolfram|Alpha 和 Wolfram 語言之間切換, 或是可能重寫 Wolfram 語言代碼。告訴 ChatGPT 如何做這些事情是開始 “plugin prompt” 的工作。
撰寫提示是個奇怪的行爲—或許是我們第一次嘗試 “與外星人溝通” 的嚴肅經驗. 當然, “外星人” 已經有大量人類文字編寫的訓練是很有幫助的。因此, 例如, 他懂英語 (有點像所有那些老掉牙的科幻小說中的外星人...)。我們可以告訴他事情像 “如果用戶輸入語言不是英語, 請翻譯成英語並向 Wolfram|Alpha 作適當的查詢然後以原始輸入的語言提供回覆。”
有時我們發現我們必須非常堅持 (注意全部大寫): “在編寫 Wolfram 語言代碼時, 永遠不要對變數使用蛇形命名法; 總是使用駝峰式大小寫命名變數。” 即使如此堅持, ChatGPT 有時侯仍會做錯事。“提示工程” 的整個過程感覺像動物在爭論: 你想要讓 ChatGPT 做你想做的事, 但很難知道要如何達到這個目標。
最後這些可能會在訓練或提示中得到處理, 但截至目前 ChatGPT 有時不知道 Wolfram plugin 何時可以提供協助。例如, ChatGPT 猜測這應該是一個 DNA 序列, 但是 (至少在這個對話中) 不立即認爲 Wolfram plugin 可以做任何處理:
說 “Use Wolfram”, 就會被傳送到 Wolfram plugin, 而確實可以很好地被處理:
(有時你可能還想特別說 “Use Wolfram|Alpha” 或 “Use Wolfram 語言”。尤其是 Wolfram 語言的情況下, 你可能想要看實際發送的代碼, 並告訴 ChatGPT, 例如不要使用想到但實際上並不存在的函數名稱。)
當 Wolfram plugin 被賦予 Wolfram 語言代碼時, 基本上就是運行該代碼, 然後返回結果—可能是圖形或是數學公式, 或只是文字。但是被賦予 Wolfram|Alpha 輸入時, 將傳送到特別的 Wolfram|Alpha “for LLMs” API 端點, 結果會以文字返回以供 ChatGPT “讀取”, 並有效地作爲 ChatGPT 正在撰寫的進一步文字提示。看看這個例子:
結果是一段很好的文字, 包含問題的答案以及 ChatGPT 決定提供的訊息。但在 “内部” 我們可以看到 Wolfram plugin (和 Wolfram|Alpha “LLM 端點”) 實際上做的:
這裏有相當多的額外資訊 (包括一些漂亮的圖片!)。但是 ChatGPT “決定” 只挑出一些來回答。
此外, 需要强調的是如果要確定有得到認爲想要的答案, 始終檢查 ChatGPT 實際上傳送到 Wolfram plugin 的内容—以及其返回的結果。一個增加到 Wolfram plugin 的重要内容是 “事實化” ChatGPT 的輸出—並了解 ChatGPT “ 何時發揮想像力” 以及何時提供可靠事實的方法。
有時在試著了解發生的狀況時, 即使只是得知 Wolfram plugin 的發送内容, 及將其作爲直接輸入到 Wolfram|Alpha 網站或 Wolfram 語言系統 (例如 Wolfram Cloud) 也很有用。

Wolfram 語言作爲人類 -AI 合作的語言

ChatGPT 的一大優點是 (老實説, 出乎意料) 能夠從粗略的描述開始, 然後從開始修飾, 完成輸出成品—例如一篇文章, 信件, 法律文件等。在過去, 人們可能想試著以 “手動” 的方式從 ”樣板” 片段開始, 然後修改, “黏合” 起來等等。但是 ChatGPT 幾乎讓此過程過時了。事實上, ChatGPT 從網路 “閲讀” 的内容 “吸收” 大量的樣板—現在基本上可以充分無縫地 “適應” 處理所需。
那麼代碼呢?在傳統的程式語言中, 編寫代碼往往涉及大量的 “樣板工作”—而實際上許多使用此類語言的程式員花費很多時間從網路上複製大塊代碼來構建程式。但是現在, 突然間 ChatGPT 似乎讓很多這樣的過程都過時了。因爲它可以有效地自動組合任何類型的樣板代碼—只需一點點 “人類輸入”。
當然, 必須有一些人類輸入—否則 ChatGPT 無法知道應該編寫何種程式。但是—有人可能想知道—爲什麽在代碼中必須要有 “樣板”?難道不應該有一種語言—就在其本身的等級—所需要的只是少量的人類輸入, 不用任何 “樣板裝襯”?
好吧, 這就是問題所在。傳統的程式語言核心是用電腦術語告訴電腦該做什麼: 設定這個變數, 測試那個條件, 等等。但並不一定要這麽做。相反的, 可以從另一端開始: 利用人們自然思考的方式, 然後試著以計算的方式表達—並有效地將其實際在電腦上的執行過程自動化。
好吧, 這是我現在花了四年多時間致力於的事情。也是現在 Wolfram 語言的基礎—我現在覺得稱爲 “全面性計算語言” 是有道理的。這是什麼意思?這意味著就在語言中有世界上談論的抽象和真實的事物, 無論是圖形、圖像或微分方程式—城市、化學、公司或電影。
為什麼不直接從自然語言開始呢?是這樣的, 正如 Wolfram|Alpha 的成功所示範的—在某種程度上是可行的。可是一旦試著指定更詳細的内容, 自然語言 (像 “法律術語”) 充其量就會不靈光—而我們確實需要一種更有條理的方式來表達。
歷史上有一個很好的數學例子。大約 500 年前, 自然語言幾乎是 “表達數學” 的唯一方法。但隨後發明了數學符號, 數學開始進步起飛—隨著代數、微積分以及最終所有各種數學科學的發展。
我對 Wolfram 語言的最大目標是創建一種計算語言, 可以為任何可用 “計算表達” 的事物做同樣的事情。為實現此目標, 我們需要建立一種可以自動處理並且本質上知道很多事情的語言。而此結果是建立了人們可以方便地 “以計算方式表達” 的一種語言, 就像傳統的數學符號 “用數學方式表達” 一樣。一個關鍵點是—不同於傳統的程式語言—Wolfram 語言不僅適用於電腦, 也適用於人類閱讀。換句話說, 其旨在作為一種 “溝通計算思想” 的結構化方式, 不僅針對電腦, 也針對人類。
但是現在—有了 ChatGPT—這件事突然變得比以往任何時候都更加重要。因爲—如同在之前所看到的—ChatGPT 可與 Wolfram 語言一起工作, 從某種意義上說, 僅使用自然語言就可以建立計算思想。有部分重要的是 Wolfram 語言可以直接表示想要談論的事物。但同樣重要的是提供了 “知道我們擁有什麼” 的方法—因爲我們可以實際且經濟地閲讀 ChatGPT 產生的 Wolfram 語言代碼。
整個過程開始與 ChatGPT 中的 Wolfram plugin 良好地合作。這裏是一個 ChatGPT 可以很容易地產生被詢問内容的 Wolfram 語言版本的例子:
而重點是 “代碼” 是人們可以實際上希望讀到的 (如果我正在編寫, 我可能會用稍微嚴謹的 RomanNumeral 函數):
另外一個例子:
我寫的代碼可能有點不同, 但這又是非常具可讀性的:
通常可以使用 Wolfram 語言和英語的混雜語言來表達想要的內容:
這是一個 ChatGPT 再次成功構建 Wolfram 語言的例子—並很方便地呈現, 所以我們可以確定, 是確實在計算正確的事情:
順便說一下, 要使這個任務成功, Wolfram 語言的 “獨立性” 在某種意義上是至關重要的。這段代碼只是標準的一般 Wolfram 語言代碼; 並不依賴於外部的任何資源, 如果你願意, 可以在 Wolfram 語言文檔中查詢所有出現内容的定義。
好的, 再一個例子:
顯然地 ChatGPT 在這裏遇到了麻煩。但是—如同建議的—我們可以直接在筆記本中執行所產生的代碼。 因爲 Wolfram 語言是符號性的, 所以我們可以明確地看到每一步的結果:
非常接近! 讓我們再幫點忙, 告知我們需要一個歐洲國家的實際列表:
這就是結果! 或至少是一個結果。因爲在查看計算時, 有可能不是我們想要的。例如, 我們可能想要為每個國家挑選多種主色, 然後看看是否有接近紫色的顔色。但是這整個 Wolfram 語言的設定讓我們可以很簡單的 “與 AI 合作” 來弄清楚我們要什麽以及怎麽做。
到目前為止, 我們基本上是從自然語言開始構建 Wolfram 語言代碼。但是也可以從偽代碼開始, 或是低階程式語言來編寫。ChatGPT 通常在處理此類問題並從中編寫良好的 Wolfram 語言代碼做得非常出色。代碼並非總是對的。但是可以執行 (例如使用 Wolfram plugin) 然後看結果什麽, 可能 (藉助於 Wolfram 語言的符號字元) 是逐行查看。重點是 Wolfram 語言的高階計算語言性質通常讓代碼足夠清晰和 (至少在局部) 簡單 (特別是看到執行後), 可以很容易地理解其中内容—然後可能會與 AI 在其中來回重複。
當試圖做的事情足夠簡單時, 通常是實際的指明—至少如果是階段性完成—使用純粹的自然語言, 使用 Wolfram 語言 “只是” 一個方法來看得到了什麽, 以及實際上可以運作。但當事情變得複雜時, Wolfram 語言才真正發揮功能—提供基本上唯一可能的, 人類可理解也精確的表達方式。
當我在寫 An Elementary Introduction to the Wolfram Language 時, 此概念變成特別明顯。在書的開頭, 我很容易地用英語描述我想要的内容來設計練習。但隨著開始變得複雜的概念, 這就變得越來越困難。作爲 Wolfram 語言 “流利” 的使用者, 我經常立刻知道如何用 Wolfram 語言表達我需要的東西 。但是只用英語來描述則需要更多複雜, 讀起來像法律術語的内容。
但是, 好了, 你使用 Wolfram 語言指定了一些事情。一件了不起, ChatGPT 通常能夠做到的事情是可以重塑 Wolfram 語言代碼使其更易於閲讀。但 (還) 並不總是正確的。可是很有趣的看到其與 Wolfram 語言代碼的人類編寫者之間進行了不同的協調。例如, 人類往往會發現很難為事物起好名字, 因此通過嵌套函數序列來避免命名通常會更好 (或至少減少混淆) 。但是 ChatGPT 憑藉其對語言和含義的掌握, 可以相當容易地組成合理的名稱。 雖然這是我一方面沒有預料到的, 但我認為使用這些名稱, 並 “展開行動”, 通常可以使 Wolfram 語言代碼比以前更容易閱讀, 而且確實讀起來非常像一個形式化的自然語言的模擬—可以像自然語言一樣容易理解, 但又具有精確的含義, 並且可以實際運行以產生計算結果。

看一些老掉牙的故事

如果你 “知道你想要做什麼計算”, 並且可以用一小段自然語言來描述, 那麽 Wolfram|Alpha 的設計將會直接進行計算並以 “可接受的視覺化” 方式盡可能簡單呈現。但是如果要將結果以文字敘述文章表現呢?Wolfram|Alpha 從未設定做這種操作。可是對於 ChatGPT, 是的。
這裏是 Wolfram|Alpha 產生的結果:
我們要求 ChatGPT 產生與 Wolfram|Alpha 相同的結果, 隨後再告訴 ChatGPT 用該結果 “寫一篇文章”:
另一個 Wolfram|Alpha 的 “老掉牙故事” 是數學應用題。提供一個 “清楚表達” 的數學問題, Wolfram|Alpha 很可能會做很好的解答。但是如果是 “模糊的” 應用題呢?好吧, ChatGPT 非常擅長於 “弄清楚” 這類的事情, 然後將其變成 “清楚的數學題”—現在 Wolfram plugin 可以解題了。這裏有個例子:
這是有點複雜的例子, 包括使用很好的 “常識” 來意識火鷄的數量不能爲負:
除了數學應用題, 另一個 ChatGPT + Wolfram 現在可以解決的 “老掉牙故事” 是物理學家統稱的 “費米問題”: 可以根據對世界的定量知識進行數量級計算。這是一個例子:

如何參與

ChatGPT + Wolfram 是非常新的概念—真的是一種全新的技術。每當一種新科技出現時, 就會帶來非常大的新契機。其中有一些已經可以開始看到了—但在接下來的幾週、幾個月和幾年內, 還會持續地出現。
那麽要如何參與到一個可能成為技術—和概念的快速增長, 令人興奮的時期呢?第一件事就是探索 ChatGPT + Wolfram。ChatGPT 和 Wolfram 有各自龐大的系統; 兩者的結合需要數年時間才能完全探究。但第一步只是了解什麽是可能的。
找例子。分享例子。試著找出成功使用的模式。而且, 最重要的是, 試著找到能夠提供最高價值的工作流程。這些流程可能非常複雜。但也可能非常簡單—一旦看到可以做的事情, 就是馬上的 “啊哈”。
如何才能最好地實施工作流程?好吧, 我們正在努力為此建立最佳的工作流程。我們在 Wolfram 語言中設置靈活的方式來調用諸如 ChatGPT 做的事情, 既可以純粹設計程式, 也可以在筆記本界面的上下文中。
但是從 ChatGPT 方面來看呢?Wolfram 語言具有非常開放的架構, 使用者可以增加或修改幾乎任何想要的內容。但是如何在 ChatGPT 使用?告訴 ChatGPT 包含一些特定的 “原始” Wolfram 語言代碼 (也許連同參考文件)—然後使用類似混雜語言 (pidgin) 的東西與 ChatGPT 討論在該原始代碼中已經定義的函數或其他內容。
我們計劃構建更加精簡的工具來處理和共享 Wolfram 語言代碼, 以便透過 ChatGPT 使用。但有一種已經有效使用的方法是在 Wolfram 函數儲存庫提交要發表的函數, 然後—被發表之後—將這些函數引用到與 ChatGPT 的對話。
好的, 但是在 ChatGPT 內部呢?什麼樣的提示工程才能與 Wolfram plugin 做最好的互動?好吧, 我們還不知道。這是必須探索的方向—實際上, 可以作為 AI 教育或 AI 心理學的練習。一種典型的方法是在 ChatGPT 會話的早期給出 “預先提示”, 然後希望可以在之後 “仍然注意到”。 (而且, 是的, “注意力廣度” 是有限的, 所以有時候事情内容必須重複。)
我們已經試著給出一個整體提示, 告訴 ChatGPT 基本上如何使用 Wolfram plugin—以及完全希望隨著我們了解更多以及 ChatGPT LLM 更新, 這個提示會迅速發展。你也可以添加一般預先提示, 例如像 “使用 Wolfram 時總是試著包含圖片” 或 “使用 SI 單位” 或 “盡可能避免使用複數”。
你也可以試著在 ChatGPT 中設定預先提示主要是 “定義函數”—例如像: “如果我在輸入中給你一個數字, 你將使用 Wolfram 繪製一個此數字的多邊形”。或是, 更直接地說, “如果我給你一個由數字組成的輸入, 你要將下列 Wolfram 函數應用於該輸入...”, 然後給出一些明確的 Wolfram 語言代碼。
但現在還在早期發展, 毫無疑問地還會發現其他強大的機制來 “撰寫” ChatGPT + Wolfram 程式。而且我認為我們可以自信地期待接下來的一段時間將是一個令人興奮的高速成長期, 屆時將有許多有價值的 “唾手可得的果實” 可供那些選擇參與其中的人採摘。

一些背景和展望

甚至在一周前都還不清楚 ChatGPT + Wolfram 會是什麼樣子—或者會如何運作。但這些事情現在發展如此迅速是建立在幾十年前的基礎上。在某些方面, ChatGPT + Wolfram 的到來最終結合了歷史上兩種用於 AI 的主要方法—長期以來被認為是脫節和不兼容的方法。
ChatGPT 基本上是非常大的神經網路, 經過訓練後跟隨在網路上看到的文字 “統計” 模式等。神經網路的概念—其形式與 ChatGPT 中使用的非常接近—起源於 1940 年代。但在 1950 年代的一些熱情之後, 興趣減弱了。1980 年代初期出現了復興 (事實上我本人也是那時侯開始研究神經網路的)。但直到 2012 年人們才開始對神經網路的可能性產生強烈的興趣。十年後的現在—在一項研發中的成功, 甚至連相關人員都大爲吃驚—我們有了 ChatGPT。
與神經網路的 “統計” 傳統不同的是 AI 的 “符號” 傳統。從某種意義上說, 傳統的出現是為數學 (和數理邏輯) 發展的形式化過程的延伸, 尤其是在 20 世紀初。但其關鍵在於不僅與計算的抽象概念相吻合, 而且與 1950 年代開始出現的實際數字計算機相吻合。
在很長一段時間內, 真正可以被視為成功的 “AI” 充其量是參差不齊的。但一直以來, 計算的一般概念都顯示出巨大且不斷增長的成功。但是 “計算” 如何與人們思考事物的方式相關聯呢?對我來說, 一個重要的發展是我在早期 1980 年代的想法 (建立在早期數學邏輯的形式主義基礎上), 即符號表達式的轉換規則可能是表示相當於 “人類” 水準的計算的好方法。
當時我的主要關注點是數學和技術計算, 但我很快開始懷疑類似的想法是否適用於 “一般型 AI”。我懷疑像神經網路這樣的東西可能會發揮作用, 但當時我只是想到了一些可能會需要的東西—而不是如何實現。與此同時, 符號表達式轉換規則的核心思想成為了現在的 Wolfram 語言的基礎—並使我們今天擁有的全面計算語言的長達數十年的開發過程成為可能。
從 1960s 年代開始, AI 研究人員一直在努力開發可以 “了解自然語言”、“表達知識” 並從中回答問題的系統。所做的一些工作變成了不那麼雄心勃勃但切實際的應用程式。但通常成功是難以捉摸的。同時, 由於我在 1990 年代所做的相當於基礎科學的哲學理論, 我決定在 2005 年左右嘗試建立一個 “計算知識引擎”, 可以廣泛地回答以自然語言提出的事實和計算的問題。構建這樣一個系統並不明確, 但我們發現—利用我們的底層計算語言及大量的工作—是可行的。在 2009 年, 我們發佈了 Wolfram|Alpha。
從某種意義上說, Wolfram|Alpha 之所以成為可能, 是因為其內部有一種清晰、正式的方式來表示並計算世界上的事物。對我們來說, “了解自然語言” 並不抽象; 是將自然語言轉換為結構化計算語言的具體過程。
另一部分是組合 “了解” 和 “計算” 世界所需的所有數據、方法、模型和算法。雖然我們已經將其高度自動化, 但我們仍然發現, 要最終 “把事情做好”, 別無選擇, 只能讓真正的人類專家參與進來。 雖然在 Wolfram|Alpha 的自然語言了解系統中有一些人們可能認為是 “統計型 AI”, 但絕大多數的 Wolfram|Alpha—和 Wolfram 語言—都以一種至少讓人聯想到堅固、象徵性的方式執行象徵性 AI 的傳統。(這並不是說 Wolfram 語言中的個別函數不使用機器學習和統計技術; 近年來越來越多的人這樣做, Wolfram 語言也有一個完整内建框架來進行機器學習。)
正如其他地方討論過的, 似乎已經發生的是 “統計型 AI”, 尤其是神經網路, 非常適合我們人類 “快速完成” 的任務, 包括—從 ChatGPT 中學習的—自然語言及其背後的 “思維”。但是當建造更大的 ”概念” 或計算 “塔” 時, 象徵性的和某種意義上 “更嚴格的計算” 方法是需要的—這就是數學、精確科學以及現在所有 “計算 X” 領域中發生的事情。
現在 ChatGPT + Wolfram 可以被認為是第一個真正的大規模統計+ 符號型 “AI” 系統。在 Wolfram|Alpha (成為像 Siri 智能助手等事物的原始核心部分) 中, 首次出現廣泛的自然語言了解— “了解” 與實際的計算表示和計算直接相關。13 年後的今天, 我們看到 ChatGPT 純 “統計的” 自然網路科技, 當從幾乎整個網路等進行訓練時, 可以在 “統計上” 產生 “類似人類” 的 “有意義的語言” 方面做得非常好。現在 ChatGPT + Wolfram 可以利用整個堆棧: 從 ChatGPT 的純 “統計神經網路” 通過 Wolfram|Alpha 的 “計算式錨定” 自然語言, 了解到整個計算語言和計算知識的 Wolfram 語言。
當開始構建 Wolfram|Alpha 時, 我們認為如果要獲得有用的結果, 別無選擇, 只能與用戶進行對話。但是我們發現, 如果馬上產生豐富的、“視覺可掃描的” 結果, 只需要簡單的 “假設” 或 “參數” 的互動—至少是對於我們希望用戶尋找的那種資訊和計算。(在 Wolfram|Alpha 筆記本版本中有一個很好的例子來說明如何使用自然語言進行多步驟計算。)
在 2010 年已經嘗試不僅從自然語言產生典型的 Wolfram|Alpha 查詢的 Wolfram 語言代碼, 還嘗試產生 “整個程式”. 然而當時—沒有現代 LLM 科技—並沒有太多成效。但我們發現—在 Wolfram 語言符號結構的背景下—即使是自然語言產生的相當於代碼的小片段也非常有用。事實上, 例如, 我幾乎每天使用 Wolfram 筆記本的 “+=” 機制無數次, 例如從自然語言構造符號實體或數量。我們還不太清楚現代的 “LLM-啓動” 版本會是什麼, 但可能涉及之前討論到的大量的人類與 AI “合作”, 而且可以開始看到實際在 ChatGPT + Wolfram 中的應用。
我認為現在正在發生的事情是一個歷史性的時刻。半個多世紀以來, 所謂的 “AI” 的統計和符號方法在很大的程度上是分開發展的。但是現在, 在 ChatGPT + Wolfram 中是整合一起的。雖然我們仍處於起步階段, 我認為可以合理地期待組合中的巨大力量—以及在某種意義上, ChatGPT 的產生使得 “類似 AI 計算” 的新模範成爲可能, 現在透過在 ChatGPT + Wolfram 中與 Wolfram|Alpha 和 Wolfram 語言結合。
© 2023 Wolfram. All rights reserved.