選自 /blog 作者:Jason Wei 機(jī)器之心編譯 編輯:Panda
還記得 Jason Wei 嗎?這位思維鏈的提出者還曾共同領(lǐng)導(dǎo)了指令調(diào)優(yōu)的早期工作,并和 Yi Tay、Jeff Dean 等人合著了關(guān)于大模型涌現(xiàn)能力的論文。目前他正在 OpenAI 參與 ChatGPT 的開發(fā)工作。機(jī)器之心曾經(jīng)報(bào)道過他為年輕 AI 研究者提供的一些建議。 近日,他以客座講師的身份為斯坦福的 CS 330 深度多任務(wù)學(xué)習(xí)與元學(xué)習(xí)課程講了一堂課,分享了他對大型語言模型的一些直觀認(rèn)識(shí)。目前斯坦福尚未公布其演講視頻,但他本人已經(jīng)在自己的博客上總結(jié)了其中的主要內(nèi)容。 當(dāng)今的 AI 領(lǐng)域有一個(gè)仍待解答的問題:大型語言模型的表現(xiàn)為何如此之好?對此,Jason Wei 談到了六個(gè)直覺認(rèn)識(shí)。這些直覺認(rèn)識(shí)中許多都是通過人工檢查數(shù)據(jù)得到的,Jason Wei 表示這是一種非常有幫助的實(shí)踐措施,值得推薦。 語言模型的預(yù)訓(xùn)練目標(biāo)就只是預(yù)測文本語料的下一個(gè)詞,而它們卻從中學(xué)到了許多東西,著實(shí)讓人驚訝。它們從下一個(gè)詞預(yù)測任務(wù)中學(xué)到了什么呢?下面有一些例子。 直覺 1:基于大規(guī)模自監(jiān)督數(shù)據(jù)的下一個(gè)詞預(yù)測是大規(guī)模多任務(wù)學(xué)習(xí) 盡管下一個(gè)詞預(yù)測是非常簡單的任務(wù),但當(dāng)數(shù)據(jù)集規(guī)模很大時(shí),就會(huì)迫使模型學(xué)會(huì)很多任務(wù)。比如下面的傳統(tǒng) NLP 任務(wù)就可以通過預(yù)測語料文本的下一個(gè)詞來學(xué)習(xí)。 上述任務(wù)很明確,但有點(diǎn)理想化。在現(xiàn)實(shí)情況中,預(yù)測下一個(gè)詞還會(huì)涉及到很多的「古怪」任務(wù)。以下列句子為例: 當(dāng)以這樣的方式看待這些數(shù)據(jù)時(shí),很明顯下一個(gè)詞預(yù)測會(huì)促使模型學(xué)到很多有關(guān)語言的東西,而不只是句法和語義,還包括標(biāo)點(diǎn)符號(hào)預(yù)測、事實(shí)預(yù)測、甚至是推理。這些例子能夠佐證這一觀點(diǎn):簡單目標(biāo)加上復(fù)雜數(shù)據(jù)可以帶來高度智能的行為(如果你認(rèn)同語言模型是智能的)。 直覺 2:學(xué)習(xí)輸入 - 輸出關(guān)系的任務(wù)可以被視為下一個(gè)詞預(yù)測任務(wù),這也被稱為上下文學(xué)習(xí) 過去幾十年,機(jī)器學(xué)習(xí)領(lǐng)域的重點(diǎn)就是學(xué)習(xí) < 輸入,輸出 > 對的關(guān)系。由于下一個(gè)詞預(yù)測非常普適,因此我們可以輕松地把機(jī)器學(xué)習(xí)視為下一個(gè)詞預(yù)測。我們把這稱為上下文學(xué)習(xí)(也稱少樣本學(xué)習(xí)或少樣本提示工程)。這一領(lǐng)域的先驅(qū)研究是 GPT-3 論文,其中提出在自然語言指令后面加上 < 輸入,輸出 > 對。如下左圖所示。 而在上圖右側(cè),則可以看到增加上下文中的示例數(shù)量可以提升 GPT-3 論文中任務(wù)的性能。這意味著,為模型提供 < 輸入,輸出 > 示例是有好處的。 上下文學(xué)習(xí)是使用大型語言模型的一種標(biāo)準(zhǔn)形式,而且很方便,因?yàn)?< 輸入,輸出 > 對就是過去幾十年人們執(zhí)行機(jī)器學(xué)習(xí)的方式。但是,我們?yōu)槭裁磻?yīng)當(dāng)繼續(xù)采用 < 輸入,輸出 > 對呢?我們還沒有第一性原理的原因。當(dāng)我們與人類交流時(shí),我們也會(huì)向他們提供指示和解釋,并以互動(dòng)方式教導(dǎo)他們。 直覺 3:token 可能有非常不同的信息密度,所以請給模型思考的時(shí)間 不同 token 的信息量也不同,這是一個(gè)基本事實(shí)。 一些 token 很容易預(yù)測下一個(gè),基本沒多少信息。舉個(gè)例子,如果有句子「I’m Jason Wei, a researcher at OpenAI working on large language 」,不難預(yù)測下一個(gè)詞是「models」。這個(gè) token 的預(yù)測是如此得容易,就算是省略它,這句話也不會(huì)丟失什么信息。 另一些 token 則極難預(yù)測;它們的信息量很大。比如句子「Jason Wei’s favorite color is 」就基本不可能預(yù)測正確。因?yàn)檫@個(gè) token 包含大量新信息。 某些 token 也可能很難以計(jì)算。比如,在句子「Question:What is the square of ((8-2×3+4)^3/8?(A) 1,483,492; (B) 1,395,394; (C) 1,771,561; Answer: (」中,預(yù)測下一個(gè) token 就需要不少工作(計(jì)算數(shù)學(xué)式)。 可以想象一下,如果你是 ChatGPT,你必須一看到 prompt 就馬上開始打字回復(fù),那就很難答對這個(gè)問題。 對此的解決方案是為語言模型提供更多計(jì)算,讓其執(zhí)行推理,然后再給出最終答案。這可以通過一個(gè)簡單技巧來實(shí)現(xiàn),即思維鏈提示工程,其可以通過提供少樣本「思維鏈」示例來鼓勵(lì)模型執(zhí)行推理,如下圖藍(lán)色高亮部分。 這項(xiàng)技術(shù)可用于提升在人類也需要些時(shí)間來處理的復(fù)雜推理任務(wù)上的性能。對于比上面的算術(shù)問題更復(fù)雜的問題,它可以幫助語言模型將 prompt 首先分解成子問題,然后再按順序解決這些子問題(從最少到最多提示工程)。 這種范式非常強(qiáng)大,因?yàn)槲覀兿M?AI 最終能解決人類面臨的最困難的問題(例如貧困、氣候變化等),而推理能力是解決此類問題的基本組成部分。 上面的下一詞預(yù)測任務(wù)之所以有效,關(guān)鍵原因是規(guī)模,這就意味著要在更多數(shù)據(jù)上訓(xùn)練更大的神經(jīng)網(wǎng)絡(luò)。很顯然,訓(xùn)練前沿語言模型需要花費(fèi)很多資金,而我們之所以還這么做,是因?yàn)槲覀冇行判氖褂酶蟮纳窠?jīng)網(wǎng)絡(luò)和更多數(shù)據(jù)就能得到更好的模型(即增大模型和數(shù)據(jù)規(guī)模時(shí)性能不會(huì)飽和)。 直覺 4:預(yù)計(jì)增大語言模型規(guī)模(模型大小和數(shù)據(jù))會(huì)改善損失 規(guī)模擴(kuò)展可以提升模型性能這一現(xiàn)象被稱為 scaling laws,即擴(kuò)展律;如下左圖所示,隨著計(jì)算量增長,測試損失也會(huì)平穩(wěn)地下降。 右圖則是另一個(gè)證據(jù):通過跟蹤較小模型的損失曲線,你可以使用少一萬倍的計(jì)算量來預(yù)測 GPT-4 的損失。 擴(kuò)展規(guī)模為何有用還有待解答,但這里有兩個(gè)尚待證明的原因。一是小語言模型的參數(shù)無法記憶那么多的知識(shí),而大模型可以記憶大量有關(guān)世界的事實(shí)信息。第二個(gè)猜測是小語言模型能力有限,可能只能學(xué)習(xí)數(shù)據(jù)中的一階相關(guān)性。而大型語言模型則可以學(xué)習(xí)數(shù)據(jù)中的復(fù)雜啟發(fā)式知識(shí)。 直覺 5:盡管總體損失會(huì)平穩(wěn)地?cái)U(kuò)展,但單個(gè)下游任務(wù)的擴(kuò)展情況則可能發(fā)生突變 我們來看看當(dāng)損失降低時(shí)究竟會(huì)發(fā)生什么。我們可以將總體損失看作是在所學(xué)習(xí)的大量任務(wù)上的加權(quán)平均。 現(xiàn)在假設(shè)你的損失從 4 降到了 3。那么你的任務(wù)都會(huì)變好嗎?可能不會(huì)。也許損失 = 4 的模型的語法就已經(jīng)完美了,因此已經(jīng)飽和了,但當(dāng)損失 = 3 時(shí)模型的數(shù)學(xué)能力提升了很多。 研究表明,如果觀察模型在 200 個(gè)下游任務(wù)上的性能,你會(huì)看到盡管某些任務(wù)會(huì)平穩(wěn)地提升,但其它一些任務(wù)完全不會(huì)提升,還有一些任務(wù)則會(huì)突然提升。下圖給出了 8 個(gè)這類任務(wù)的例子,其中模型較小時(shí)性能是隨機(jī)的,而一旦模型規(guī)模到達(dá)一定閾值,性能就會(huì)顯著超越隨機(jī)。 對于這種由量變引起的質(zhì)變現(xiàn)象,人們稱之為「涌現(xiàn)(emergence)」。更具體而言,如果一個(gè)能力在更小的模型中沒有,但更大的模型有,我們就說這個(gè)能力是涌現(xiàn)的能力。在這樣的任務(wù)中,我們往往可以看到小模型的能力是大致隨機(jī)的,而超過一定閾值規(guī)模的模型則會(huì)顯著超越隨機(jī),如下圖所示。 涌現(xiàn)現(xiàn)象具有三個(gè)重要含義:
直覺 6:確實(shí)是有真正的上下文學(xué)習(xí),但只有足夠大的語言模型才行 GPT-3 論文已經(jīng)告訴我們,增加上下文中的示例數(shù)量可以提升性能。盡管我們希望這是因?yàn)槟P驼娴膹钠渖舷挛氖纠袑W(xué)習(xí)到了 < 輸入,輸出 > 映射關(guān)系,但性能的提升還可能會(huì)有其它原因,比如示例告訴了模型有關(guān)格式或可能標(biāo)簽的信息。 事實(shí)上,論文《Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?》表明,即使為上下文示例使用隨機(jī)標(biāo)簽,GPT-3 的性能也幾乎不會(huì)下降。其中認(rèn)為,性能的提升并非由于學(xué)習(xí)到了 < 輸入,輸出 > 映射關(guān)系,而是由于上下文讓模型了解了格式或可能的標(biāo)簽。 但是,相比于當(dāng)今最強(qiáng)大的模型,GPT-3 并非一個(gè)「超級(jí)」語言模型。如果我們對翻轉(zhuǎn)標(biāo)簽(即正表示負(fù),負(fù)表示正)采取更極端的設(shè)置,那么我們會(huì)發(fā)現(xiàn)語言模型會(huì)更嚴(yán)格地遵守翻轉(zhuǎn)標(biāo)簽,而小模型則完全不會(huì)受到影響。如下圖所示,大型語言模型(PaLM-540B、code-davinci-002 和 text-davinci-002)的能力下降了。 這表明語言模型確實(shí)會(huì)考慮 < 輸入,輸出 > 映射,但前提是語言模型要足夠大。 在博客最后,Jason Wei 表示,他希望這些直覺是有用的,盡管它們看起來非常基礎(chǔ)。此外,他發(fā)現(xiàn),通過手動(dòng)查看數(shù)據(jù)可以學(xué)到很多東西,這是他最近很喜歡做的一件事情,推薦大家也嘗試一下。 原文鏈接:https://www./blog/some-intuitions-about-large-language-models |
|