ChatGPT的出圈掀起了一場人工智能模型和自然語言處理技術(shù)的大討論,圈內(nèi)圈外人士都對未來人工智能模型的重新塑造我們的生活有了更多的遐想。Yoav Goldberg在2023年1月借著這股ChatGPT的熱度發(fā)表了一篇文章,討論了他對以ChatGPT為代表的大規(guī)模語言模型的一些思考。他認為目前的語言模型在加入了指令調(diào)整、代碼語言和人類反饋的強化學習等內(nèi)容后,引入了外部知識和交互后,已經(jīng)超越了之前自然語言處理概念中像“猜字游戲”一樣的語言模型的范疇了。但是即便如此,他認為當前的大規(guī)模語言模型仍然有許多不足的地方,比如時間的概念、關(guān)聯(lián)不同文本的能力、了解“知識的知識”等。
關(guān)于大型語言模型的一些評論
Yoav Goldberg, 2023年1月
受眾: 我假設(shè)你聽說過ChatGPT,可能稍微玩了一下,并且對它印象深刻,而且你也聽說它是"一個大型語言模型",也許它"解決了自然語言理解"。接下來我將講講我對這些(和類似的)模型的簡短個人看法,以及我們在語言理解方面到哪一步了。
序言
在2014-2017年左右,就在NLP領(lǐng)域中神經(jīng)網(wǎng)絡(luò)方法興起之際,我開過一個半學術(shù)半科普的講座,圍繞著這樣一個故事: 實現(xiàn)完美的語言建模等同于和人類一樣聰明。大約在同一時間,我在一個學術(shù)小組中被問到: "如果給你無限的計算能力并且不用擔心勞動成本,你會做什么",我自信滿滿地回答 "我會訓練一個真正巨大的語言模型,只是為了證明它不能解決一切!"。嗯,這個回答現(xiàn)在看是不是早就過時了!真的嗎?它如何與我同時講的“完美語言建模為智能的故事”同時存在?
完美的語言建模是AI-完備的
我的NLP入門科普講座( "教電腦理解語言" )圍繞著Claude Shannon的"猜字游戲"和語言建模的理念展開。它從AI游戲開始,然后很快轉(zhuǎn)向Shannon在1951年發(fā)明的"另一種游戲":"猜下一個字母"的游戲。游戲運營商選擇一些文本和文本中的一個剪切點,隱藏結(jié)尾。玩家需要在最小數(shù)量的猜測中猜出第一個隱藏的字母。
我給出了一些這個游戲的例子,演示了在不同層面的語言理解中表現(xiàn)良好所需的各種語言知識(從形態(tài)學到各種句法、語義、語用和社會語言學)。然后我說,人類在沒有練習的情況下就很擅長這個游戲,而讓他們變得更好是困難的,這就是為什么他們認為這不是一個很好的游戲。
然后我說,相比人類,計算機在這個游戲上有點差。但是通過教它們玩這個游戲,我們獲得了很多語言的隱含知識。而且還有很長的路要走,但是有了一些穩(wěn)定的進展: 這就是機器翻譯今天的工作原理!
我還說,計算機仍然不是很好,這是可以理解的: 這個游戲是"AI-完備"的: 真正在"人類水平"上玩這個游戲意味著解決其他所有AI問題,并表現(xiàn)出類似人類智能的能力。為了理解為什么這是真的,請考慮這個游戲需要完成任何文本前綴,包括非常長的前綴,包括對話,包括每一種可能的對話前綴,包括用人類語言表達的每一種經(jīng)驗描述,包括在任何主題或情境上可以提出的所有問題的答案,包括高級數(shù)學,包括哲學等等??傊?,要玩得好,你需要理解文本,理解文本中描述的情境,想象自己處于這種情境中,然后回應(yīng)。它真的模仿了人類的經(jīng)驗和思想。(是的,這個論點可能有幾個反駁,例如人類也可能需要詢問圖像或場景或其他模型看不到的感知輸入。但我認為你懂的。)
這就是我講述的Shannon的猜測游戲(也就是"語言建模")和在人類水平上玩這個游戲意味著人類水平智能的故事。
建立大型語言模型不能解決一切/任何問題
現(xiàn)在,如果獲得完美語言建模能力意味著智能("AI-完備"),那么為什么我堅持認為建立最大可能的語言模型不會"解決一切"?我錯了嗎?
答案是我當時不認為基于當時存在的技術(shù)(當時只在RNNs/LSTMs和Transformer之間切換)建立非常大的語言模型會讓我們距離"完美語言建模"甚遠。
我錯了嗎?有點。我絕對對大型語言模型的能力感到驚訝。在600億參數(shù)和1750億參數(shù)之間發(fā)生了一個相移,使語言模型的能力變得超級厲害。它們做的事情比我當時認為基于文本和基于RNNs/LSTMs/Transformers的語言模型能做的要多得多。當我自大地說它們"不能解決一切"時,它們確實能做到所有事情。
是的,當前的語言模型(chatGPT的第一版)確實"解決"了我當時隱含考慮的語言理解問題的集合中的所有事情。所以在這個意義上,我錯了。但在另一個意義上,不,它沒有解決一切。至少現(xiàn)在還沒有。此外,當前語言模型的性能并不僅僅是通過我當時所想的語言語言建模來獲得的。我認為這很重要,我將在下面討論這一點。
在接下來的部分中,我將簡要描述我看到的當前語言模型和當時被認為是語言模型之間的差異,并列舉一些我認為大型語言模型尚未"解決"的問題。我還將提到一些我認為是正確但不相關(guān)/不感興趣的觀點。
自然語言建模和精挑細選的語言建模
我說"當前語言模型的性能并不僅僅是通過語言建模獲得的"是什么意思?大型語言模型的第一次展示(比如說1700億參數(shù)級別的GPT-3)是(據(jù)我們所知)在自然發(fā)生的文本數(shù)據(jù)上訓練的:在書籍中找到的文本、從互聯(lián)網(wǎng)爬取的文本、在社交網(wǎng)絡(luò)中找到的文本等。后來的模型(BLOOM、OPT)也使用了類似的數(shù)據(jù)。這非常接近Shannon的游戲,也是過去幾十年中大多數(shù)人認為的'語言建模'。這些模型已經(jīng)帶來了非常出色的性能。但chatGPT是不同的。
chatGPT有什么不同?在GPT-3和chatGPT之間有三個概念步驟:指令、代碼、基于人類反饋的強化學習。最后一個盡管得到了最多的關(guān)注,但我個人認為這是最無趣的。這是我隨手寫的一些解釋。也許有一天我會把它變成一個更正式的論點。希望你能從中得到直覺。
像"傳統(tǒng)語言模型"一樣僅僅在"文本"上訓練有一些明顯的理論局限性。最顯著的是,它沒有與"文本外部"任何事物的聯(lián)系,因此無法獲取"意義"或"交流意圖"。另一種說法是,該模型"沒有接地"。模型操作的符號只是符號,它們可以相互關(guān)聯(lián),但它們不會"接觸"到任何現(xiàn)實世界的項目上。所以語言模型可以知道符號"藍色",但不了解它背后任何的現(xiàn)實世界概念。
在指令調(diào)整中,模型訓練者并非僅在“發(fā)現(xiàn)”數(shù)據(jù)上訓練,而是開始在人類創(chuàng)建的特定數(shù)據(jù)上訓練(在機器學習圈子中被稱為“監(jiān)督學習”,例如從標注樣本中學習),除了發(fā)現(xiàn)的數(shù)據(jù)外,人類標記員會寫一些類似于“請總結(jié)這篇文章”的東西,然后是他們得到的一些文本,然后是他們對這篇文章的摘要?;蛘?,他們可能會寫“將此文本翻譯成形式語言”,然后是一些文本,然后是形式語言。他們會創(chuàng)建許多這樣的說明(許多摘要、許多翻譯等),針對許多不同的“任務(wù)”。然后這些將被添加到模型的訓練數(shù)據(jù)中。
為什么這很重要?模型的核心仍是語言建模,去學習如何預(yù)測下一個單詞,僅僅基于文本嗎?確實,但是,這里人類注釋員會在文本中標記一些基礎(chǔ)的符號。一些符號(“總結(jié)”,“翻譯”,“形式”)始終與它們表示的概念/任務(wù)一起使用。它們總是出現(xiàn)在文本的開頭。這使這些符號(或“指令”)在某種程度上外部于其余數(shù)據(jù),使生成摘要與人類“摘要”的概念相關(guān)。或者換句話說,這有助于模型了解用戶在“指令”中請求“摘要”的交流意圖。這里的一個反對意見是,這種情況可能已經(jīng)在大型文本集合中自然發(fā)生,模型已經(jīng)從中學習,那么新的是什么?我認為直接指令比從非指令數(shù)據(jù)中推斷學習要容易得多(想想“這是一只狗”這樣的直接陳述,而不是需要從聽到人們談?wù)摴分型茢啵Mㄟ^將訓練數(shù)據(jù)的分布轉(zhuǎn)向這些注釋的情況,可以顯著改變模型的行為和它所具有的“接地”程度。也許通過明確的指令數(shù)據(jù),相比起不使用它們,我們可以使用更少的訓練文本。
此外,最新一代模型還在編程語言代碼數(shù)據(jù)上進行訓練,特別是包含自然語言說明或描述(以代碼注釋的形式)和相應(yīng)編程語言代碼的數(shù)據(jù)。這產(chǎn)生了另一種非常直接的接地形式。在這里,我們有文本流中的兩個獨立系統(tǒng):一個是人類語言,另一個是編程語言。我們觀察這兩個系統(tǒng)之間的直接交互:人類語言描述了概念(或意圖),然后在對應(yīng)的程序中實現(xiàn)。這是一種非常明確的“形式到意義配對”。我們當然可以從中學到更多,而不是僅僅“形式”。(此外,我假設(shè)最新模型也在執(zhí)行上訓練:程序和其輸出內(nèi)容的組合。這是一種更強的接地形式:指稱)。這現(xiàn)在已經(jīng)不再“僅僅”是語言建模了。
最后,RLHF,或“基于人類反饋的強化學習”。這是一種夸張的說法,意思就是模型現(xiàn)在觀察兩個人之間的對話,一個扮演用戶的角色,另一個扮演“人工智能”,演示人工智能如何在不同情況下作出反應(yīng)。這明顯有助于模型學習對話的工作原理,以及如何在對話狀態(tài)中跟蹤信息(僅憑“發(fā)現(xiàn)”的數(shù)據(jù)非常困難)。并且給人類的指令也是所有“......是不適當?shù)??!钡裙?模板響應(yīng)的來源,我們從模型中觀察到。這是一種通過示范訓練模型“表現(xiàn)得好”的方法。
ChatGPT擁有全部以上三種甚至更多的特點。這就是為什么我認為它和傳統(tǒng)的語言模型有很大不同,為什么它可能不會“服從”我們(或我)對語言模型的期望,以及為什么它在許多任務(wù)上表現(xiàn)如此出色:它是一種監(jiān)督模型,具有訪問外部模態(tài)的能力,并且通過對話形式明確地進行遵循大量指令的訓練。
還有什么缺失?普遍但乏味的論點
關(guān)于語言模型有很多常見的論點,我認為這些論點是正確的,但是對我在這里的討論沒有啟發(fā)意義/不相關(guān)。
它們很浪費,訓練它們非常昂貴,使用它們也非常昂貴。
是的,現(xiàn)在這是事實。但是隨著時間的推移,事情會變得更便宜。另外,讓我們把事情放在適當?shù)慕嵌葋砜矗菏堑?,這在環(huán)境上是非常昂貴的,但是我們并沒有訓練那么多,總成本相對于我們?nèi)祟愖龅钠渌芰肯膩碚f是微不足道的。而且,我也不確定環(huán)境論點與“這些東西有趣”,“這些東西有用”等問題有什么關(guān)系。這是一個經(jīng)濟問題。
這些模型編碼了許多偏差和刻板印象。
嗯,當然。它們模仿了人類語言,我們?nèi)祟愂强膳碌纳?,我們具有偏差并不斷進行刻板印象。這意味著我們在將這些模型應(yīng)用于實際任務(wù)時需要非常小心,但這并不意味著它們在科學角度上變得不正確/沒有用處/沒有趣。
這些模型并沒有真正理解語言。
當然。它們并不能。那又怎樣?我們專注于它們能做到的,也許嘗試改進它們不能做到的地方?
這些模型永遠不會真正理解語言。
再說一遍,那又怎樣?它們顯然很好地覆蓋了一些方面。讓我們看看這些?或者如果你不關(guān)心這些方面,就不用看了。那些想要真正理解語言的人可能確實更愿意去其他地方尋找。我對近似理解感到滿意。
這些模型不像人類那樣理解語言。
呵呵?難道它們是人類嗎?當然它們在某些機制上有所不同。它們?nèi)匀豢梢愿嬖V我們很多關(guān)于語言結(jié)構(gòu)的東西。對于它們不能告訴我們的東西,我們可以去其他地方尋找。
你不能僅基于形式學到任何有意義的東西:
但它不是僅僅基于形式訓練的,請參見上面的部分。
它只能根據(jù)一些統(tǒng)計數(shù)據(jù)連接它之前看到的東西。
...而這不是非常了不起的嗎?大型模型以非常強大的方式連接詞匯和短語。而且,請考慮根據(jù)統(tǒng)計數(shù)據(jù)將語料庫中的詞語和短語連接起來的錯誤方式有多少。以及這些模型如何避免這些錯誤方式,并選擇“有意義”的方式。我認為這是非常了不起的。
我們不知道這些東西可能對社會產(chǎn)生的影響:
這是關(guān)于任何新技術(shù)/新發(fā)現(xiàn)的事實。讓我們?nèi)グl(fā)現(xiàn)。我們可以嘗試小心地做。但這并不意味著這件事情不有趣/不有效/不值得研究。它只是增加了一個值得研究的方面。
模型沒有引用它們的來源:
確實如此。但是...那又怎樣?我能理解為什么在某些類型的應(yīng)用中你會希望這樣,你當然希望模型不會欺騙你,也許你希望能夠驗證它們不會欺騙你,但這些都與語言模型的核心無關(guān)/在我看來這不是正確的問題。畢竟,人類在真實意義上并沒有“引用來源”,我們很少將我們的知識歸因于特定的單一來源,如果我們這樣做,我們通常是在一個理性化的過程中做出論述,或在一個非常有意識的過程中找到來源并引用它。這可以復(fù)制。從應(yīng)用的角度來看(例如,如果我們想要開發(fā)一個搜索系統(tǒng)、一個論文寫作系統(tǒng)、一個通用問題回答系統(tǒng)),人們當然可以通過生成過程或后處理步驟或在先檢索再生成的設(shè)置中將話語與來源相關(guān)聯(lián)。很多人都在這么做。但這與語言理解無關(guān)。但是,有趣的是,我認為更有建設(shè)性的問題是(a)如何將來自模型的回答與來自人類的回答區(qū)分開來?(b)如何評估模型的回答是否準確?(c)如何提高模型的回答質(zhì)量?這些都是重要的問題,值得研究。
那么缺少什么/有哪些真正的局限呢?
這是我認為目前"大型語言模型"(包括最新的chatGPT)中存在的一些挑戰(zhàn)性問題的非正式且不完整的一些點,這些問題阻礙了它們在某種意義上"完全理解"語言。這些是模型仍然無法做到的事情,或者至少非常不適合做到的事情。
將多個文本彼此關(guān)聯(lián)。在模型的訓練中,模型將文本作為一個大型流或獨立的信息塊進行消耗。它們可能會得到文本中的共性模式,但它對文本如何與現(xiàn)實世界中的"事件"相關(guān)聯(lián)沒有任何概念。特別是,如果模型在關(guān)于同一事件的多篇新聞故事上進行訓練,它無法知道這些文本都描述的是同一件事,并且無法將其與描述相似但不相關(guān)事件的文本區(qū)分開來。在這個意義上,模型無法真正形成(或根本不能形成)從所有文本中"閱讀"的一個連貫和完整的世界觀。
時間的概念。同樣,模型在訓練流中沒有哪些事件其他事件的概念。它們根本沒有時間的概念,除了可能的明確提到的時間。因此,它可能會學習 "Obama became president in 2009" 等表達的局部含義,并在其他明確標明日期的事情之前或之后進行推理。但它不能理解時間的流動,即如果它在另一篇文本中讀到 "Obama is the current president of the united state",并在第三篇文本中讀到 "Obama is no longer the president",模型不能理解它們之間是如何相互跟隨的,以及現(xiàn)在是什么是真實的。它可以同時"相信" "Obama is the current president of the US"、"Trump is the current president of the US"和 "Biden is the current president of the US"都是有效的陳述。同樣,它真的沒有實際的方法來解釋像 "X is the latest album by Y" 這樣的陳述,以及它們之間的關(guān)系。
知識的知識 模型并不真的知道它們知道了什么。它們甚至不知道"知道"是什么。它們所做的就是猜測文本流中的下一個詞,并且猜下一個詞可能是基于有充分根據(jù)的知識,也可能是完全的猜測。模型的訓練和訓練數(shù)據(jù)沒有明確的機制來區(qū)分這兩種情況,當然也沒有明確的機制根據(jù)它們來采取不同的行動。這體現(xiàn)在有據(jù)可查的“自信地編造東西”的趨勢中。 從示范中學習 (RLHF) 使模型“意識到”某些答案應(yīng)該謹慎對待,也許模型甚至學會了將這種謹慎程度與某些事實、實體或主題的涵蓋程度聯(lián)系起來 他們的訓練數(shù)據(jù),或者數(shù)據(jù)反映在他們內(nèi)部權(quán)重中的程度。 因此,從這個意義上說,他們展示了一些知識知識。 但是當他們熬過了這個拒絕回答的初始階段,進入“文本生成模式”時,他們“失去”了所有這些知識,并且很快過渡到“編造”模式,也就是在它所知道的事情上 明確說明(在不同的階段)是不知道的。
數(shù)字和數(shù)學 這些模型真的不具備執(zhí)行數(shù)學的能力。它們的基本構(gòu)建塊是“詞塊”,它們并不真正對應(yīng)于任何方便的基礎(chǔ)中的數(shù)字。 他們也沒有任何合適的方法以任何有意義且一致的方式學習不同數(shù)字之間的關(guān)系(例如 +1 或“大于”關(guān)系)。大型語言模型在一些涉及數(shù)字的問題上表現(xiàn)得還算不錯,但實際上有比我們給大型語言模型的機制更好的方法來表示數(shù)字和數(shù)學,令人驚訝的是他們可以做任何事情。 但我懷疑如果沒有一些更明確的建模,他們不會走得太遠。
罕見事件、高召回率設(shè)置、高覆蓋率設(shè)置:從本質(zhì)上講,模型側(cè)重于常見和可能的情況。 這讓我立即懷疑它們是否有能力從數(shù)據(jù)中的罕見事件中學習,或回憶起罕見事件,或回憶所有事件。 在這里,我比其他方面更不確定:他們也許能夠做到。 但我目前持懷疑態(tài)度。
數(shù)據(jù)饑餓 這可能是我在當前大型語言模型中看到的最大的技術(shù)問題:它們極度渴望數(shù)據(jù)。 為了取得令人印象深刻的表現(xiàn),他們接受了數(shù)萬億個單詞的訓練。 顯而易見的“.....人類從其中的一小部分中學習”當然是正確的,但它本身對我來說并不是很有趣:那又怎樣? 模型不必為了有用而模仿人類。 不過還有其他含義,我發(fā)現(xiàn)這非常令人不安:大多數(shù)人類語言沒有那么多數(shù)據(jù),當然也沒有以數(shù)字形式提供的數(shù)據(jù)。 為什么這很重要?因為這意味著我們將很難復(fù)制我們現(xiàn)在對其他語言(例如我的母語希伯來語,甚至更常見的語言)的令人難以置信的英語理解結(jié)果,像德語、法語或阿拉伯語,甚至中文或印地語(我甚至不考慮所謂的“低資源”語言,就像許多非洲和菲律賓語言一樣)。我們可以用這些語言獲得很多數(shù)據(jù),但不是那么多數(shù)據(jù)。 是的,通過“指令訓練”,我們可能需要更少的數(shù)據(jù)。 但是接下來需要創(chuàng)建指令數(shù)據(jù):對于我們要添加的每一種新語言來說,這都是一項艱巨的任務(wù)。 此外,如果我們相信(并且我相信)代碼 + 語言的培訓很重要,那么這就是為英語以外的語言實現(xiàn)類似模型的另一個巨大障礙。這難道不能通過翻譯來解決嗎?畢竟我們在機器翻譯方面也有很大的進步。 我們可以翻譯成英文,在那里運行模型,然后再翻譯回來。 嗯,是的,我們可以。 但這只會在非常膚淺的層面上起作用。 不同的語言來自不同的地理區(qū)域,這些區(qū)域有其當?shù)氐奈幕?、習俗、故事、事件等?這些以各種方式不同于英語地區(qū)的文化、規(guī)范、故事和事件。 即使是“城市”這樣的簡單概念也會因社區(qū)和地域而異,更不用說“禮儀”或“暴力”等概念了。 或者“只是”關(guān)于某些人、歷史事件、重要地點、植物、習俗等的“事實”知識。這些不會反映在英語培訓數(shù)據(jù)中,也無法通過翻譯涵蓋。因此,數(shù)據(jù)饑餓是一個真正的問題,如果我們考慮到我們可能希望在英語之外也擁有語言理解和“人工智能”技術(shù)。對于我們這些想要擔心社會影響的人來說,這種數(shù)據(jù)饑渴和英語/美國中心的結(jié)合絕對是一個需要考慮的大問題。
模塊化 在上面“常見但無聊的爭論”部分的末尾,我問“我們?nèi)绾螌㈥P(guān)于語言和推理的‘核心‘知識與關(guān)于‘事物‘的具體事實知識分開”。 我認為這是一個要問的主要問題,解決這個問題將大大有助于取得進展(如果不是“解決”)許多其他問題。 如果我們能夠?qū)ⅰ昂诵恼Z言理解和推理”部分與“知識”部分模塊化和分離,我們也許能夠更好地解決數(shù)據(jù)饑餓問題和由此產(chǎn)生的文化知識差距,我們也許能夠更好地 處理和控制偏見和刻板印象,我們幾乎可以“免費”獲得知識的知識。 (很多人都在研究“檢索增強語言模型”。這可能是也可能不是解決這個問題的正確方法。我傾向于懷疑是否有更基本的方法可以找到。但歷史證明我沒有 對這些事情的直覺。)
結(jié)論
大型語言模型是驚人的。語言建模還不夠,但“當前的語言模型”其實不僅僅是語言模型,它們能做的比我們想象的要多得多。但是,如果我們關(guān)心“包容性”語言理解,這仍然“不夠”,即便我們不關(guān)心,也還是不夠。
歡迎關(guān)注電子技術(shù)應(yīng)用2023年2月22日==>>商業(yè)航天研討會<<