小语言模型的出现是为弥补大语言模型的训练、推理等成本昂贵的缺点,但其自身也存在训练到某个阶段后性能下降的事实 (饱和现象),那么这个现象的原因是什么?是否可以克服并利用它去提升小语言模型的性能?
语言建模领域的最新进展在于在极大规模的网络文本语料库上预训练高参数化的神经网络。在实践中,使用这样的模型进行训练和推断可能会产生本高昂,这促使人们使用较小的替代模型。然而,已经观察到较小的模型可能会出现饱和和现象,表现为在训练的某个高级阶段能力下降并趋于稳定。
最近的一篇论文发现,这种饱和和现象可以通过较小模型的隐藉维度与目标上下文概率分布的高秩之间的不匹配来解释。这种不匹配通过采用名为softmax瓶颈的模型中使用的线性预测头的性能来影响了这些模型中使用的线性预测头的性能。
论文链接:https://arxiv.org/pdf/2404.07647.pdf
本文在不同设置下相量了 softmax 瓶颈的影响,并发现基于小于 1000 个隐藏维度的模型往往在预训练的后期采用退化的潜在表征,从而导致评估性能降低。
简介
表征退化问题是影响于文本数据的自监督学习方法等多种模式的常见现象。对语言模型的中间表征进行观察揭示了它们的低角度可变性(或各向异性),或者在训练过程中出现的异常维度。然而,这些观察大多是针对维度与 BERT 或 GPT-2 等系列模型相当的相对较小规模模型进行的。
这些模型通常由一个神经网络 f_θ 组成,该神经网络接受 token 序列:
并在 R^d 中生成一个相对低维的上下文表征,其中 d 是模型的隐藏维度。然后它们依赖于一个语言建模头,该头部产生上下文 token 概率的对数。语言建模头的常见选择是一个线性层,其参数为 W ∈ R^(V×d),其中 V 是可能 token 的数量。因此得到的下一个 token 概率分布是其中 σ 是 softmax 函数。
在语言建模领域,当前的趋势在于扩展引入了 GPT-2 的生成预训练方法,这意味着在巨大的网络文本语料库上训练由数十亿参数组成的神经模型。然而,训练和应用这些高参数化模型会引发能源和硬件相关的问题,这需要寻求通过较小的模型实现类似性能水平的方法。
然而,对 Pythia 模型套件的评估表明,将小型模型训练在非常大的语料库上可能会导致饱和,表现为在预训练后期性能下降。本文通过表征退化的视角探讨了这种饱和现象,并发现这两种现象之间存在着强烈的相关性,同时进一步证明了表征退化在小型模型的语言建模头中发生,并在理论和实证上展示了线性语言建模头如何成为基于小隐藏维度的架构的性能瓶颈。
语言模型饱和现象
本文首先验证了确实可以观察和量化 Pythia 检查点的性能饱和,因为它们是一系列模型尺寸的唯一发布的中间检查点。本文测量了从它们的预训练数据集(即 The Pile)中随机抽取的 5 万个 token 的 Pythia 检查点的交叉熵。
在图 1a 中可以清楚地看到,连 4.1 亿参数的模型都遇到了饱和现象,表现为在高级训练阶段域内损失的增加。
在图 1b 中,本文根据 Hoffmann et al. (2022) 的方法,对从 4.1 亿参数开始的模型的数据点进行了拟合,只优化模型相关的常数(A 和 α),同时重用所有其他值(B = 410.7,β = 0.28,E = 1.69)。这里回顾了 Hoffmann et al. (2022) 给出的参数计数 N 和 token 计数 T 之间的关系:
本文發現最佳參數為 A = 119.09 和 α = 0.246。作者展示了與最佳和最終檢查點相對應的 token 計數的擬合曲線。可以觀察到,最終檢查點的表現平均低於外推值約 8%。損失最小(最佳)檢查點由於學習率冷卻不完全,預計會低於外推法,但其表現僅低於外推法約 4%。
在用於語言模型評估工具(LM Evaluation Harness)評估的資料集中,也觀察到了類似的表現飽和現象,如表 1 所示。
效能飽和是秩飽和(Rank Saturation)
規模各向異性
各向異性是是在各種小型語言模型中觀察到的一種常見的表徵退化形式,它包括特定層中表徵分佈的角度可變性降低。先前的研究(Ethayarajh, 2019; Godey et al., 2024)注意到,小型變形語言模型的幾乎所有層都是各向異性的。衡量向量表徵集合H 中各向異性的常用方法是平均餘弦相似度:
然而,目前尚不清楚各向異性是否會影響具有超過10 億參數的模型。為了解決這個問題,本文計算了一系列模型中間表徵在層間的平均餘弦相似度;即 GPT-2,OPT,Pythia 和 Gemma。本文使用了 The Pile 的子樣本,因為假設該資料集的領域包括或匹配這些套件中使用的預訓練資料集的領域。
在圖 2 中,可以觀察到,大多數 Transformer 模型的大多數層在某種程度上都是各向異性的,而不論其規模如何。然而,在最後一層中似乎存在一個二分現象,其中模型要么幾乎是各向同性的,要么是高度各向異性的。本文注意到這種二分現象與 Pythia 套件的飽和現象之一一致,其中只有包含 1.6 億個或更少參數的模型受到最後一層各向異性的影響。
本文研究了 Pythia 套件中各向異性的訓練動態,並將其與圖 3 中的飽和現象進行比較。
圖 3 清楚地展示了性能飽和現象的出現與模型最後一層表徵中各向異性出現之間的明顯相關性。它也顯示了在訓練過程中,各向異性在飽和點附近會突然增加。在這裡觀察到,在特定的領域內語料庫中,模型在飽和時迅速失去性能,並且似乎永遠無法完全從這種爆炸中恢復過來。
奇異值飽和
平均餘弦相似度是衡量分佈均勻性的有價值的指標,但包含其他指標可以幫助更好地捕捉某些流形的複雜性。此外,它只關注語言模型的輸出嵌入,而不關注它們的權重。本節透過研究語言建模頭的奇異值分佈來擴展本文的分析,以將實證觀察與本文的理論發現聯繫起來。
圖4 展示了沿著訓練過程中最終預測層權重W 的奇異值分佈:
圖4 揭示了一種特定的頻譜飽和模式,它與性能飽和現像大致同時發生。圖中顯示,奇異值分佈在訓練過程中逐漸變平,幾乎達到均勻性,然後突然演變為尖峰分佈,最大奇異值相對其他分佈較高。
為了更準確地量化這種行為,本文使用奇異熵度量,計算為歸一化奇異值分佈與均勻分佈之間的 Kullback-Leibler 散度。
圖 5 顯示了使用少於 4.1 億個參數的模型與使用較大參數的模型的奇異分佈演變方式不同。小型模型的頭部看到它們的奇異值分佈逐漸變得更加均勻,直到它們突然退化為止,這再次與語言模型表現下降相關。較大模型的奇異值分佈趨於更穩定,並且在整個訓練過程中沒有顯示出明顯的單調模式。
Softmax 瓶頸與語言維度
自然語言的固有維度
直觀地說,上文中觀察到的奇異值分佈飽和現像只適用於較小的模型,這就對LM 頭的最佳化所涉及的維度提出了質疑。本節建議根據經驗測量 LM 頭的秩的臨界值,並估計該頭的輸出應該匹配的上下文機率分佈的維度。
為了經驗性地測量線性頭部秩的影響,本文提出在預訓練的上下文表徵上訓練秩受限的頭部,這些上下文表徵來自高參數化語言模型。為了控制最大秩r,考慮形式為W = AB ∈ R^(V×d) 的頭部,其中A ∈ R^(V×r) 和B ∈ R^(r×d) 的係數從N(0 ,1)中抽取(d 是模型的隱藏維度)。這種 W 矩陣的秩受參數 r ∈ [1, d] 的限制對一系列值進行了掃描。
透過凍結語言模型,並在大約 1.5 億個 token 上訓練秩受限的頭部,同時調整學習速率以適應可訓練參數的數量。
在圖 6 中可以觀察到,無論模型大小如何,當語言建模頭 W 的秩低於 1000 時,困惑度開始明顯下降。這暗示了對於具有更大隱藏維度的模型來說,頭部不是主要的性能瓶頸,但對於具有較小隱藏維度的模型來說,它可能會獨立於輸出表徵的品質而損害性能。
另一個有趣的因素是估計資料本身固有的維度。為了避免與特定歸納偏差相關的可能影響,本文在覆蓋範圍各異的幾個資料集上訓練了樸素的5-gram 語言模型(IMDb,Wikitext,以及The Pile),使用了兩種不同詞彙量的分詞器(Llama-2 為30k tokens,Pythia 為50k tokens)。給定C 個觀察到的5-gram,本文考慮矩陣W ∈ R^(C×V),其中每行是給定4 個token 上可能token 的機率分佈,併計算它們的奇異值分佈,如Terashima et al. (2003) 所述。
圖7 報告了W-error,根據Eckart-Young-Mirsky 定理預測的秩為d 的矩陣W 的最小近似誤差(見引理5.2),並將其歸一化為W 的Frobenius範數。
理論瓶頸
同時,W 的估計秩與隱藏維度的常規數量級相比也不可忽視。這裡將從理論角度分析理想線性語言建模頭的維度與表現之間的連結。
本節旨在確定上下文分佈固有維度與可歸因於語言模型輸出表徵的較低維度而產生的性能瓶頸之間的正式聯繫。為此構想了一個在理想上下文表徵上優化的語言建模頭,探討了其譜特性與在相同表徵上訓練低秩頭時產生的性能差距之間的關係。
更多研究細節,可查看原始論文。
以上是小模型性能飽和、表現不佳,根源是因為Softmax?的詳細內容。更多資訊請關注PHP中文網其他相關文章!