首頁  >  文章  >  科技週邊  >  Google、史丹佛聯合發文:我們為什麼一定要用大模型?

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

PHPz
PHPz轉載
2023-04-08 17:51:041648瀏覽

語言模型已經深刻變革了自然語言處理領域的研究和實踐。近年來,大模型在多個領域都取得了重要的突破。它們無需在下游任務上微調,透過適當的指令或提示就可以取得優異的效能,甚至有時讓人為之驚嘆。

例如,GPT-3 [1] 可以寫情書、寫劇本和解決複雜的數據數學推理問題,PaLM [2] 可以解釋笑話。上面的例子只是大模型能力的冰山一角,現在利用大模型能力已經發展了許多應用,在OpenAI的網站 [3] 可以看到許多相關的demo,而這些能力在小模型上卻很少體現。

今天介紹的這篇論文中,將那些小模型不具備而大模型具備的能力稱為突現能力(Emergent Abilities),意指模型的規模大到一定程度後所突然獲得的能力。這是一個量變產生質變的過程。

突現能力的出現難以預測。為什麼隨著規模的增加,模型會忽然獲得某些能力仍舊是一個開放問題,還需要進一步的研究來解答。在本文中,筆者梳理了最近關於理解大模型的一些進展,並給出了一些相關的思考,期待與大家共同探討。

相關論文:

  • Emergent Abilities of Large Language Models.
    http://arxiv. org/abs/2206.07682
  • Beyond the Imitation Game: Quantifying and extrapolating the capabilities of language models.
    https://arxiv.org/abs/ 2206.04615

大模型的突現能力

何謂大模型?到什麼尺寸才算「大」?這並沒有一個明確的定義。

一般來說,模型參數可能要達到十億級才會顯示出明顯不同於小模型的zero-shot和few-shot的能力。近年來已有多個千億和兆級參數的模型,在一系列的任務上都取得了SOTA的表現。在某些任務中,模型的表現隨著規模的增加而可靠地提高,而在另一些任務中,模型在某個規模上表現出表現的突然提升。可以用兩個指標去對不同的任務進行分類[4]:

  • Linearity: 旨在衡量模型隨著規模的增加在任務上的表現在多大程度上得到可靠的提升。

  • Breakthroughness: 旨在衡量當模型規模超過臨界值時可以在多大程度上學習任務。

這兩個指標是模型規模和模型表現的函數,具體計算細節可以參考 [4]。下圖展示了一些高Linearity和高Breakthroughness任務的例子。

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

高Linearity的任務大多是基於知識的,也就是說他們主要依賴記憶訓練資料中存在的訊息,例如回答一些事實性的問題。更大的模型通常用更多的數據進行訓練,也能記住更多的知識,所以模型隨著規模的增大在這類任務上明確出了穩定的提升。高Breakthroughness的任務包括較複雜的任務,它們需要用幾種不同的能力或執行多個步驟以獲得正確的答案,例如數學推理。較小的模型難以獲得執行這類任務所需的所有能力。

下圖進一步展示了不同的模型在一些高Breakthroughness任務上的表現

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

#在未達到一定的模型規模時,模型在這些任務上的表現是隨機的,達到某個特定的規模之後,就有了顯著的提升。

 是平滑還是突現?

#

前面我们看到的是模型规模增加到一定程度后突然获得了某些能力,从任务特定的指标来看,这些能力是突现的,但是从另外的角度来看,模型能力的潜在变化更为平滑。本文讨论如下两个角度:(1)使用更为平滑的指标;(2)将复杂的任务分解为多个子任务。

下图(a)展示了一些高Breakthroughness任务的真实目标对数概率的变化曲线,真实目标的对数概率是随着模型规模增大逐渐提高的。

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

图(b)显式了对于某个多项选择任务,随着模型规模的增大,正确答案的对数概率逐步提升,而错误答案的对数概率在某个特定的规模之前逐步提升,而在此之后趋于平坦。在这个规模之后,正确答案概率和错误答案概率的差距拉大,从而模型得到了显著的性能提升。

