ChatGPT 獲得 Wolfram 超能力注入!

ChatGPT 獲得 Wolfram 超能力注入!的圖1


要使用本文中演示的功能,請在 ChatGPT 中選擇并安裝 Wolfram 插件。請注意,到目前為止,這項功能只適用于部分 ChatGPT Plus 用戶;更多信息請咨詢武漢墨光工作人員。



僅僅兩個半月之內

早在一月份時,我寫了一篇關于 ChatGPT 與 Wolfram|Alpha 相互連接可能性的文章。然后今天——在僅僅兩個半月后的今天——我很高興地向大家宣布,這已經實現了!感謝我們團隊以及 OpenAI 團隊中出色的軟件工程開發能力,ChatGPT 現在可以調用 Wolfram|Alpha——以及 Wolfram 語言——并賦予其我們所謂的"計算超能力"。這一切還處于早期階段,但能實現的功能已經非常令人印象深刻,人們可以開始看到我們稱之為 "ChatGPT + Wolfram" 的產品會有多么驚人的力量(甚至可能是翻天覆地的革新)。

早在一月份,我就指出,作為一個 LLM 神經網絡,ChatGPT——雖然在文本生成材料方面"模擬"它從網上學習到的東西有非凡能力——但不能指望它自己進行非平凡計算,或系統地生成正確數據(而不僅僅是"看起來大致正確")等等。但當它與 Wolfram 插件結合時,它卻可以完成這些事情。因此,這是我當時一月份舉的第一個例子(非常簡單),但現在是由安裝了"Wolfram 超能力"的 ChatGPT 完成的:

ChatGPT 獲得 Wolfram 超能力注入!的圖2

給出的結果是正確的的(一月份的時候并不是)——結果通過實際計算得到。還有一個額外的好處:立即可視化:

ChatGPT 獲得 Wolfram 超能力注入!的圖3

這是怎么做到的?計算引擎之下,ChatGPT 先形成一個 Wolfram|Alpha 的查詢——將其發送到 Wolfram|Alpha 進行計算,然后根據閱讀其返回的計算結果"決定說什么"。可以打開"Used Wolfram"框("打開盒子 opening the box")來查看這個來回過程(通過查看這個,你可以檢查確認 ChatGPT 沒有在過程中"編造任何內容"):

ChatGPT 獲得 Wolfram 超能力注入!的圖4

ChatGPT 和 Wolfram|Alpha 都發生了很多不平凡計算。但給出了一個很好的、正確的結果,編輯輸出了一個漂亮、流暢的文本。

試試另一個例子,也是我在一月份寫的:

ChatGPT 獲得 Wolfram 超能力注入!的圖5

結果也不錯,值得我們花時間研究這個技術。而且,還可以給出額外內容:

ChatGPT 獲得 Wolfram 超能力注入!的圖6

今年一月的時候,我注意到 ChatGPT 在答復這個查詢時"編造"了一些合理(但錯誤)的數據:

ChatGPT 獲得 Wolfram 超能力注入!的圖7

但現在通過調用 Wolfram 插件,可以給出一個優秀且權威的答案。而且,我們還可以生成可視化繪圖:

ChatGPT 獲得 Wolfram 超能力注入!的圖8

一月份的另一個例子,現在得到的結果是正確的:

ChatGPT 獲得 Wolfram 超能力注入!的圖9

要注意,在你試驗這些例子的時候,如果得到的結果與我在這里展示的不同(有時更好,有時更差),請不要感到驚訝。原因是 ChatGPT 生成結果有其隨機性,即使你問它完全相同的問題(即使是在一個新的會話中),也會得到不同的結果。它感覺"非常類人類",這與 Wolfram|Alpha 和Wolfram 語言中的"正確答案——重復查詢也不會改變"的體驗不同。

下例中,我們可以看到 ChatGPT 與 Wolfram 插件"對話",起初 ChatGPT 發現它得到了"錯誤的 Mercury":

ChatGPT 獲得 Wolfram 超能力注入!的圖10

