自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

谷歌讓NLP模型也能Debug,只要給一張「草稿紙」就行

新聞 人工智能
來(lái)自MIT和谷歌的研究人員發(fā)現(xiàn):不用修改模型的底層架構(gòu),只需訓(xùn)練它們學(xué)會(huì)像程序員debug時(shí)那樣“打斷點(diǎn)”,讀代碼的能力就唰唰唰地漲上去了。

[[438690]]

本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。

現(xiàn)在的大型語(yǔ)言模型,能力個(gè)個(gè)都挺強(qiáng)。

但,它們的計(jì)算能力都不太行:

比如GPT-3,沒(méi)法做超過(guò)三位數(shù)的加法。

再比如它們當(dāng)中的大多數(shù)都可以寫(xiě)代碼,但是理解代碼卻很費(fèi)勁——稍微遇到點(diǎn)帶循環(huán)的程序就gg。

[[438691]]

不過(guò),來(lái)自MIT和谷歌的研究人員發(fā)現(xiàn):

不用修改模型的底層架構(gòu),只需訓(xùn)練它們學(xué)會(huì)像程序員debug時(shí)那樣“打斷點(diǎn)”,讀代碼的能力就唰唰唰地漲上去了。

谷歌讓NLP模型也能debug,只要給一張「草稿紙」就行

將同樣的思路用于大數(shù)加法、多項(xiàng)式計(jì)算,那就更不在話(huà)下了。

所以,語(yǔ)言模型的數(shù)學(xué)能力終于也要跟上了?!

教語(yǔ)言模型用“打斷點(diǎn)”的方法做加法、讀程序

前面說(shuō)的“打斷點(diǎn)”,其實(shí)指的是在計(jì)算步驟較多的程序中,讓模型把每一步都編碼為文本,并將它們記錄到一個(gè)稱(chēng)為“便簽”的暫存器中,或者叫“草稿紙”。

聽(tīng)起來(lái)是個(gè)“笨”方法,但正是這樣才使得模型的計(jì)算過(guò)程變得清晰有條理,性能也就比以往直接計(jì)算的方式提升了很多。

具體操作也很簡(jiǎn)單。

就比如在簡(jiǎn)單的加法計(jì)算中,計(jì)算“29+57”的方式就是像這樣的:

谷歌讓NLP模型也能debug,只要給一張「草稿紙」就行

其中C表示進(jìn)位,#表注釋。

先計(jì)算9+7,進(jìn)位1;再計(jì)算2+5+進(jìn)位1,最后得出86。

從上可以看出,這個(gè)訓(xùn)練示例由“輸入”和“目標(biāo)”組成。

訓(xùn)練時(shí)將兩者都喂給模型;測(cè)試時(shí),模型就能根據(jù)“輸入”預(yù)測(cè)出正確的“目標(biāo)”。

而“目標(biāo)”就是要發(fā)送到臨時(shí)暫存器上的內(nèi)容,通過(guò)關(guān)注其上下文就可以引用;實(shí)際操作中,還可以對(duì)“草稿”內(nèi)容進(jìn)行檢查糾錯(cuò)。

顯著提高語(yǔ)言模型的計(jì)算能力

研究人員選用了僅含解碼器結(jié)構(gòu)的Transformer語(yǔ)言模型來(lái)實(shí)驗(yàn),其參數(shù)規(guī)模介于200萬(wàn)到1370億之間。

原則上,任何序列模型都可以使用這個(gè)方法,包括編-解碼器模型或循環(huán)網(wǎng)絡(luò)等。

首先,他們按這種“打斷點(diǎn)”的方式訓(xùn)練語(yǔ)言模型進(jìn)行1-8位數(shù)的整數(shù)加法。

訓(xùn)練包含10萬(wàn)個(gè)示例,并進(jìn)行了5000步的微調(diào),batch size為32。

然后分別用1萬(wàn)個(gè)數(shù)據(jù)來(lái)測(cè)試訓(xùn)練分布內(nèi)的加法;1千個(gè)數(shù)據(jù)來(lái)測(cè)試訓(xùn)練分布之外,也就是9位和10位數(shù)的加法。

將結(jié)果分別與直接運(yùn)算的語(yǔ)言模型進(jìn)行比較,發(fā)現(xiàn):

即使超出臨界模型大小,用了“打斷點(diǎn)”法的模型也能夠進(jìn)行加法運(yùn)算,而直接運(yùn)算的基線(xiàn)模型就沒(méi)法做到這一點(diǎn)。

而在分布外的任務(wù)中,直接運(yùn)算的基線(xiàn)模型完全掛掉——“沒(méi)練過(guò)就不會(huì)做”,而用了“斷點(diǎn)”法的模型隨著規(guī)模的增大hold住了9-10位數(shù)的加法。

谷歌讓NLP模型也能debug,只要給一張「草稿紙」就行

好,大數(shù)加法搞定。

接下來(lái)上多項(xiàng)式。