此外,对于某个特定任务,假设我们可以用Exact Match和BLEU去评价模型的表现,BLEU相比于Exact Match是更为平滑的指标,使用不同指标所看到的趋势可能有显著的差距。

对于一些任务,模型可能在不同的规模上获得了做这个任务的部分能力。下图是通过一串emoji去猜测电影名字的任务

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

我们可以看到模型在一些规模开始猜测电影名称,在更大的规模上识别表情符号的语义,在最大的规模上产生正确的答案。

 大模型对如何形式化任务很敏感

模型在什么规模上体现出突然的能力提升也取决于如何去形式化任务。例如,在复杂的数学推理任务上,使用标准的prompting将其视为问答任务,模型规模增大性能提升十分有限,而若使用如下图所示的chain-of-thought prompting [5],将其视为多步推理任务,则会在某个特定的规模看到显著的性能提升。

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

更有甚者,研究人员发现通过添加一个简单的提示“Let’s think step by step”,就可以大幅提升GPT-3的zero-shot推理能力 [6],如下图所示

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

这对于我们的启发是,大模型有时做不好某个任务,可能并不是真的做不好,而是需要合适的方式去激发它的能力。

 模型越大一定越强吗?

前面的讨论给我们的直观感觉是模型规模变大性能一定是有所提升的,但是真的是这样吗?实际上,对于有些任务,模型变大之后性能可能反而会有所下降,如下图所示

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

纽约大学的几位研究人员还组织了一项竞赛,旨在找到那些模型变大后反而表现变差的任务。

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

例如在問答任務中,如果在提問的同時加上你的信仰,大模型會更容易受到影響。有興趣的同學可以關注。

總結與思考

  • 在大多數任務上,隨著模型規模的增大,模型的表現也越好,但是也會有一些反例。更好地去理解模型此類行為還需要更多的研究。

  • 大模型的能力需要適當的方式去激發。

  • 大模型真的在做推理嗎?如我們之前看到的,透過添加提示“Let’s think step by step”,大模型在數學推理任務上就可以進行多步驟推理並取得令人滿意的效果,似乎模型已經具備了人類的推理能力。但是,如下如圖所示,如果給GPT-3一個沒有意義的問題,讓它去做多步驟推理,GPT-3看似在做推理,實則是一些無意義的輸出。正所謂「garbage in, garbage out」。相比較而言,人類就可以判斷問題是否是合理的,也就是說在給定條件下,當前問題是不是可回答的。 「Let's think step by step」能夠發揮作用,筆者覺得根本原因還是GPT-3在訓練過程中看過很多類似的數據,它做的只不過是根據前面的token去預測接下來的token罷了,跟人類的思考方式仍舊有本質上的差異。當然,如果給合適的提示讓GPT-3去判斷問題是不是合理的或許它也能在某種程度上做到,但是距離“思考”和“推理”恐怕仍有相當大的距離,這不是單純增大模型的規模能夠解決的。模型或許不需要像人類那樣思考,但是亟需更多的研究去探索除增大模型規模之外的路徑。

Google、史丹佛聯合發文:我們為什麼一定要用大模型?

  • 系統1還是系統2?人類大腦有兩個系統互相配合,系統1(直覺)是快速的、自動化的,而係統2(理性)是緩慢的、可控制的。大量實驗已證明,人們更喜歡使用直覺進行判斷和決策,而理性可以對其導致的偏差進行糾正。現在的模型多基於系統1或系統2進行設計,能否基於雙系統設計未來的模型呢?

  • 大模型時代的查詢語言。之前我們把知識和資料儲存在資料庫和知識圖譜中,我們可以用SQL查詢關係型資料庫,可用SPARQL去查詢知識圖譜,那我們用什麼查詢語言去呼叫大模型的知識和能力呢?

梅貽琦先生曾說“所謂大學者,非謂有大樓之謂也,有大師之謂也”,筆者在此用個不太恰當的類比結束本篇:所謂大模型者,非謂有參數之謂也,有能之謂也。

以上是Google、史丹佛聯合發文:我們為什麼一定要用大模型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除