特別要注意,ChatGPT 并不只是用 Wolfram 來做像顯示網頁內容這樣"死胡同"的操作。相反,我們的行為更像是為 ChatGPT 植入一個真正的"大腦"——在需要的時候它會問我們一些問題,而我們給出的回答可以讓它回到它正在做的事情中。現在可以實現這些已經令人非常印象深刻。雖然我們還有很多事情要做,但已實現的技術已經可以讓 ChatGPT 有能力提供準確的、經策劃的知識和數據,以及正確的、非平凡計算。

但還有更多可以做的。已經有一些例子了,比如我們能夠為 ChatGPT 提供定制的可視化結果。并且,憑借我們的計算能力,我們能夠給出"真正原創"的內容——以前沒有人做過的計算。還有一點:雖然"純ChatGPT"限制于"訓練時學到的"內容,但通過調用我們,它可以獲得最新的數據。

這基于我們的實時數據反饋(這里我們被調用了兩次;每個地點一次):

ChatGPT 獲得 Wolfram 超能力注入!的圖11

或者可以基于"科學式"的預測計算:

ChatGPT 獲得 Wolfram 超能力注入!的圖12

ChatGPT 獲得 Wolfram 超能力注入!的圖13

或兩者同時使用:

ChatGPT 獲得 Wolfram 超能力注入!的圖14


可以做到 的事情

 Wolfram|Alpha 和 Wolfram 語言涵蓋了很多內容:

ChatGPT 獲得 Wolfram 超能力注入!的圖15

而現在 ChatGPT(幾乎)可以訪問所有這些內容——于是打開了一個巨大的廣度和深度的新可能性。為了說明這些問題,這里有幾個(簡單的)例子:算法、音頻、貨幣轉換、函數繪圖、譜系、地理數據、數學函數、音樂、神奇寶貝、解剖學、代碼注釋、日期和時間、地震、方程求解、因式分解、幾何學、語言學、電影、數字系統、大學、字謎


ChatGPT 獲得 Wolfram 超能力注入!的圖16

ChatGPT 獲得 Wolfram 超能力注入!的圖17

ChatGPT 獲得 Wolfram 超能力注入!的圖18

ChatGPT 獲得 Wolfram 超能力注入!的圖19



現代人類+AI 的工作流程

ChatGPT 的創立目的是為了實現能夠與人類進行來回對話。但是,當這種對話中包含實際的計算和計算型知識時,人們可以做什么呢?這里有一個例子。首先問一個"世界知識"的問題:

ChatGPT 獲得 Wolfram 超能力注入!的圖20

而且,"打開盒子"后,用戶可以檢查向我們提出的問題是否正確,以及我們給出的原始答復是什么。現在繼續這個例子,提出想要一張地圖:

ChatGPT 獲得 Wolfram 超能力注入!的圖21

但我們還可以用"更漂亮"的地圖投影。而 ChatGPT 的"常識"是基于它從網絡等渠道中獲取的閱讀內容,現在我們可以直接要求它給出一個:

ChatGPT 獲得 Wolfram 超能力注入!的圖22

但也許我們想要一個熱圖來代替。同樣,我們可以要求它使用我們的底層技術生成熱力圖:

ChatGPT 獲得 Wolfram 超能力注入!的圖23

還可以繼續改變投影樣式,現在再次要求它使用"一般知識"來挑選:

ChatGPT 獲得 Wolfram 超能力注入!的圖24

得到的投影是"正確的"。但同時有了居中的問題。所以讓我們要求它解決這個問題:

ChatGPT 獲得 Wolfram 超能力注入!的圖25

我們現在有什么了?已經有了一些我們"合作"建立的產物。我們逐步描畫出了我們想要的人工智能(即 ChatGPT + Wolfram),并逐步建立了它。但我們實際上得到的是什么?是一段 Wolfram 語言的代碼——我們可以通過 "打開盒子 "看到它,或者直接通過 ChatGPT 進行查詢:

ChatGPT 獲得 Wolfram 超能力注入!的圖26

如果把代碼復制到 Wolfram 筆記本,則可以立即運行它,我們發現它有一個"豪華功能"——ChatGPT 的描述中也有提到——動態工具提示提供每個國家的名稱:

ChatGPT 獲得 Wolfram 超能力注入!的圖27

ChatGPT 獲得 Wolfram 超能力注入!的圖28

