henry 發(fā)自 凹非寺
量子位 | 公眾號(hào) QbitAI
訓(xùn)練大模型時(shí),有時(shí)讓它“記性差一點(diǎn)”,反而更聰明!
大語言模型如果不加約束,很容易把訓(xùn)練數(shù)據(jù)原封不動(dòng)地復(fù)刻出來。為解決這個(gè)問題,來自馬里蘭大學(xué)、圖賓根大學(xué)和馬普所的研究團(tuán)隊(duì)提出了一個(gè)新方法——金魚損失(Goldfish Loss)
![]()
顧名思義,金魚損失就是讓模型像金魚一樣,不去死記每一個(gè)細(xì)節(jié),而是在損失函數(shù)計(jì)算時(shí)隨機(jī)剔除一小部分token。
由此,模型不再逐字記住訓(xùn)練集內(nèi)容,但仍能學(xué)會(huì)語言規(guī)律。
實(shí)驗(yàn)顯示,LLaMA-2在使用金魚損失后:
- 記憶化內(nèi)容顯著減少:模型不再復(fù)現(xiàn)訓(xùn)練數(shù)據(jù)
- 下游任務(wù)性能幾乎不受影響:仍然能流暢生成文本
用網(wǎng)友的精辟評(píng)論概括就是:dropout,但損失函數(shù)!
![]()
在梯度計(jì)算中隨機(jī)屏蔽部分token
金魚損失的核心理念非常簡單,就是在模型訓(xùn)練過程中隨機(jī)剔除一部分訓(xùn)練文本中的tokens,使其不參與損失計(jì)算。
這樣一來,當(dāng)模型在推理階段遇到這些位置時(shí),就只能“猜測(cè)”,而不是逐字逐句復(fù)現(xiàn)訓(xùn)練數(shù)據(jù)的完整序列。
此外,為了保證被剔除token的一致性,研究人員設(shè)計(jì)了一種基于哈希(hashing)的掩碼策略。
![]()
那么,這和同樣是防止模型背會(huì)的正則化方法有什么不同呢?
Dropout這樣的正則化方法為例,它通過在訓(xùn)練時(shí)“加噪聲”來防止模型過度依賴某些參數(shù),從而提高模型舉一反三的能力。
但這樣做的問題在于:如果只是隨機(jī)丟token,那么,每次看到同一段落時(shí),丟掉的地方不一樣,模型累計(jì)幾次就能拼湊出完整段落。
所以,說到底,模型還是靠死記硬背,記住了答案。
相比之下,金魚損失則用哈希掩碼確保每次遇到同一段落,掩蓋位置都一樣,這就從根本上阻止了模型復(fù)現(xiàn)完整訓(xùn)練文本。
接下來,我們來看金魚損失具體是怎么做的。
在傳統(tǒng)的next-token prediction中,模型以序列中的下一個(gè)真實(shí)token作為目標(biāo),輸出預(yù)測(cè)分布,并基于該分布計(jì)算交叉熵?fù)p失。
![]()
在金魚損失下,模型雖然也在前向傳播中預(yù)測(cè)序列里下一個(gè) token。但在計(jì)算損失時(shí),會(huì)以一定的概率將某些位置的token從損失計(jì)算里“抹掉”。
也就是說,有些真實(shí)的下一個(gè)token不會(huì)作為目標(biāo)來訓(xùn)練。
![]()
在這里,研究人員采用了簡單的靜態(tài)掩碼(static mask),剔除每序列中的第4個(gè)token。
更進(jìn)一步,為了確保模型不會(huì)從其他地方學(xué)到被掩碼的數(shù)據(jù)(例如不同的文檔會(huì)在不同的網(wǎng)頁中反復(fù)出現(xiàn)),研究團(tuán)隊(duì)還提出了一種局部化哈希掩碼(localized hashed mask),使得當(dāng)相同的前h個(gè)token出現(xiàn)時(shí),掩蓋模式是相同的(可重復(fù))。
實(shí)驗(yàn)測(cè)試與結(jié)果
為了驗(yàn)證金魚損失確實(shí)能防止記憶化,研究團(tuán)隊(duì)設(shè)計(jì)了兩種實(shí)驗(yàn)場景:
一種是極端場景,通過對(duì)少量樣本進(jìn)行多個(gè)訓(xùn)練周期(即重復(fù))來強(qiáng)烈促使記憶化;
另一種是標(biāo)準(zhǔn)場景,模擬現(xiàn)實(shí)模型訓(xùn)練中使用的批次處理方式 。
同時(shí),為了評(píng)估模型的記憶化程度,研究采用了以下指標(biāo):
- RougeL得分:該指標(biāo)衡量最長公共(非連續(xù))子序列的長度 。得分為1.0表示完美記憶 。
- 精確匹配率(Exact Match):該指標(biāo)衡量正確預(yù)測(cè)的序列占真實(shí)序列的百分比.
實(shí)驗(yàn)表明,在極端場景下,標(biāo)準(zhǔn)訓(xùn)練導(dǎo)致模型逐字記憶了100篇文章中的84篇,而金魚損失沒有記憶任何文章
![]()
(注:實(shí)驗(yàn)讓LLaMA-2-7B在《哈利·波特》第一章或100篇維基百科文檔上進(jìn)一步訓(xùn)練了100個(gè)epoch)
此外,在標(biāo)準(zhǔn)訓(xùn)練場景下,金魚損失也明顯減少了模型逐字復(fù)現(xiàn)訓(xùn)練語料庫中目標(biāo)序列的情況。
![]()
但這里可能有個(gè)直覺式的反應(yīng)——如果讓模型“隨機(jī)漏學(xué)”一些token,它的能力會(huì)不會(huì)也隨之降低呢?
對(duì)此,研究人員進(jìn)行了測(cè)試:研究表明,金魚損失模型、標(biāo)準(zhǔn)損失模型和對(duì)照模型之間的總體性能沒有系統(tǒng)性差異。
![]()
需要注意的是,金魚損失的核心在于忽略部分token的梯度計(jì)算。因此,為了學(xué)到足夠的語言模式,模型必須通過更多數(shù)據(jù)來補(bǔ)償這些空缺,這可能導(dǎo)致計(jì)算效率的下降。
[1]https://arxiv.org/pdf/2406.10209
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.