ICML 2024 | 大語言模型預(yù)訓(xùn)練新前沿:「最佳適配打包」重塑文檔處理標(biāo)準(zhǔn)
在大型語言模型的訓(xùn)練過程中,數(shù)據(jù)的處理方式至關(guān)重要。
傳統(tǒng)的方法通常通過將大量文檔拼接并切分成等同于模型的上下文長度的訓(xùn)練序列。這雖然提高了訓(xùn)練效率,但也常導(dǎo)致文檔的不必要截?cái)啵瑩p害數(shù)據(jù)完整性,導(dǎo)致關(guān)鍵的上下文信息丟失,進(jìn)而影響模型學(xué)習(xí)到的內(nèi)容的邏輯連貫性和事實(shí)一致性,并使模型更容易產(chǎn)生幻覺。
AWS AI Labs 的研究人員針對這一常見的拼接-分塊文本處理方式進(jìn)行了深入研究, 發(fā)現(xiàn)其嚴(yán)重影響了模型理解上下文連貫性和事實(shí)一致性的能力。這不僅影響了模型在下游任務(wù)的表現(xiàn),還增加了產(chǎn)生幻覺的風(fēng)險(xiǎn)。
針對這一問題,他們提出了一種創(chuàng)新的文檔處理策略——最佳適配打包 (Best-fit Packing),通過優(yōu)化文檔組合來消除不必要的文本截?cái)啵@著地提升了模型的性能且減少模型幻覺。這一研究已被ICML 2024接收。
文章標(biāo)題:Fewer Truncations Improve Language Modeling
論文鏈接:https://arxiv.org/pdf/2404.10830
研究背景
在傳統(tǒng)的大型語言模型訓(xùn)練方法中,為了提高效率,研究人員通常會將多個(gè)輸入文檔拼接在一起,然后將這些拼接的文檔分割成固定長度的序列。
這種方法雖然簡單高效,但它會造成一個(gè)重大問題——文檔截?cái)啵╠ocument truncation),損害了數(shù)據(jù)完整性(data integrity)。文檔截?cái)鄷?dǎo)致文檔包含的信息丟失 (loss of information)。
此外,文檔截?cái)鄿p少了每個(gè)序列中的上下文量,可能導(dǎo)致下一個(gè)詞的預(yù)測與上文不相關(guān),從而使模型更容易產(chǎn)生幻覺 (hallucination)。
以下的例子展示了文檔截?cái)鄮淼膯栴}:
- 圖2(a):在Python編程中,原始代碼雖然正確,但將變量定義與使用分割到不同的訓(xùn)練序列中會引入語法錯(cuò)誤,導(dǎo)致某些變量在后續(xù)訓(xùn)練序列中未定義,從而使得模型學(xué)習(xí)到錯(cuò)誤的模式,并可能在下游任務(wù)中產(chǎn)生幻覺。例如,在程序合成任務(wù)中,模型可能會在沒有定義的情況下直接使用變量。
- 圖2(b):截?cái)嗤瑯訐p害了信息的完整性。例如,摘要中的“Monday morning”無法與訓(xùn)練序列中的任何上下文匹配,導(dǎo)致內(nèi)容失實(shí)。這種信息不完整性會顯著降低模型對上下文信息的敏感度,導(dǎo)致生成的內(nèi)容與實(shí)際情況不符,即所謂的不忠實(shí)生成 (unfaithful generation)。
- 圖2(c):截?cái)噙€會阻礙訓(xùn)練期間的知識獲取,因?yàn)橹R在文本中的表現(xiàn)形式通常依賴完整的句子或段落。例如,模型無法學(xué)習(xí)到ICML會議的地點(diǎn),因?yàn)闀h名稱和地點(diǎn)分布在不同的訓(xùn)練序列中。
圖2. 文檔截?cái)鄬?dǎo)致幻覺或知識喪失的例子。(a) 變量定義(藍(lán)色部分)被截?cái)啵S后的使用調(diào)用導(dǎo)致未定義名稱(紅色部分)。(b) 關(guān)鍵上下文信息被截?cái)啵ㄋ{(lán)色部分),使得摘要不忠實(shí)于原文(紅色部分),(c) 由于截?cái)啵P筒恢繧CML 2024的舉辦地點(diǎn)。
最佳適配打包
針對這一問題,研究者提出了最佳適配打包 (Best-fit Packing)。
該方法使用長度感知的組合優(yōu)化技術(shù),有效地將文檔打包到訓(xùn)練序列中,從而完全消除不必要的截?cái)唷_@不僅保持了傳統(tǒng)方法的訓(xùn)練效率,而且通過減少數(shù)據(jù)的片段化,實(shí)質(zhì)性地提高了模型訓(xùn)練的質(zhì)量。
作者首先先將每個(gè)文本分割成一或多個(gè)至多長為模型上下文長度L的序列。這一步限制來自于模型,所以是必須進(jìn)行的。
現(xiàn)在,基于大量的至多長為L的文件塊,研究者希望將它們合理地組合,并獲得盡量少的訓(xùn)練序列。這個(gè)問題可以被看作一個(gè)集裝優(yōu)化(Bin Packing)問題。集裝優(yōu)化問題是NP-hard的。如下圖算法所示,這里他們采用了最佳適配遞減算法(Best-Fit-Decreasing, BFD) 的啟發(fā)式策略。
接下來從時(shí)間復(fù)雜度 (Time Complexity) 和緊湊性 (Compactness) 的角度來討論BFD的可行性。
時(shí)間復(fù)雜度:
BFD的排序和打包的時(shí)間復(fù)雜度均為O(N log N),其中N是文檔塊的數(shù)量。在預(yù)訓(xùn)練數(shù)據(jù)處理中,由于文檔塊的長度是整數(shù)并且是有限的 ([1, L]),可以使用計(jì)數(shù)排序 (count sort) 來實(shí)現(xiàn)將排序的時(shí)間復(fù)雜度降低到O(N)。
在打包階段,通過使用段樹(Segment Tree)的數(shù)據(jù)結(jié)構(gòu),使得每次尋找最佳適配容器的操作只需對數(shù)時(shí)間,即O(log L)。又因?yàn)長<<N, 使得總時(shí)長約為 O(N),進(jìn)而整體算法與數(shù)據(jù)大小呈線性關(guān)系,確保對大規(guī)模數(shù)據(jù)集的適用性:處理大型預(yù)訓(xùn)練語料庫如Falcon RefinedWeb (約十億文檔) 只需要3小時(shí)。
緊湊性 :
緊湊性是衡量打包算法效果的另一個(gè)重要指標(biāo),在不破壞原文檔完整性的同時(shí)需要盡可能減少訓(xùn)練序列的數(shù)量以提高模型訓(xùn)練的效率。
在實(shí)際應(yīng)用中,通過精確控制序列的填充和排布,最佳適配打包能夠生成幾乎與傳統(tǒng)方法相當(dāng)數(shù)量的訓(xùn)練序列,同時(shí)顯著減少了因截?cái)喽斐傻臄?shù)據(jù)損失。
基于在自然語言(RefinedWeb) 和編程語言(The Stack) 數(shù)據(jù)集上的實(shí)驗(yàn),我們發(fā)現(xiàn)最佳適配打包顯著降低了文本截?cái)唷?/p>
值得注意的是,大多數(shù)文檔包含的token數(shù)少于2048個(gè);由于傳統(tǒng)拼接-分塊時(shí)造成的截?cái)嘀饕l(fā)生在這一范圍內(nèi),而最佳適配打包不會截?cái)嗳魏伍L度低于L的文檔,由此有效地保持了絕大多數(shù)文檔的完整性。
圖4:當(dāng)最大序列長度設(shè)置為2k或8k時(shí),在不同文檔長度下,每個(gè)文檔長度對應(yīng)的文檔數(shù)量和截?cái)鄶?shù)量。使用“最佳適應(yīng)打包”(Best-fit Packing)技術(shù)后,截?cái)鄶?shù)量明顯減少。上方:自然語言。下方:編程語言。
實(shí)驗(yàn)與結(jié)果
研究人員詳細(xì)報(bào)告了使用最佳適配打包與傳統(tǒng)方法(即拼接方法)訓(xùn)練的語言模型在不同任務(wù)上的表現(xiàn)對比,包括:自然語言處理和編程語言任務(wù),如閱讀理解 (Reading Comprehension)、自然語言推理 (Natural Language Inference)、上下文跟隨 (Context Following)、文本摘要 (Summarization)、世界知識 (Commonsense and Closed-book QA) 和程序合成 (Program Synthesis),總計(jì)22個(gè)子任務(wù)。
實(shí)驗(yàn)涉及的模型大小從70億到130億參數(shù)不等,序列長度從2千到8千令牌,數(shù)據(jù)集涵蓋自然語言和編程語言。這些模型被訓(xùn)練在大規(guī)模的數(shù)據(jù)集上,如Falcon RefinedWeb和The Stack,并使用LLaMA架構(gòu)進(jìn)行實(shí)驗(yàn)。
實(shí)驗(yàn)結(jié)果表明,使用最佳適配打包在在一系列任務(wù)中提升了模型性能,尤其是在閱讀理解 (+4.7%)、自然語言推理 (+9.3%)、上下文跟隨 (+16.8%) 和程序合成 (+15.0%) 等任務(wù)中表現(xiàn)顯著(由于不同任務(wù)的度量標(biāo)準(zhǔn)的規(guī)模各異,作者默認(rèn)使用相對改進(jìn)來描述結(jié)果。)
經(jīng)過統(tǒng)計(jì)檢驗(yàn),研究者發(fā)現(xiàn)所有結(jié)果要么統(tǒng)計(jì)顯著地優(yōu)于基線(標(biāo)記為s),要么與基線持平(標(biāo)記為n),且在所有評測的任務(wù)中,使用最佳適配打包均未觀察到性能顯著下降。
這一一致性和單調(diào)性的提升突顯了最佳適配打包不僅能提升模型的整體表現(xiàn),還能保證在不同任務(wù)和條件下的穩(wěn)定性。詳細(xì)的結(jié)果和討論請參考正文。
作者們重點(diǎn)研究了最佳適配打包對幻覺的影響。
在摘要生成中,使用QAFactEval度量發(fā)現(xiàn)采用最佳適配打包的模型在生成幻覺方面有顯著降低。
更為顯著的是,在程序合成任務(wù)中,使用最佳適配打包訓(xùn)練的模型生成代碼時(shí),“未定義名稱”(Undefined Name)的錯(cuò)誤減少了高達(dá)58.3%,這表明模型對程序結(jié)構(gòu)和邏輯的理解更為完整,從而有效減少了幻覺現(xiàn)象。
作者們還揭示了模型在處理不同類型知識時(shí)的表現(xiàn)差異。
如前所述,訓(xùn)練過程中的截?cái)嗫赡苡绊懶畔⒌耐暾裕瑥亩恋K知識的獲取。但大多數(shù)標(biāo)準(zhǔn)評估集中的問題側(cè)重于常見知識 (common knowledge),這類知識在人類語言中頻繁出現(xiàn)。因此即使部分知識因截?cái)喽鴣G失,模型仍有很好的機(jī)會從文檔片段中學(xué)習(xí)到這些信息。
相比之下,不常見的尾部知識(tail knowledge)更容易受到截?cái)嗟挠绊懀驗(yàn)檫@類信息在訓(xùn)練數(shù)據(jù)中出現(xiàn)的頻率本身就低,模型難以從其他來源補(bǔ)充丟失的知識。
通過對ARC-C和ARC-E兩個(gè)測試集的結(jié)果分析,研究者發(fā)現(xiàn),相較于含有更多常見知識的ARC-E,使用最佳適配打包會使模型在含有更多尾部知識的ARC-C中有更顯著的性能提升。
通過計(jì)算每對問題-答案組合在 Kandpal et al. (2023) 預(yù)處理的Wikipedia實(shí)體映射中的共現(xiàn)次數(shù),這一發(fā)現(xiàn)得到了進(jìn)一步驗(yàn)證。統(tǒng)計(jì)結(jié)果顯示,挑戰(zhàn)集(ARC-C)包含了更多罕見共現(xiàn)的對,這驗(yàn)證最佳適配打包能有效支持尾部知識學(xué)習(xí)的假設(shè),也為為何傳統(tǒng)的大型語言模型在學(xué)習(xí)長尾知識時(shí)會遇到困難提供了一種解釋。
總結(jié)
本文提出了大型語言模型訓(xùn)練中普遍存在的文檔截?cái)鄦栴}。
這種截?cái)嘈?yīng)影響了模型學(xué)習(xí)到邏輯連貫性和事實(shí)一致性,并增加了生成過程中的幻覺現(xiàn)象。作者們提出了最佳適配打包(Best-fit Packing),通過優(yōu)化數(shù)據(jù)整理過程,最大限度地保留了每個(gè)文檔的完整性。這一方法不僅適用于處理數(shù)十億文檔的大規(guī)模數(shù)據(jù)集,而且在數(shù)據(jù)緊湊性方面與傳統(tǒng)方法持平。
實(shí)驗(yàn)結(jié)果顯示,該方法在減少不必要的截?cái)喾矫鏄O為有效,能夠顯著提升模型在各種文本和代碼任務(wù)中的表現(xiàn),同時(shí)有效減少封閉域的語言生成幻覺。盡管本文的實(shí)驗(yàn)主要集中在預(yù)訓(xùn)練階段,最佳適配打包也可廣泛應(yīng)用于其他如微調(diào)階段。這項(xiàng)工作為開發(fā)更高效、更可靠的語言模型做出了貢獻(xiàn),推動了語言模型訓(xùn)練技術(shù)的發(fā)展。
本文轉(zhuǎn)自 機(jī)器之心 ,作者:機(jī)器之心