(但這段代碼中只有明確的數字,而不是關于牛肉生產的原始符號查詢,這有點遺憾。這是因為 ChatGPT 向 Wolfram|Alpha 提出了原始問題,然后將結果反饋給 Wolfram 語言。但我認為,這整個流程的運作依然令人印象深刻)。


工作原理 ——以及如何與AI打交道

ChatGPT 和 Wolfram 插件底層工作原理到底是什么?記住 ChatGPT 的核心是大規模語言模型 (LLM),它從網絡等各方面進行訓練,為任何給定的文本生成"合理的續篇"。但作為上述訓練的最后一部分,ChatGPT 也被在學習如何"進行對話",以及何時"向其他人提出要求"——而這里的"人"可能是人,或者,就我們現在的情況而言,是一個插件。特別是,它要學習應該何時向 Wolfram 插件求助。

Wolfram 插件實際上有兩個入口:一個是 Wolfram|Alpha,另一個是 Wolfram 語言。從某種意義上說,Wolfram|Alpha 的入口對ChatGPT來說"更容易"處理;而 Wolfram 語言的入口則更強大。Wolfram|Alpha 更容易的原因是,它的輸入只是自然語言——這正是 ChatGPT 經常處理的內容。不僅如此,Wolfram|Alpha 能接受的內容相對更寬容,因為它的目標實際上是處理"一般類似人類的輸入",無論原始輸入有多混亂。

另一方面,Wolfram 語言應該有更精確的定義,能夠用來建立復雜的計算塔。在 Wolfram|Alpha 內部,它所做的是將自然語言翻譯成精確的 Wolfram 語言。因此實質上,它是在捕捉"不精確的自然語言",并將其"輸送"到精確的 Wolfram 語言中。

當 ChatGPT 調用 Wolfram 插件時,它通常只是將自然語言送入 Wolfram|Alpha。但是在這一點上 ChatGPT 已經學會了一定程度的 Wolfram 語言編程。而最終,后面也會提到,這才是一種更靈活、更強大的交流方式。但除非 Wolfram 語言的代碼完全正確,否則它不會工作。要達到這一點,一部分要通過訓練完成。但也有另一件事要做:給定一些Wolfram 插件可以運行的候選代碼,如果得到的結果明顯錯誤(比如產生很多錯誤),ChatGPT 可以嘗試修復并嘗試再次運行它。(更詳細點說,意思是 ChatGPT 要有能力嘗試生成要運行的測試,如果測試失敗,就改變代碼)。

還有更多內容需要開發,但有時用戶已經可以看到 ChatGPT 來回運行了好幾次。它可能在重寫 Wolfram|Alpha 查詢(例如通過刪除不相關的部分來簡化查詢內容),或者決定在 Wolfram|Alpha 和 Wolfram 語言之間切換,或者重寫 Wolfram 語言代碼。但告訴它應該如何處理這些事情是最初"插件提示"的問題。

而編寫這種提示也比較奇怪——也許是我們第一次正經嘗試"與外星智能交流"的經歷。當然,這有助于"外星智能"接受大量的人類書寫的文本訓練。因此,舉例來說,它會說英語(有點像那些老套的科幻小說中的外星人......)。我們可以告訴它"如果用戶輸入的語言不是英語,請翻譯成英語并向 Wolfram|Alpha 發送合適的查詢內容,再用原始輸入的語言提供你的回應"。

我們發現有時我們必須相當堅持原則(注意所有大寫字母):"在編寫 Wolfram 語言代碼時,永遠不要對變量名使用蛇式命名法(snake case);變量名永遠要使用駝峰式命名法(camel case)。" 即使堅持這樣的規則,ChatGPT 有時還是會做錯事。整個"提示工程"的過程感覺有點像飼養動物:你嘗試讓 ChatGPT 做你想做的事,但很難知道要怎么做才能實現。

最終,這個問題可能會在訓練或提示中得到解決,但就目前而言,ChatGPT 有時會不知道 Wolfram 插件何時能提供幫助。例如,ChatGPT 猜測這應該是一個 DNA 序列,但(至少在這個會話中)并不立即認為 Wolfram 插件可以幫上任何忙:

ChatGPT 獲得 Wolfram 超能力注入!的圖29

