萬字長文解釋 ChatGPT 在做什么,以及為什么它能發揮作用?(5)
好了,現在我們已經給出了 ChatGPT 建立后的工作概要。但它是如何建立的呢?其神經網絡中的 1750 億個權重是如何確定的?基本上,它們是非常大規模的訓練的結果,基于一個巨大的文本語料庫 —— 網絡上的、書中的等等 —— 由人類寫的。正如我們所說的,即使考慮到所有的訓練數據,神經網絡是否能夠成功地產生 “類似人類” 的文本,這一點也不明顯。而且,再一次,似乎需要詳細的工程來實現這一目標。但 ChatGPT 的最大驚喜和發現是,它是可能的。實際上,一個 “只有”1750 億個權重的神經網絡可以對人類所寫的文本做出一個 “合理的模型”。
在現代,有很多人類寫的文本是以數字形式存在的。公共網絡至少有幾十億人寫的網頁,總共可能有一萬億字的文本。如果包括非公開網頁,這些數字可能至少要大 100 倍。到目前為止,已經有超過 500 萬本數字化書籍可供使用(在曾經出版過的 1 億本左右的書籍中),又有 1000 億左右的文字。作為個人比較,我一生中發表的材料總字數不到 300 萬字,在過去 30 年中,我寫了大約 1500 萬字的電子郵件,總共打了大約 5000 萬字,在過去幾年中,我在直播中說了 1000 多萬字。而且,是的,我將從所有這些中訓練一個機器人)。
但是,好吧,鑒于所有這些數據,我們如何從中訓練出一個神經網絡呢?基本過程與我們在上面的簡單例子中討論的非常相似。你提出一批例子,然后你調整網絡中的權重,使網絡在這些例子上的誤差(“損失”)最小。從錯誤中 “反向傳播” 的主要問題是,每次你這樣做,網絡中的每個權重通常至少會有微小的變化,而且有大量的權重需要處理。(實際的 “反向計算” 通常只比正向計算難一個小常數)。
有了現代的 GPU 硬件,從成千上萬的例子中并行計算出結果是很簡單的。但是,當涉及到實際更新神經網絡中的權重時,目前的方法要求我們基本上是一批一批地做。(是的,這可能是實際的大腦 —— 其計算和記憶元素的結合 —— 目前至少有一個架構上的優勢)。
即使在我們之前討論的看似簡單的學習數字函數的案例中,我們發現我們經常不得不使用數百萬個例子來成功訓練一個網絡,至少從頭開始。那么,這意味著我們需要多少個例子來訓練一個 “類人語言” 模型呢?似乎沒有任何基本的 “理論” 方法可以知道。但是在實踐中,ChatGPT 已經成功地在幾千億字的文本上進行了訓練。
有些文本被多次輸入,有些只有一次。但不知何故,它從它看到的文本中 “得到了它需要的東西”。但是,考慮到需要學習的文本量,它應該需要多大的網絡才能 “學好”?同樣,我們還沒有一個基本的理論方法來說明。最終 —— 我們將在下面進一步討論 —— 人類語言大概有某種 “總的算法內容”,以及人類通常用它說什么。但接下來的問題是,神經網絡在實現基于該算法內容的模型時將會有多大的效率。我們也不知道 —— 盡管 ChatGPT 的成功表明它的效率還算不錯。
最后我們可以注意到,ChatGPT 使用了幾千億個權重 —— 與它所獲得的訓練數據的總字數(或令牌)相比,它所做的事情是相當的。在某些方面,也許令人驚訝的是(盡管在 ChatGPT 的小型類似物中也有經驗觀察),似乎工作良好的 “網絡規模” 與 “訓練數據的規模” 如此相似。畢竟,這肯定不是說 “在 ChatGPT 內” 所有來自網絡和書籍等的文本都被 “直接存儲” 了。因為在 ChatGPT 里面的實際上是一堆數字 —— 精度略低于 10 位 —— 是對所有這些文本的總體結構的某種分布式編碼。
換句話說,我們可以問人類語言的 “有效信息含量” 是什么,以及通常用它說什么。這里有語言實例的原始語料庫。然后是 ChatGPT 的神經網絡中的表述。這個表征很可能與 “算法上最小” 的表征相去甚遠(我們將在下面討論)。但它是一個很容易被神經網絡使用的表征。在這種表示法中,訓練數據的 “壓縮” 程度似乎很低;平均而言,似乎只需要不到一個神經網絡的權重就可以承載一個詞的訓練數據的 “信息內容”。
當我們運行 ChatGPT 來生成文本時,我們基本上不得不使用每個權重一次。因此,如果有 n 個權重,我們有 n 個計算步驟要做 —— 盡管在實踐中,許多步驟通常可以在 GPU 中并行完成。但是,如果我們需要大約 n 個字的訓練數據來設置這些權重,那么從我們上面所說的,我們可以得出結論,我們需要大約 n2 個計算步驟來進行網絡訓練 —— 這就是為什么,用目前的方法,人們最終需要談論數十億美元的訓練工作。
訓練 ChatGPT 的大部分工作是向它 “展示” 大量來自網絡、書籍等的現有文本。但事實證明,還有一個明顯相當重要的部分。
一旦它完成了對所展示的原始語料庫的 “原始訓練”,ChatGPT 內的神經網絡就可以開始生成自己的文本,繼續提示等。但是,雖然這樣做的結果往往看起來很合理,但它們往往 —— 特別是對于較長的文本 —— 以往往相當非人類的方式 “游離”。這不是人們可以輕易發現的,比如說,通過對文本做傳統的統計。但這是實際閱讀文本的人很容易注意到的東西。
構建 ChatGPT 的一個關鍵想法是,在 “被動地閱讀” 網絡等事物之后,還有一個步驟:讓實際的人類主動與 ChatGPT 互動,看看它產生了什么,并在實際上給它反饋 “如何成為一個好的聊天機器人”。但神經網絡如何使用這種反饋呢?第一步只是讓人類對神經網絡的結果進行評價。但隨后又建立了另一個神經網絡模型,試圖預測這些評分。但現在這個預測模型可以在原始網絡上運行 —— 基本上就像一個損失函數,實際上是讓該網絡通過人類的反饋來 “調高”。而實踐中的結果似乎對系統成功產生 “類似人類” 的輸出有很大影響。
總的來說,有趣的是,“最初訓練的” 網絡似乎只需要很少的 “戳” 就能讓它向特定的方向有用地發展。人們可能會認為,要讓網絡表現得像 “學到了新東西”,就必須運行訓練算法,調整權重,等等。
但事實并非如此。相反,基本上只需要告訴 ChatGPT 一些東西,作為你所給的提示的一部分,然后它就可以在生成文本時成功地利用你告訴它的東西。我認為,這一點再次成為理解 ChatGPT“真正在做什么” 以及它與人類語言和思維結構的關系的一個重要線索。
這當然有一些類似于人類的東西:至少在它接受了所有的預訓練之后,你可以告訴它一些東西,而它可以 “記住它” —— 至少 “足夠長的時間” 來使用它生成一段文本。那么,在這樣的情況下發生了什么?可能是 “你可能告訴它的一切都已經在那里了” —— 你只是把它引向正確的地方。但這似乎并不靠譜。相反,似乎更有可能的是,是的,這些元素已經在那里了,但具體細節是由 “這些元素之間的軌跡” 這樣的東西來定義的,這就是你告訴它的東西。
事實上,就像人類一樣,如果你告訴它一些奇怪的、出乎意料的、完全不適合它所知道的框架的東西,它似乎并不能成功地 “整合” 這個。只有當它基本上以一種相當簡單的方式騎在它已經擁有的框架之上時,它才能 “整合” 它。
還值得再次指出的是,對于神經網絡能夠 “接收” 的東西,不可避免地存在 “算法限制”。告訴它 “淺層” 的規則,如 “這個到那個”,神經網絡很可能能夠很好地表示和再現這些規則 —— 事實上,它從語言中 “已經知道” 的東西會給它一個直接的模式來遵循。但是,如果試圖給它制定一個實際的 “深度” 計算規則,涉及許多潛在的不可簡化的計算步驟,它就無法工作了。(記住,在每一步,它總是在其網絡中 “向前輸送數據”;除了生成新的標記外,從不循環。)
當然,網絡可以學習特定的 “不可簡化的” 計算的答案。但只要有組合數的可能性,這種 “查表式” 的方法就不會奏效。因此,是的,就像人類一樣,現在是時候讓神經網絡 “伸出手來”,使用實際的計算工具了。(是的,Wolfram|Alpha 和 Wolfram 語言是唯一合適的,因為它們是為了 “談論世界上的事物” 而建立的,就像語言模型的神經網絡一樣)。
人類的語言 —— 以及產生語言的思維過程 —— 似乎一直代表著一種復雜性的頂峰。事實上,人類的大腦 —— “僅” 有 1000 億個左右的神經元網絡(也許還有 100 萬億個連接) —— 能夠負責這項工作,似乎有些了不起。也許,人們可能會想象,大腦除了神經元網絡之外還有其他東西,就像一些未被發現的物理學新層。但現在通過 ChatGPT,我們得到了一個重要的新信息:我們知道,一個純粹的人工神經網絡,其連接數與大腦的神經元一樣多,能夠很好地生成人類語言,令人驚訝。
而且,是的,這仍然是一個龐大而復雜的系統 —— 其神經網絡的權重與目前世界上的文字一樣多。但在某種程度上,似乎仍然很難相信,語言的所有豐富性和它可以談論的東西可以被封裝在這樣一個有限的系統中。這其中的部分原因無疑是反映了一個無處不在的現象(這在第 30 條規則的例子中首次變得很明顯),即計算過程實際上可以大大放大系統的表面復雜性,即使其基本規則很簡單。但是,實際上,正如我們上面所討論的,ChatGPT 中所使用的那種神經網絡往往是專門用來限制這種現象的影響以及與之相關的計算的不可重復性的,以便使其訓練更容易進行。
那么,像 ChatGPT 這樣的東西是如何在語言方面走得如此之遠的呢?我想,基本的答案是,語言在根本層面上比它看起來要簡單得多。這意味著 ChatGPT —— 即使它的神經網絡結構最終是簡單的 —— 能夠成功地 “捕捉” 人類語言的本質和背后的思維。此外,在其訓練中,ChatGPT 以某種方式 “隱含地發現” 了語言(和思維)中的任何規律性,使其成為可能。
我認為,ChatGPT 的成功為我們提供了一個基本的和重要的科學證據:它表明我們可以期待有重大的新 “語言法則” —— 以及有效的 “思維法則” —— 在那里被發現。在 ChatGPT 中,作為一個神經網絡,這些規律充其量是隱含的。但是,如果我們能以某種方式使這些定律明確化,就有可能以更直接、更有效和更透明的方式完成 ChatGPT 所做的各種事情。
但是,好吧,那么這些法律可能是什么樣的?最終,它們必須給我們提供某種語言 —— 以及我們用它說的東西 —— 如何組合的處方。稍后我們將討論 “觀察 ChatGPT” 如何能夠給我們一些這方面的提示,以及我們從構建計算語言中了解到的情況如何提示我們前進的道路。但首先讓我們來討論兩個長期以來為人所知的相當于 “語言法則” 的例子 —— 以及它們與 ChatGPT 的運作有何關系。
第一個是語言的語法。語言并不只是一個隨機的詞語組合。相反,對于不同種類的單詞如何放在一起,有(相當)明確的語法規則:例如,在英語中,名詞前面可以有形容詞,后面可以有動詞,但通常兩個名詞不能緊挨著。這樣的語法結構可以(至少是近似地)被一套規則所捕獲,這些規則定義了如何將相當于 “解析樹” 的東西放在一起:
ChatGPT 對這種規則沒有任何明確的 “知識”。但在訓練中,它隱含地 “發現” 了這些規則,然后似乎很擅長遵循這些規則。那么,它是如何工作的呢?在一個 “大畫面” 的層面上,這并不清楚。但是為了得到一些啟示,看看一個更簡單的例子也許會有啟發。
考慮一種由()和()序列組成的 “語言”,其語法規定括號應該總是平衡的,如解析樹所表示的那樣:
我們能否訓練一個神經網絡來產生 “語法上正確的” 小括號序列?在神經網絡中處理序列有多種方法,但讓我們使用變換器網絡,就像 ChatGPT 那樣。給定一個簡單的變換器網絡,我們可以開始給它提供語法正確的小括號序列作為訓練實例。一個微妙之處(實際上也出現在 ChatGPT 的人類語言生成中)是,除了我們的 “內容標記”(這里是 “(” 和 “)”),我們還必須包括一個 “結束” 標記,它的生成表明輸出不應該再繼續下去(即對于 ChatGPT 來說,我們已經到達了 “故事的終點”)。
如果我們只用一個有 8 個頭的注意塊和長度為 128 的特征向量來設置一個轉換網(ChatGPT 也使用長度為 128 的特征向量,但有 96 個注意塊,每個注意塊有 96 個頭),那么似乎不可能讓它學會很多小括號語言。但是,如果有 2 個注意力頭,學習過程似乎會收斂 —— 至少在給出 1000 萬個左右的例子之后(而且,正如轉化器網絡所常見的那樣,顯示更多的例子似乎會降低其性能)。
因此,對于這個網絡,我們可以做 ChatGPT 的類似工作,并詢問下一個標記應該是什么的概率 —— 在一個括號序列中:
在第一種情況下,網絡 “非常確定” 序列不能在這里結束 —— 這很好,因為如果它結束了,小括號就會留下不平衡。然而,在第二種情況下,它 “正確地認識到” 序列可以在這里結束,盡管它也 “指出” 有可能 “重新開始”,放下一個 “(”,估計后面還有一個 “)”。但是,哎呀,即使它有 40 萬個左右經過艱苦訓練的權重,它也說有 15% 的概率將 “)” 作為下一個標記 —— 這是不對的,因為這必然會導致一個不平衡的括號。
如果我們要求網絡為逐漸變長的()序列提供最高概率的完成度,我們會得到以下結果:
是的,在一定長度內,網絡做得很好。但隨后它就開始失敗了。這是在神經網絡(或一般的機器學習)的這種 “精確” 情況下看到的非常典型的事情。人類 “一眼就能解決” 的情況,神經網絡也能解決。但是需要做一些 “更多的算法”(例如明確地計算括號是否封閉)的情況,神經網絡往往在某種程度上是 “計算上太淺”,無法可靠地做到。(順便說一句,即使是目前完整的 ChatGPT 也很難正確匹配長序列中的括號)。
那么,這對像 ChatGPT 和像英語這樣的語言的語法意味著什么呢?小括號語言是 “樸素的” —— 而且更像是一個 “算法的故事”。但在英語中,能夠在局部選詞和其他提示的基礎上 “猜測” 什么是符合語法的,則要現實得多。而且,是的,神經網絡在這方面要好得多 —— 盡管它可能會錯過一些 “形式上正確” 的情況,而人類也可能錯過。但主要的一點是,語言有一個整體的句法結構這一事實 —— 以及它所暗示的所有規律性 —— 在某種意義上限制了神經網絡要學習的 “程度”。一個關鍵的 “類似自然科學” 的觀察是,像 ChatGPT 中的神經網絡的轉化器架構似乎能夠成功地學習所有人類語言中似乎都存在(至少在某種程度上是近似的)的那種嵌套樹狀的句法結構。
句法提供了對語言的一種約束。但顯然還有更多。像 “好奇的電子吃魚的藍色理論” 這樣的句子在語法上是正確的,但并不是人們通常期望說的東西,而且如果 ChatGPT 生成它,也不會被認為是成功的 —— 因為,嗯,以其中單詞的正常含義,它基本上沒有意義。
但是,是否有一個一般的方法來判斷一個句子是否有意義?這方面沒有傳統的整體理論。但是,我們可以認為 ChatGPT 在接受了來自網絡的數十億(可能是有意義的)句子的訓練之后,已經隱含地 “發展了一套理論”。
這個理論可能是什么樣的呢?好吧,有一個小小的角落,基本上兩千年來一直為人所知,那就是邏輯。當然,在亞里士多德發現的 Syllogistic 形式中,邏輯基本上是一種說法,即遵循某些模式的句子是合理的,而其他的則不是。因此,例如,說 “所有的 X 都是 Y,這不是 Y,所以它不是 X” 是合理的(正如 “所有的魚都是藍色的,這不是藍色,所以它不是魚”)。就像人們可以有點異想天開地想象亞里士多德通過(“機器學習式”)大量的修辭學例子來發現對偶邏輯一樣,人們也可以想象在 ChatGPT 的訓練中,它將能夠通過查看網絡上的大量文本等來 “發現對偶邏輯”。(是的,雖然我們可以期待 ChatGPT 產生包含 “正確推論” 的文本,比如基于對偶邏輯,但當它涉及到更復雜的形式邏輯時,情況就完全不同了 —— 我認為我們可以期待它在這里失敗,原因與它在小括號匹配中失敗的原因相同)。
但除了邏輯這個狹隘的例子之外,對于如何系統地構建(或識別)甚至是合理的有意義的文本,又能說些什么呢?是的,有一些東西,如《瘋狂的自由》,使用非常具體的 “短語模板”。但不知何故,ChatGPT 隱含著一種更普遍的方法。也許除了 “當你有 1750 億個神經網絡權重時,它就會以某種方式發生” 之外,對如何做到這一點沒有什么可說的。但我強烈懷疑有一個更簡單、更有力的故事。
我們在上面討論過,在 ChatGPT 中,任何一段文本都有效地由一個數字陣列來表示,我們可以將其視為某種 “語言特征空間” 中的一個點的坐標。因此,當 ChatGPT 繼續一個文本時,這相當于在語言特征空間中追蹤一個軌跡。但現在我們可以問,是什么讓這個軌跡對應于我們認為有意義的文本。也許會有某種 “語義運動法則” 來定義 —— 或者至少是約束 —— 語言特征空間中的點如何移動,同時保留 “有意義”?
那么,這個語言學特征空間是什么樣子的呢?下面是一個例子,說明如果我們把這樣一個特征空間投射到二維空間,單個詞(這里是指普通名詞)是如何布局的:
我們在上面看到的另一個例子是基于代表植物和動物的詞。但這兩種情況下的重點是,“語義相似的詞” 被放在附近。
作為另一個例子,這里是對應于不同語音部分的詞是如何布置的:
當然,一個給定的詞一般來說并不只有 “一個意思”(或一定只對應一個語篇)。通過觀察包含一個詞的句子在特征空間中的布局,我們通常可以 “區分” 出不同的含義 —— 就像這里的例子 “起重機”(crane, “鳥” 或 “機器”?):
好的,所以我們至少可以認為這個特征空間是把 “意義相近的詞” 放在這個空間里的,這是合理的。但是,在這個空間里,我們可以確定什么樣的額外結構?例如,是否存在某種 “平行運輸” 的概念,以反映空間中的 “平坦性”?掌握這個問題的一個方法是看一下類比:
而且,是的,即使當我們投射到二維時,往往至少有一個 “平坦性的暗示”,盡管它肯定不是普遍可見的。
那么,軌跡呢?我們可以看看 ChatGPT 的提示在特征空間中的軌跡 —— 然后我們可以看看 ChatGPT 是如何延續這個軌跡的:
這里當然沒有 “幾何學上明顯的” 運動規律。這一點也不令人驚訝;我們完全可以預料到這是一個相當復雜的故事。而且,舉例來說,即使有一個 “語義上的運動定律” 可以找到,它最自然地以什么樣的嵌入(或者,實際上,什么樣的 “變量”)來表述,也遠非明顯。
在上圖中,我們展示了 “軌跡” 中的幾個步驟 —— 在每個步驟中,我們挑選 ChatGPT 認為最可能的詞(“零溫度” 情況)。但我們也可以問,在某一點上,哪些詞可以以什么概率 “接下來”:
在這種情況下,我們看到的是有一個高概率詞的 “扇形”,似乎在特征空間中或多或少有一個明確的方向。如果我們再往前走會怎么樣呢?下面是我們沿著軌跡 “移動” 時出現的連續的 “扇形”:
這是一個三維表示,總共走了 40 步:
而且,是的,這似乎是一團糟 —— 并沒有做任何事情來特別鼓勵這樣的想法,即我們可以期望通過經驗性地研究 “ChatGPT 在里面做什么” 來確定 “類似數學物理學的”“運動語義法則”。但也許我們只是看了 “錯誤的變量”(或錯誤的坐標系),只要我們看了正確的變量,我們就會立即看到 ChatGPT 正在做一些 “數學·物理學的簡單” 的事情,比如遵循測地線。但是到目前為止,我們還沒有準備好從它的 “內部行為” 中 “實證解碼”ChatGPT“發現” 人類語言是如何 “拼湊” 的。
產生 “有意義的人類語言” 需要什么?在過去,我們可能會認為這不可能是一個人的大腦。但現在我們知道,ChatGPT 的神經網絡可以很好地完成這一任務。不過,也許這已經是我們能走的最遠的路了,沒有什么比這更簡單 —— 或者更容易被人類理解 —— 的東西會起作用。但我強烈懷疑的是,ChatGPT 的成功隱含地揭示了一個重要的 “科學” 事實:有意義的人類語言的結構和簡單性實際上比我們所知道的要多得多,而且最終甚至可能有相當簡單的規則來描述這種語言如何被組合起來。
正如我們上面提到的,句法語法給出了人類語言中對應于不同語篇的詞語如何組合的規則。但是為了處理意義,我們需要更進一步。而如何做到這一點的一個版本是,不僅要考慮語言的句法語法,還要考慮語義語法。
為了語法的目的,我們確定名詞和動詞等事物。但為了語義學的目的,我們需要 “更精細的等級”。因此,例如,我們可以確定 “移動” 的概念,以及 “保持獨立于位置的身份” 的 “物體” 的概念。這些 “語義概念” 中的每一個都有無盡的具體例子。但是,為了我們的語義語法的目的,我們將只是有某種一般性的規則,基本上說 “物體” 可以 “移動”。關于這一切如何運作,有很多東西可以說(其中一些我以前說過)。但我在這里只想說幾句,指出一些潛在的發展道路。
值得一提的是,即使一個句子根據語義語法是完全可以的,也不意味著它在實踐中已經實現(甚至可以實現)。“大象去了月球” 無疑會 “通過” 我們的語義語法,但是它肯定沒有在我們的實際世界中實現(至少還沒有) —— 盡管對于一個虛構的世界來說,這絕對是公平的游戲。
當我們開始談論 “語義語法” 時,我們很快就會問:“它的下面是什么?” 它假設的是什么 “世界模型”?句法語法實際上只是關于從詞語中構建語言的問題。但是,語義學語法必然涉及某種 “世界模型” —— 作為 “骨架” 的東西,由實際詞語構成的語言可以在上面分層。
直到最近,我們可能會想象,(人類)語言將是描述我們 “世界模型” 的唯一一般方式。早在幾個世紀前,就已經開始有了對特定種類事物的形式化,特別是以數學為基礎。但現在有一種更普遍的形式化方法:計算語言。
是的,這是我四十多年來的一個大項目(現在體現在沃爾弗拉姆語言中):開發一個精確的符號表示,可以盡可能廣泛地談論世界上的事物,以及我們關心的抽象事物。因此,例如,我們有城市、分子、圖像和神經網絡的符號表示,而且我們有關于如何計算這些事物的內在知識。
而且,經過幾十年的工作,我們已經用這種方式覆蓋了很多領域。但是在過去,我們并沒有特別處理 “日常話語”。在 “我買了兩磅蘋果” 中,我們可以輕易地表示(并對其進行營養和其他計算)“兩磅蘋果”。但是我們(還沒有)對 “我買了” 有一個符號表示。
這一切都與語義語法的想法有關 —— 目標是為概念提供一個通用的符號 “構造套件”,這將為我們提供什么可以與什么結合的規則,從而為我們可能轉化為人類語言的 “流程” 提供規則。
但是,假設我們有了這種 “符號話語語言”。我們會用它做什么呢?我們可以開始做一些事情,比如生成 “本地有意義的文本”。但最終我們可能想要更多 “全局意義” 的結果 —— 這意味著 “計算” 更多關于世界上實際存在或發生的事情(或許是在某個一致的虛構世界)。
現在在 Wolfram 語言中,我們有大量的關于許多種類的事物的內置計算知識。但對于一個完整的符號話語語言,我們必須建立關于世界上一般事物的額外 “計算”:如果一個物體從 A 地移動到 B 地,又從 B 地移動到 C 地,那么它就從 A 地移動到 C 地,等等。
給定一個符號化的話語語言,我們可以用它來做 “獨立的陳述”。但我們也可以用它來問關于世界的問題,“Wolfram|Alpha 風格”。或者我們可以用它來陳述我們 “想讓它變成這樣” 的事情,大概是用一些外部的執行機制。或者我們可以用它來做斷言 —— 也許是關于真實的世界,也許是關于我們正在考慮的某個特定世界,不管是虛構的還是其他的。
人類語言從根本上說是不精確的,這不僅僅是因為它沒有 “拴” 在一個具體的計算實現上,而且它的意義基本上只是由其使用者之間的 “社會契約” 來定義。但是計算語言,就其性質而言,具有某種基本的精確性 —— 因為最終它所指定的東西總是可以 “毫不含糊地在計算機上執行”。人類語言通常可以擺脫某種模糊性。(當我們說 “行星” 時,它是否包括系外行星,等等。)但是在計算語言中,我們必須對我們所做的所有區分精確而清楚。
在計算語言中,利用普通人類語言來編造名字往往很方便。但它們在計算語言中的含義必然是精確的,而且可能涵蓋也可能不涵蓋典型人類語言用法中的某些特定內涵。
我們應該如何找出適合一般符號話語語言的基本 “本體”?嗯,這并不容易。這也許就是為什么自亞里士多德兩千多年前的原始開始以來,在這些方面做得很少。但是,今天我們對如何以計算方式思考世界了解得如此之多,這確實有幫助(而且,從我們的物理學項目和 ragiad 的想法中得到 “基本形而上學” 也無傷大雅)。
但是這一切在 ChatGPT 的背景下意味著什么?從它的訓練來看,ChatGPT 已經有效地 “拼湊” 了一定數量的相當于語義語法的東西(相當令人印象深刻)。但是它的成功讓我們有理由認為,以計算語言的形式構建更完整的東西將是可行的。而且,與我們迄今為止對 ChatGPT 內部的理解不同的是,我們可以期待將計算語言設計得讓人類容易理解。
當我們談論語義語法的時候,我們可以將其與對偶邏輯相類比。起初,對偶邏輯本質上是用人類語言表達的語句規則的集合。但是(是的,兩千年后)當形式邏輯被開發出來時,音節邏輯最初的基本構造現在可以用來建造巨大的 “形式塔”,包括例如現代數字電路的運作。而且,我們可以預期,更一般的語義語法也會如此。起初,它可能只是能夠處理簡單的模式,例如以文本形式表達。但是,一旦它的整個計算語言框架建立起來,我們可以預期它將能夠被用來豎起 “廣義語義邏輯” 的高塔,使我們能夠以精確和正式的方式處理各種我們以前從未接觸過的東西,而只是在 “底層” 通過人類語言,以其所有的模糊性。
我們可以認為計算語言的構造 —— 以及語義語法 —— 代表了一種對事物的終極壓縮。因為它允許我們談論什么是可能的本質,而不需要,例如,處理存在于普通人類語言中的所有 “轉折性的措辭”。我們可以把 ChatGPT 的巨大優勢看作是有點類似的東西:因為它在某種意義上也已經 “鉆研” 到可以 “把語言以一種有語義的方式組合在一起”,而不關心不同的可能的措辭。
那么,如果我們把 ChatGPT 應用于底層計算語言,會發生什么呢?計算語言可以描述什么是可能的。但仍然可以添加的是對 “什么是流行的” 的感覺 —— 例如基于對網絡上所有內容的閱讀。但是,在下面,用計算語言操作意味著像 ChatGPT 這樣的東西可以立即和基本地接觸到相當于利用潛在的不可還原的計算的終極工具。這使得它成為一個不僅可以 “生成合理文本” 的系統,而且可以期望解決任何可以解決的問題,即這些文本是否真的對世界 —— 或者它應該談論的東西做出了 “正確” 的陳述。
ChatGPT 的基本概念在某種程度上相當簡單。從網絡、書籍等人類創造的大量文本樣本開始。然后訓練一個神經網絡來生成 “像這樣” 的文本。特別是,讓它能夠從一個 “提示” 開始,然后繼續生成 “像它被訓練過的那樣” 的文本。
正如我們所看到的,ChatGPT 中的實際神經網絡是由非常簡單的元素組成的,盡管有數十億個元素。神經網絡的基本操作也非常簡單,主要是對它所生成的每一個新詞(或詞的一部分),通過其元素 “傳遞一次輸入”(沒有任何循環,等等)。
但出乎意料的是,這個過程可以產生成功地 “像” 網絡上、書本上的文字。而且,它不僅是連貫的人類語言,它還 “說了些什么”,“按照它的提示” 利用它 “讀” 到的內容。它并不總是說 “全局有意義”(或對應于正確的計算)的事情 —— 因為(例如,在沒有獲得 Wolfram|Alpha 的 “計算超能力” 的情況下),它只是根據訓練材料中的事情 “聽起來像” 說了一些話。
ChatGPT 的具體工程使它相當引人注目。但最終(至少在它能夠使用外部工具之前),ChatGPT“只是” 從它所積累的 “傳統智慧的統計數據” 中抽出一些 “連貫的文本線索”。但令人驚訝的是,其結果是如此的像人。正如我所討論的,這表明了一些至少在科學上非常重要的東西:人類語言(以及它背后的思維模式)在某種程度上比我們想象的更簡單,更 “像法律”。ChatGPT 已經隱晦地發現了這一點。但我們有可能通過語義語法、計算語言等明確地暴露它。
ChatGPT 在生成文本方面所做的工作令人印象深刻,而且其結果通常非常像我們人類會產生的東西。那么,這是否意味著 ChatGPT 的工作方式就像一個大腦?它的底層人工神經網絡結構最終是以大腦的理想化為模型的。而且,當我們人類產生語言時,似乎很有可能發生的許多方面都很相似。
當涉及到訓練(又稱學習)時,大腦和當前計算機的不同 “硬件”(以及,也許,一些未開發的算法想法)迫使 ChatGPT 使用一種可能與大腦相當不同(在某些方面效率低得多)的策略。還有一點:即使與典型的算法計算不同,ChatGPT 內部也沒有 “循環” 或 “對數據進行重新計算”。而這不可避免地限制了它的計算能力 —— 即使與目前的計算機相比也是如此,但與大腦相比肯定是如此。
目前還不清楚如何 “解決這個問題”,并且仍然保持以合理效率訓練系統的能力。但這樣做大概會讓未來的 ChatGPT 做更多 “類似大腦的事情”。當然,有很多事情是大腦做得不好的 —— 特別是涉及到相當于不可簡化的計算。對于這些,大腦和像 ChatGPT 這樣的東西都必須尋求 “外部工具” —— 比如 Wolfram 語言。
但就目前而言,看到 ChatGPT 已經能夠做到的事情是令人興奮的。在某種程度上,它是基本科學事實的一個很好的例子,即大量簡單的計算元素可以做非凡和意想不到的事情。但它也為我們提供了兩千年來最好的動力,以更好地理解人類條件的核心特征,即人類語言及其背后的思維過程的基本特征和原則。
謝謝我關注神經網絡的發展已經有 43 年了,在這期間,我與許多人就神經網絡進行了交流。其中,有些是很久以前的,有些是最近的,還有一些是跨越多年的。Giulio Alessandrini, Dario Amodei, Etienne Bernard, Taliesin Beynon, Sebastian Bodenstein, Greg Brockman, Jack Cowan, Pedro Domingos, Jesse Galef, Roger Germundsson, Robert Hecht-Nielsen, Geoff Hinton, John Hopfield, Yann LeCun, Jerry Lettvin, Jerome Louradour, Marvin Minsky, Eric Mjolsness, Cayden Pierce, Tomaso Poggio, Matteo Salvarezza, Terry Sejnowski, Oliver Selfridge, Gordon Shaw, Jonas Sj?berg, Ilya Sutskever, Gerry Tesauro and Timothee Verdier. 對于這個作品的幫助,我特別要感謝朱利奧·亞歷山大里尼和布拉德·克利。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。







