大模型對(duì)語言有自己的理解!MIT論文揭示大模型“思維過程” | ICML 24
大模型對(duì)現(xiàn)實(shí)世界,可以形成自己的理解!
MIT的一項(xiàng)研究發(fā)現(xiàn),隨著模型能力越強(qiáng),它對(duì)現(xiàn)實(shí)的理解可能不僅是簡(jiǎn)單模仿。
比如大模型沒有聞過氣味,是否就意味著它不能理解氣味?
研究發(fā)現(xiàn),它可以自發(fā)模擬一些概念,方便理解。
這項(xiàng)研究意味著,大模型未來有希望更深入理解語言和世界,論文已被頂會(huì)ICML 24接收。

這篇論文的作者是MIT計(jì)算機(jī)與人工智能實(shí)驗(yàn)室(CSAIL)華裔博士生Charles Jin和他的導(dǎo)師Martin Rinard教授。
研究當(dāng)中,作者讓大模型只學(xué)習(xí)代碼文本,結(jié)果發(fā)現(xiàn)模型逐漸掌握了其背后的含義。
Rinard教授表示,這項(xiàng)研究直接針對(duì)現(xiàn)代人工智能的一個(gè)核心問題——
大模型的能力僅僅是由于大規(guī)模的統(tǒng)計(jì)相關(guān)性,還是對(duì)它們要處理的現(xiàn)實(shí)問題產(chǎn)生了有意義的理解?

△來源:MIT官網(wǎng)
同時(shí)這項(xiàng)研究也引發(fā)了不少討論。
有網(wǎng)友表示,雖然大模型對(duì)語言的理解可能和人類不同,但這項(xiàng)研究至少說明了模型做的絕不僅僅是對(duì)訓(xùn)練數(shù)據(jù)的記憶。

讓大模型學(xué)習(xí)純代碼
為了探究大模型能否產(chǎn)生語義層面的理解,作者構(gòu)建了一個(gè)由程序代碼及其對(duì)應(yīng)輸入輸出組成的合成數(shù)據(jù)集。
這些代碼程序用一種名為Karel的教學(xué)語言編寫,主要用于實(shí)現(xiàn)機(jī)器人在2D網(wǎng)格世界中導(dǎo)航的任務(wù)。
這個(gè)網(wǎng)格世界由8x8的格子組成,每個(gè)格子可以包含障礙物、標(biāo)記物或空地。機(jī)器人可以在格子間移動(dòng),并進(jìn)行放置/拾取標(biāo)記物等操作。
Karel語言包含5個(gè)原始操作——move(前進(jìn)一步)、turnLeft(左轉(zhuǎn)90度)、turnRight(右轉(zhuǎn)90度)、pickMarker(拾取標(biāo)記物)、putMarker(放置標(biāo)記物),程序就是由這些原始操作的序列組成。

作者隨機(jī)生成了一個(gè)包含50萬個(gè)Karel程序的訓(xùn)練集,每個(gè)程序長(zhǎng)度在6到10之間。
每個(gè)訓(xùn)練樣本由三部分組成:5個(gè)輸入狀態(tài)、5個(gè)輸出狀態(tài)和完整的程序代碼,輸入輸出狀態(tài)以特定格式編碼進(jìn)字符串中。
利用這些數(shù)據(jù),作者訓(xùn)練了標(biāo)準(zhǔn)Transformer架構(gòu)的CodeGen模型的一個(gè)變體。
訓(xùn)練過程中,模型可以訪問每個(gè)樣本中的輸入輸出信息和程序前綴,但看不到程序執(zhí)行的完整軌跡和中間狀態(tài)。
除了訓(xùn)練集,作者還構(gòu)建了一個(gè)包含1萬個(gè)樣本的測(cè)試集,用于評(píng)估模型的泛化性能。
為了研究語言模型是否掌握了代碼背后的語義,同時(shí)深入了解模型的“思維過程”,作者設(shè)計(jì)了一套包含線性分類器和單/雙隱層MLP的探測(cè)器組合。
探測(cè)器的輸入是語言模型在生成程序tokens過程中的隱藏狀態(tài),預(yù)測(cè)目標(biāo)則是程序執(zhí)行的中間狀態(tài),具體包括機(jī)器人的朝向(direction)、相對(duì)于初始位置的偏移量(position)以及是否正面朝向障礙物(obstacle) 這三個(gè)特征。
在生成模型的訓(xùn)練過程中,作者每隔4000步記錄一次上述三個(gè)特征,并同時(shí)記下生成模型的隱藏狀態(tài),形成探測(cè)器的訓(xùn)練數(shù)據(jù)集。