不過,輸入"使用Wolfram",它就會把查詢內容發送到 Wolfram 插件,后者確實能很好地處理這個內容:

ChatGPT 獲得 Wolfram 超能力注入!的圖30

(有時你可能還想專門輸入"使用 Wolfram|Alpha"或"使用 Wolfram 語言"。特別是在 Wolfram 語言的情況下,你可能想看看它發送的實際代碼,并告訴它不要使用編出來實際上并不存在的函數等內容。)

當把 Wolfram語言代碼給到 Wolfram 插件時,它所做的基本上只是運算該代碼,并返回結果——可能以圖形或數學公式,或只是文本的形式。但是如果插件得到的是 Wolfram|Alpha 輸入時,則將發送到一個特殊的用于 LLM 的 Wolfram|Alpha API 終端,其結果將作為文本返回,供 ChatGPT  "閱讀",并有效地作為 ChatGPT 進一步編寫文本的額外提示。比如下例:

ChatGPT 獲得 Wolfram 超能力注入!的圖31

結果是給出了漂亮的文字回答,包含了所問問題的答案,以及 ChatGPT 決定包含的一些其他信息。但在"內部",我們可以看到 Wolfram 插件(和 Wolfram|Alpha "LLM 終端")實際做的事情:

ChatGPT 獲得 Wolfram 超能力注入!的圖32

可以看到很多額外信息(包括一些漂亮的圖片!)。但 ChatGPT "決定"只挑出幾個片段列入其答復中。

順便要強調的是,如果你想確定你得到的結果是否是你認為的內容,一定要檢查 ChatGPT 實際發送至 Wolfram 插件的內容和插件返回的內容。我們在 Wolfram 插件中增加的一個重要內容是,對 ChatGPT 的輸出進行"事實化",并知道 ChatGPT 何時在"使用其想象力",何時在提供可靠的事實。

有時在試圖了解發生了什么時,也可以考慮將 Wolfram 插件發送的內容直接輸入到 Wolfram|Alpha 網站或 Wolfram 語言系統(如 Wolfram Cloud)中也可以。


Wolfram語言作為 人類與AI合作的工具

ChatGPT 的一個成就(坦白講是之前未曾預料到的)是它能夠從一個粗略的描述開始,并從中產生一個打磨過的成品輸出,例如論文、信件、法律文件等等。在過去,人們可能試圖通過從"模板"開始,然后對其進行修改,再把它們"粘"在一起等來"手動"實現這一目標。但 ChatGPT 的存在讓這個過程完全過時了。實際上,它"吸收"了大量從網上"讀到"的模板,并可以無縫"適應"你的需要方面。

那么,代碼的情況如何呢?在傳統的編程語言中,編寫代碼往往涉及到大量的"模板工作"——在實踐中,許多使用這種語言的程序員花費大量時間從網上復制大塊的代碼來建立他們要寫的程序。但現在,突然間,ChatGPT 似乎可以讓這些過程變得過時了。因為它可以有效地自動拼湊任何類型的模板代碼,只需一點"人工輸入"即可。

當然,必須要有一些人工的輸入,否則 ChatGPT 就不知道它應該寫什么程序。但是,你可能會想,為什么代碼中一定要有"模板"呢?難道不應該在語言本身的層面上,只需要少量的人工輸入,而不需要任何"模板裝飾"嗎?

問題就在這里。傳統的編程語言是圍繞著用計算機的術語告訴計算機該做什么:設置這個變量,測試那個條件,等等。但也可以不走這個流程。相反,我們可以從另一個角度出發:嘗試用計算來表示人們自然而然想到的東西,并有效地把它們在計算機上的實際實現過程自動化。

這就是我花了四十多年時間在研究的東西。也是現在 Wolfram 語言的基礎——我現在覺得可以正經稱其為"全面的計算語言"。這是什么意思呢?意思是在語言中,有一種計算的表示方法,用于我們在這個世界上談論的抽象和真實的事物,不管這些是圖形、圖像或微分方程——或城市、化學品、公司或電影。

為什么不直接從自然語言開始呢?Wolfram|Alpha 的成功經歷告訴我們,這在一定程度上是可行的。但是,一旦用戶想要試圖指定更復雜的內容(比如"法律術語"),自然語言就會變得不方便——而且用戶真的需要一種更有結構的方式來表達自己。