他們生成了一個(gè)包含1萬(wàn)個(gè)多項(xiàng)式的訓(xùn)練數(shù)據(jù)集和2000個(gè)數(shù)據(jù)的測(cè)試集。

其中項(xiàng)數(shù)一般不超過(guò)3項(xiàng),系數(shù)范圍在-10到+10之間,結(jié)果在-1000到+10000之間。

多項(xiàng)式的訓(xùn)練示例如下:

谷歌讓NLP模型也能debug,只要給一張「草稿紙」就行

結(jié)果發(fā)現(xiàn):無(wú)論是微調(diào)還是少樣本訓(xùn)練之后,“斷點(diǎn)”法的性能都優(yōu)于直接預(yù)測(cè)。

谷歌讓NLP模型也能debug,只要給一張「草稿紙」就行

最后就是讀Python代碼了。

代碼的訓(xùn)練示例中,記錄了正在執(zhí)行的是哪行代碼,以及此時(shí)各變量的值,用json格式表示。

谷歌讓NLP模型也能debug,只要給一張「草稿紙」就行

此前的語(yǔ)言模型讀代碼的能力都表現(xiàn)不佳。“打斷點(diǎn)”的方式可以讓它們一改常態(tài)么?

首先,經(jīng)過(guò)200個(gè)程序(都是人工編寫(xiě)的,包括簡(jiǎn)單的while循環(huán)和if語(yǔ)句)的測(cè)試發(fā)現(xiàn),“斷點(diǎn)法”整體執(zhí)行精度更高。

與直接執(zhí)行的模型相比,微調(diào)還可以將模型性能從26.5%提高到41.5%。

谷歌讓NLP模型也能debug,只要給一張「草稿紙」就行

一個(gè)真實(shí)例子:

谷歌讓NLP模型也能debug,只要給一張「草稿紙」就行

“斷點(diǎn)”法經(jīng)過(guò)3次while循環(huán),最終給出了正確的變量值。

谷歌讓NLP模型也能debug,只要給一張「草稿紙」就行

接著,他們又用包含了1000個(gè)程序的MBPP數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試。

這些程序涉及多種數(shù)據(jù)類(lèi)型的計(jì)算,包括整數(shù)、字符串、浮點(diǎn)數(shù)等,以及涉及循環(huán)、API調(diào)用和遞歸等流程結(jié)構(gòu)。

并添加訓(xùn)練數(shù)據(jù)之外的“single line”程序集和CodeNet程序集進(jìn)行測(cè)試。

結(jié)果發(fā)現(xiàn),模型也可以很好地?cái)U(kuò)展。

谷歌讓NLP模型也能debug,只要給一張「草稿紙」就行

當(dāng)然,這個(gè)方法也有局限性:

比如復(fù)雜的計(jì)算可能需要很“長(zhǎng)”的暫存器,這可能需要進(jìn)一步改進(jìn)Transformer生成窗口的大小。好在這也是NLP領(lǐng)域的一個(gè)活躍研究領(lǐng)域。

而在未來(lái),他們可能會(huì)嘗試在無(wú)監(jiān)督情況下用強(qiáng)化學(xué)習(xí)讓語(yǔ)言模型學(xué)會(huì)“打斷點(diǎn)”。

總之,語(yǔ)言模型的計(jì)算能力、讀代碼的能力會(huì)越來(lái)越強(qiáng)。

論文地址:

https://arxiv.org/abs/2112.00114

 

 

責(zé)任編輯:張燕妮 來(lái)源: 量子位
相關(guān)推薦

2024-03-28 13:14:00

數(shù)據(jù)訓(xùn)練

2023-10-04 00:16:00

Chinchilla小模型

2023-05-15 09:43:49

模型數(shù)據(jù)

2019-06-23 17:30:07

AI 數(shù)據(jù)人工智能

2014-03-14 09:47:08

手游進(jìn)化產(chǎn)品

2021-02-07 09:01:10

Java并發(fā)編程

2019-09-11 10:12:12

華為

2012-09-10 14:07:58

JavaScriptJS類(lèi)型

2015-05-08 11:23:41

谷歌IO大會(huì)

2022-08-22 14:17:31

3D模型

2015-03-10 10:15:27

AppleWatch開(kāi)發(fā)Swift

2017-10-16 12:56:16

正則表達(dá)式思維導(dǎo)圖

2013-12-18 13:19:43

多核計(jì)算

2012-12-24 10:29:42

大數(shù)據(jù)生態(tài)系統(tǒng)數(shù)據(jù)庫(kù)451Research

2021-05-20 08:40:23

谷歌模型開(kāi)發(fā)

2013-07-04 10:50:33

騰訊移動(dòng)互聯(lián)網(wǎng)大數(shù)據(jù)

2012-07-19 09:25:01

JavaScript

2024-01-30 13:02:05

AI訓(xùn)練

2023-05-13 09:09:54

AR谷歌
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)