大模型學(xué)習(xí)的三個(gè)階段
通過觀察語言模型產(chǎn)生的程序的多樣性、困惑度等指標(biāo)隨訓(xùn)練進(jìn)程的變化,作者將訓(xùn)練過程分為了三個(gè)階段——
- Babbling(胡言亂語)階段:輸出程序重復(fù)度高,探測(cè)器準(zhǔn)確率不穩(wěn)定。
- 語法習(xí)得階段:程序多樣性迅速提高,生成準(zhǔn)確率小幅提升,困惑度下降,說明語言模型習(xí)得了程序的句法結(jié)構(gòu)。
- 語義習(xí)得階段:程序多樣性和句法結(jié)構(gòu)掌握程度平穩(wěn),但生成準(zhǔn)確率和探測(cè)器性能大幅提升,說明語言模型習(xí)得了程序的語義。
具體來說,Babbling階段占據(jù)了整個(gè)訓(xùn)練過程的前50%,例如在訓(xùn)練到20%左右的時(shí)候,無論輸入什么規(guī)范,模型都只會(huì)生成一個(gè)固定的程序——“pickMarker”重復(fù)9次。
語法習(xí)得階段處于訓(xùn)練過程的50%到75%,模型在Karel程序上的困惑度顯著下降,表明語言模型開始更好地適應(yīng)Karel程序的統(tǒng)計(jì)特性,但生成程序的準(zhǔn)確率提升幅度不大(從10%左右提升到25%左右),仍然無法準(zhǔn)確完成任務(wù)。
語義習(xí)得階段是最后的25%,程序的準(zhǔn)確率出現(xiàn)了急劇提升,從25%左右提升到90%以上,生成的程序能夠準(zhǔn)確地完成給定的任務(wù)。

進(jìn)一步實(shí)驗(yàn)又發(fā)現(xiàn),探測(cè)器不僅可以對(duì)t時(shí)刻的同時(shí)間步進(jìn)行預(yù)測(cè),還能預(yù)測(cè)后續(xù)時(shí)間步的程序執(zhí)行狀態(tài)。
舉例來說,假設(shè)生成模型在t時(shí)刻生成了token“move”,并將在t+1時(shí)刻生成“turnLeft”。
與此同時(shí),t時(shí)刻的程序狀態(tài)是機(jī)器人面向北方,位于坐標(biāo)(0,0),而t+1時(shí)刻機(jī)器人將是機(jī)器人將面向西方,位置不變。
如果探測(cè)器能夠從語言模型在t時(shí)刻的隱藏狀態(tài)中,成功預(yù)測(cè)到t+1時(shí)刻機(jī)器人會(huì)面向西方,就說明在生成”turnLeft”之前,隱藏狀態(tài)就已經(jīng)包含了這一操作帶來的狀態(tài)變化信息。
這一現(xiàn)象說明,模型并非只對(duì)已生成的程序部分有語義理解,而是在生成每一步時(shí),就已經(jīng)對(duì)接下來要生成的內(nèi)容有所預(yù)期和規(guī)劃,顯現(xiàn)出了初步的面向未來的推理能力。
但這一發(fā)現(xiàn)又給這項(xiàng)研究帶來了新的問題——
實(shí)驗(yàn)中觀察到的準(zhǔn)確度提升,到底真的是生成模型進(jìn)步了,還是探測(cè)器自己推論的結(jié)果呢?
為了解決這個(gè)疑惑,作者補(bǔ)充了語義探測(cè)干預(yù)實(shí)驗(yàn)。

實(shí)驗(yàn)的基本思路是改變程序操作的語義解釋規(guī)則,具體又分為“flip”和“adversarial”兩種方式。
“flip”是強(qiáng)行反轉(zhuǎn)指令含義,如將“turnRight”強(qiáng)行解釋為“左轉(zhuǎn)”不過能進(jìn)行這種反轉(zhuǎn)的也只有“turnLeft”和“turnRight”;
“adversarial”則是將所有指令對(duì)應(yīng)的語義隨機(jī)打亂,具體方式如下方表格。

如果生成模型的隱藏狀態(tài)只編碼了程序的句法結(jié)構(gòu),而非語義信息,那么探測(cè)器應(yīng)該仍然能夠從隱藏狀態(tài)中以同等的性能去提取這些被改變的語義信息。
相反,如果探測(cè)器性能顯著下降,則說明探測(cè)器顯示出的的性能提升的確是因?yàn)樯赡P碗[藏狀態(tài)編碼了實(shí)際語義。
實(shí)驗(yàn)結(jié)果顯示,在兩種新語義下,探測(cè)器的性能都出現(xiàn)了顯著下降。
尤其是在“adversarial”模式下更加明顯,這也與該模式下的語義與原始語義差異更大的特征相一致。

這些結(jié)果有力地排除了探測(cè)器“自己學(xué)會(huì)語義映射”的可能性,進(jìn)一步證實(shí)了生成模型的確掌握了代碼的含義。
論文地址:https://icml.cc/virtual/2024/poster/34849



