歷史上,數學就是一個很好的例子。早在大約500年前,幾乎所有"表達數學"的方式都是用自然語言。但后來發明了數學符號,數學隨著代數、微積分以及最終所有各種數學科學的發展而騰飛。

我給 Wolfram 語言設定的大目標是,創造一種計算語言,它可以作用于任何可以用"計算來表達"的內容。為了實現這個目標,我們需要建立一種語言,它既能自動操作,又在本質上了解很多知識。這種語言設置使人們可以方便地"用計算表達自己",就像傳統的數學符號讓人們可以"用數學表達自己"一樣。關鍵的一點是,與傳統的編程語言不同,Wolfram 語言不僅僅是為計算機閱讀準備的,也是為人類閱讀準備的。換句話說,它的目的是開創一種 "交流計算思想 "的結構化方式,面對對象不僅包括計算機,也包括人類。

但現在有了 ChatGPT,這一功能突然變得比以前更重要了。因為,我們開始也有提到,ChatGPT 可以與 Wolfram 語言一起工作,在某種意義上說,只需使用自然語言就能建立起計算理念。關鍵之一是,Wolfram 語言可以直接表示我們想要討論的內容。但同樣關鍵的是,它讓我們"知道我們有什么"——因為我們實際上不需要什么成本就可以閱讀 ChatGPT 生成的 Wolfram 語言代碼。

整個過程與 ChatGPT 中的 Wolfram 插件配合得非常好。有一個簡單的例子,ChatGPT 可以輕易生成一個 Wolfram 語言版本的問題:

ChatGPT 獲得 Wolfram 超能力注入!的圖33

ChatGPT 獲得 Wolfram 超能力注入!的圖34

ChatGPT 獲得 Wolfram 超能力注入!的圖35

重要的是,代碼("code")是用戶會期望閱讀的內容(如果讓我寫,我會用表達更簡潔的 RomanNumeral 函數:

ChatGPT 獲得 Wolfram 超能力注入!的圖36

這是另一個例子:

ChatGPT 獲得 Wolfram 超能力注入!的圖37

ChatGPT 獲得 Wolfram 超能力注入!的圖38

我可能會用不同的方式寫代碼,但閱讀起來很容易:

ChatGPT 獲得 Wolfram 超能力注入!的圖39

通常可以混用 Wolfram 語言和英語來表達你想要的內容:

ChatGPT 獲得 Wolfram 超能力注入!的圖40

ChatGPT 獲得 Wolfram 超能力注入!的圖41

這里有一個例子,ChatGPT 再次成功構建了 Wolfram 語言——并方便地將其展示出來,這樣我們可以確認,是的,它確實在計算正確的結果:

ChatGPT 獲得 Wolfram 超能力注入!的圖42

而且,順便說一下,要順利進行這一工作,關鍵是 Wolfram 語言在某種意義上"自成一體"。這段代碼只是標準通用的 Wolfram 語言代碼;它不依賴于外部的任何東西,如果你愿意,你可以在 Wolfram 語言文檔中查找其中出現的所有定義。

再來看一個例子:

ChatGPT 獲得 Wolfram 超能力注入!的圖43

可以看出,ChatGPT 在這里有一些麻煩。但是它也提出了,我們可以直接在筆記本上運行它所生成的代碼。因為 Wolfram 語言是符號化的,我們可以明確地看到每一步的結果:

ChatGPT 獲得 Wolfram 超能力注入!的圖44

ChatGPT 獲得 Wolfram 超能力注入!的圖45

ChatGPT 獲得 Wolfram 超能力注入!的圖46

很接近了! 讓我們再幫一點忙,告訴它我們需要一份歐洲國家名單:

ChatGPT 獲得 Wolfram 超能力注入!的圖47

然后我們就得到了結果! 或者至少是結果之一。因為當我們回看這個計算時,會發現它可能不完全是我們想要的。例如,我們可能想為每個國家挑選多種主導顏色,并看看其中是否有接近紫色的顏色。但整個 Wolfram 語言設置讓我們很容易地"與人工智能合作",并弄清我們想要什么和要做什么。

到目前為止,我們基本上都是從自然語言開始,并建立起 Wolfram 語言的代碼。但我們也可以從偽代碼開始,或者從一些低級別的編程語言的代碼開始。而 ChatGPT 很善于吸收這些內容并據此生成優秀的 Wolfram 語言代碼。這些代碼并不總是完全正確的。但人們可以運行它(例如,使用Wolfram插件),并觀察它在做的事情,并可以實現(由于Wolfram語言的符號特性)逐行進行。重點是,Wolfram 語言的高級計算語言性質往往允許清晰和(至少在局部)簡單的代碼,這樣(特別是在看到它運行后)人們可以很容易地理解它在做什么——然后可能與AI來回迭代。

當想要做的事情足夠簡單時,完全可以用自然語言——至少分階段地進行——是完全可行的,Wolfram 語言"只是"作為一種查看自己得到的結果的方法,且用戶并實際能夠運行它。但當內容變得復雜時,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 超能力注入!的圖48

而在 ChatGPT 中,我們要求得到同樣的 Wolfram|Alpha 給出的結果,但又告訴 ChatGPT "把它變成一篇文章":

ChatGPT 獲得 Wolfram 超能力注入!的圖49

Wolfram|Alpha 的另一個"老古董問題"是數學單詞問題。對于"簡潔明了"的數學問題,Wolfram|Alpha 會表現得很好。但是,對于一個"毛茸茸"的文字問題呢?ChatGPT 很擅長"解決"這樣的問題,并將其轉化為"清晰的數學問題"——然后 Wolfram 插件就可以解決了。這里有一個例子:

ChatGPT 獲得 Wolfram 超能力注入!的圖50

這里有一個稍微復雜的案例,包括很好地利用"常識"來判斷火雞的數量不可能是負數:

ChatGPT 獲得 Wolfram 超能力注入!的圖51

除了數學單詞問題,ChatGPT+Wolfram 現在解決的另一個"老問題"是物理學家稱為"Fermi problems"的問題:在關于世界的定量知識的基礎上,可以進行數量級的運算。這里有一個例子:

ChatGPT 獲得 Wolfram 超能力注入!的圖52


如何參與

ChatGPT + Wolfram 是一項嶄新的技術。每當一種新技術出現時,都會有巨大的新機會。其中一些我們已經可以開始看到,但還有很多其他的機會將在未來的可能幾周、或幾個月甚至幾年內出現。

那么,對于這項有望成為技術和概念快速發展時期標志的技術,你要如何才能參與呢?首先是探索 ChatGPT + Wolfram。ChatGPT 和 Wolfram 各自都在自己的龐大系統上;它們如何更好地結合需要多年時間才可能完全摸透。但第一步只是為了了解哪些是可能的。

找一些范例。分享它們。嘗試識別成功的使用模式。而且,最重要的是,嘗試找到能提供最高價值的工作流程。這些工作流程可能相當復雜。但也可能非常簡單,簡單到一旦完成,人們就會立即心領神會。

如何才能最好地實施工作流程?我們正在努力找出最佳的工作流程。在 Wolfram 語言中,我們嘗試設置用更靈活的方式來調用像 ChatGPT 這樣的東西,可能是純粹程序化的方法,或在筆記本界面的上下文中。

但從 ChatGPT 方面來看呢?Wolfram 語言有一個非常開放的架構,用戶可以添加或修改他們想要的東西。但你如何在 ChatGPT 這邊利用這些特點呢?有一個方法是指定 ChatGPT 包含一些特定的 "初始"Wolfram 語言代碼(也可以包括文檔)——然后使用類似上面的 pidgin 告知 ChatGPT 你在初始代碼中定義的函數或其他東西。

我們計劃開發一些更精簡的工具來處理和分享 Wolfram 語言代碼,這樣通過 ChatGPT 也可使用代碼。現在有一種方法已經可以使用,即把函數提交到 Wolfram 函數庫中發表,一旦發表,就能在您與 ChatGPT 的對話中引用這些函數。

但 ChatGPT 本身呢?你應該做什么樣的提示來與 Wolfram 插件進行最佳互動?現在我們還不知道。這個問題還亟待我們探索,這實際上是一個人工智能教育或人工智能心理學的練習。一般方法是可以在你與 ChatGPT 早期的會話中給出一些"預提示",希望它在以后"持續關注"這些。(它的 "注意力"是有限的,所以有些東西必須不斷重復)。

先嘗試給出一個總體提示,告訴 ChatGPT 如何使用 Wolfram 插件的基本方法——而且我們完全相信這些方法能迅速發展,因為我們一直在學習,且 ChatGPT 的 LLM 也在更新。但你可以添加你自己的常用提示,比如說"當使用 Wolfram 時,請盡量包含一張圖片"、或"使用SI單位"、或"盡可能避免使用復雜數字"。

你也可以嘗試在 ChatGPT 中設置一個預提示,這一操作本質是"定義一個函數",比如:"如果我給你一個由數字組成的輸入,你要用 Wolfram 來繪制一個邊數為此數字的多邊形"。或者,更直接地說,"如果我給你一個由數字組成的輸入,你要對該輸入應用以下 Wolfram 函數...",然后給出一些明確的 Wolfram 語言代碼。

但現在是非常早期的階段,毫無疑問以后還會發現其他更強大的機制可以應用于"編程" ChatGPT + Wolfram。我認為我們可以自信地預期,未來這段時間將是一個激動人心的高增長時期,會有很多有價值的"唾手可得的果實"等待那些選擇參與的人去采摘。


背景與展望

甚至在一周前,人們還不清楚 ChatGPT + Wolfram 會是什么樣子——或者它的工作效果如何。現在的這些進展之所以可以如此迅速地發展,基礎是這幾十年間的發展。某種程度上說,ChatGPT + Wolfram 是將歷史上采取的兩種主要的人工智能方法最終結合在一起,而長期以來人們一直認為這兩種方法是相互分離和不相容的。

ChatGPT 本質上是一個巨大的神經網絡,訓練讓其遵循它在網絡上看到的文本的"統計"模式,等等。神經網絡的概念——與 ChatGPT 底層的使用方法驚人地相似,它起源于1940年代。20世紀50年代人們對其的熱情達到巔峰,隨后興趣就減退了。在20世紀80年代初又重新復蘇(事實上,我自己就是在那時第一次關注神經網絡的)。但直到2012年,人們才開始對神經網絡的可能性產生了極大的熱情。而十年后的今天,我們有了 ChatGPT,它的成功甚至讓參與其中的人都大吃一驚。

與神經網絡的"統計"傳統相對應的是人工智能的"符號"傳統。從某種意義上說,這一傳統是作為數學(和數理邏輯)形式化過程的延伸而產生的,特別是在二十世紀初。但它的關鍵之處在于,它不僅與計算的抽象概念相一致,而且與 1950 年代開始出現的那種實際數字的計算機相一致。

在很長一段時間里,真正可以被認為是成功的"人工智能"數量寥寥無幾。但與此同時,計算的通用概念在經歷飛速發展。但"計算"如何與人們思考問題的方式相關?對我來說,重點之一是我在 1980 年代初的一個想法(建立在早期數理邏輯的形式主義之上),即符號表達的轉換規則可能是在相當于"人類"層面上表示計算的一個好方法。

當時我主要關注的是數學和技術計算,但我很快就開始想,類似的想法是否可以適用于"通用人工智能"。我認為類似神經網絡這樣的東西可能會有幫助,但當時我只在慢慢思考需要什么——而不是如何實現它。同時,符號表達式轉換規則的核心思想成為現在的 Wolfram 語言的基礎,并使計算語言擁有了長達幾十年的全面發展才到今天這個局面。

從 20 世紀 60 年代開始,人工智能研究人員一直在努力開發能夠"理解自然語言"的系統,以及"代表知識"的系統并據此回答問題。所做的一些工作雖不宏大但卻很實用。但那時依舊感覺成功遙不可及。同時,基于我在 20 世紀 90 年代所做的一些基礎科學的哲學研究,2005 年的時候我決定要嘗試建立一個通用的 "計算知識引擎",它可以回答用自然語言提出的事實和計算問題。那時候我們并不知道是否能成功建立這樣的系統,但我們發現,用我們的底層計算語言,經過大量的工作,這種系統的可能性是存在的。這樣我們才能夠在 2009 年發布 Wolfram|Alpha。

從某種意義上說,Wolfram|Alpha 之所以成為可能,是因為在內部有一種清晰、正式的方式來表示世界上的事物,并對它們進行計算。對我們來說,"理解自然語言"并不是什么抽象的東西;它是將自然語言轉化為結構化計算語言的具體過程。

另一部分是集合所有的數據、方法、模型和算法來"了解"和"計算"這個世界。雖然我們已經很大程度上實現了自動化,但仍然發現,為了"以正確的方式實現目標",我們別無選擇,只能讓真實的人類專家參與進來。雖然在 Wolfram|Alpha 的自然語言理解系統中,人們可能認為更像是"統計人工智能",但 Wolfram|Alpha——包括 Wolfram 語言——的絕大部分都是以一種直接、符號化的方式運作,也會讓人想起符號人工智能的傳統。(這并不是說 Wolfram 語言中的個別函數不使用機器學習和統計技術;近年來,越來越多的函數使用機器學習,Wolfram 語言也有一個完整的內置框架來進行機器學習)。

我在別的地方也討論過,"統計人工智能",尤其是神經網絡,好像非常適合我們人類需要"快速完成"的任務,包括——我們從 ChatGPT 學習到的——自然語言和其底層的"思維方式"。但是,當人們要建立更大的"概念"或計算"塔"時,就需要符號化的、在某種意義上"更嚴格計算"的方法,這就是數學、精確科學以及現在所有的"computational X"領域正在發生的事情。

而現在,ChatGPT + Wolfram 可以看做是第一個真正大規模的統計 + 符號"人工智能"系統。在Wolfram|Alpha(它也是 Siri 智能助理等的原始核心部分)中,第一次出現了廣泛的自然語言理解——"理解"直接與實際的計算表示和計算相聯系。13 年后的今天,我們在 ChatGPT 中看到,純粹的"統計"神經網絡技術,當訓練內容是整個互聯網時,就可以非常好地"統計"出"類似人類"的"有意義的語言"。而在 ChatGPT + Wolfram 中,我們現在能夠利用整個堆棧:從 ChatGPT 的純"統計神經網絡",到Wolfram|Alpha "計算錨定"的自然語言理解,再到 Wolfram 語言的整個計算語言和計算知識。

當我們第一次建立 Wolfram|Alpha 時,那時我們認為,也許為了獲得有用的結果,我們除了與用戶進行對話之外沒有其他選擇。但后來我們發現,如果能立即生成豐富的、"視覺上可掃描的"結果,那么只需要一個簡單的"假設"或"參數"互動——至少可以實現我們期望用戶需要的那種信息和計算。(在 Wolfram|Alpha Notebook 版本中,我們有一個強有力的例子來說明如何用自然語言完成多步驟的計算)。

早在 2010 年時,我們就已經開始嘗試從自然語言中生成不僅是一般 Wolfram|Alpha 查詢的 Wolfram 語言代碼,而且還有"整個程序"。當時,在沒有現代 LLM 技術的情況下,我們并沒有走多遠。但我們發現,在 Wolfram 語言的符號結構背景下,即使是由自然語言生成的小片段的代碼也是非常有用的。事實上,我幾乎每天都會無數次地使用 Wolfram Notebooks 中的 "\[ControlKey]+=" 機制,例如,從自然語言中構建符號實體或數量。我們還不知道現代"啟用 LLM 后"的版本會是什么,但它很可能涉及到我們上面討論的豐富的人與人工智能的"協作",而且我們可以在 ChatGPT + Wolfram 中首次開始看到它的效果。

我認為現在正是一個歷史性的時刻。半個多世紀以來,對于我們可能稱之為"人工智能"的統計和符號方法在很大程度上是分開發展的。但現在,在 ChatGPT + Wolfram 中,它們已經結合在一起。雖然我們還只是剛剛開始,但我認為我們可以合理地期待這種結合的巨大力量,而且從某種意義上說,由于ChatGPT的到來,以及現在它與 Wolfram|Alpha 和 Wolfram 語言在 ChatGPT + Wolfram 的結合,"類人工智能計算"的新范式已經成為可能。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

7
3
3