機器之心專欄
機器之心編輯部
在自然語言處理(Natural Language Processing,NLP)領域,Transformer 模型因其在序列建模中的卓越性能而受到廣泛關注。然而,Transformer 及在其基礎之上的大語言模型(Large Language Models,LLMs)都不具備有效長度外推(Length Extrapolation)的能力。這意味著,受限於其訓練時預設的上下文長度限制,大模型無法有效處理超過該長度限制的序列。
文字續寫和語言延展是人類語言的核心能力之一,與之相對的,長度外推是語言模型智慧進化的重要方向,也是在大模型時代最為高效的將模型的能力遷移到長序列資料的重要方法,對該問題的研究兼具理論價值和應用價值。因此,大量的相關工作持續湧現,在不斷擴展語言模型能力邊界的同時,也呼喚一篇系統性的綜述來對這一領域進行概覽。
基於此,哈爾濱工業大學的研究者們從位置編碼(Position Encoding, PE)的角度出發,全面地總結了 Transformer 模型在長度外推方面的研究進展,系統地回顧了各種旨在增強 Transformer 長度外推能力的方法,主要包括可外推的位置編碼和基於這些位置編碼的拓展方法。
論文連結:https://arxiv.org/abs/2312.17044
可外推的位置編碼
由於 Transformer 自身具有置換不變性(Permutation Invariance),無法直接捕獲每個詞在序列中的位置資訊,因此使用位置編碼將序列中元素順序資訊融入Transformer成為一種常見做法。根據位置編碼表示的是序列中元素的絕對位置資訊還是相對位置資訊,業界將位置編碼分為絕對位置編碼(Absolute Position Encoding,APE)和相對位置編碼(Relative Position Encoding,RPE),其主要區別如下圖所示(左圖表示 APE,右圖表示 RPE)。
考慮到現有研究表明這一分類對模型的外推能力有重要影響,我們根據這一分類來對本節內容進行劃分。
絕對位置編碼
在原始的 Transformer 論文中,位置編碼是通過正弦和餘弦函數生成的,這些函數將位置對映到模型的表示空間中。Transformer 的作者猜想這種正弦位置編碼可以有效外推,但是後來的研究成果否定了這一猜想。儘管如此,作為 Transformer 的第一個 PE,正弦 APE 對之後的 PE 產生了重大影響。
為了增強 Transformer 模型的外推能力,研究人員要麼通過隨機位移將位移不變性融入正弦 APE 中,要麼生成隨位置平滑變化的位置嵌入並期望模型能夠學會推斷這一變化函數。基於這些思想的方法展現出比正弦 APE 更強的外推能力,但仍無法達到 RPE 的水平。原因之一是,APE 將不同的位置對映到不同的位置嵌入,外推意味著模型必須推斷出不曾見過的位置嵌入。然而,這對於模型來說是一項艱鉅的任務。因為在廣泛的預訓練過程中重複出現的位置嵌入數量有限,特別是在 LLM 的情況下,模型極易對這些位置編碼過擬合。
相對位置編碼
由於 APE 在長度外推上的表現難以令人滿意,而 RPE 天然地由於其位移不變性具備更好的外推能力,並且人們普遍認為上下文中單詞的相對順序更重要。近年來,RPE 已成為編碼位置資訊的主要方法。
早期的 RPE 來自於對正弦位置編碼的簡單修改,並常常結合裁剪或分箱策略來避免出現分佈外的位置嵌入,這些策略被認為有利於外推。此外,由於 RPE 解耦了位置和位置表示之間的一對一對應關係,因此將偏差項直接添加到注意力公式中成為將位置資訊集成到 Transformer 中的一種可行甚至更好的方法。這種方法要簡單得多,並且自然地解開了值(value)向量和位置資訊的糾纏。然而,儘管這些偏置方法具有很強的外推性,但它們無法表示 RoPE(Rotary Position Embedding,旋轉位置編碼)中那樣複雜的距離函數。因此,儘管 RoPE 的外推性較差,但由於其優異的綜合性能,成為近來 LLMs 最主流的的位置編碼。論文中介紹的全部可外推 PE 如表 1 所示。
大模型時代的外推方法
為了增強 LLMs 的長度外推能力,研究者們基於現有的位置編碼提出了多種方法,主要分為位置插值(Position Interpolation)和隨機化位置編碼(Randomized Position Encoding)兩大類別。
位置插值方法
位置插值方法通過在推理時對位置編碼進行縮放,使得原本超出模型訓練長度的位置編碼在插值後落入已訓練位置區間。由於其卓越的外推性能和極低的開銷,位置插值方法引起了研究界的廣泛興趣。此外,與其他外推方法不同,位置插值方法已經廣泛出現在開源模型中,例如 Code Llama、Qwen-7B 和 Llama2。然而,目前的插值方法僅僅關注 RoPE,如何通過插值使採用其他 PE 的 LLM 具備更好的外推能力仍需探索。
隨機化位置編碼
簡單來說,隨機化 PE 只是通過在訓練期間引入隨機位置來將預訓練的上下文窗口與較長的推理長度解耦,從而提高了較長上下文窗口中所有位置的曝光度。值得注意的是,隨機化 PE 的思想與位置插值方法有很大不同,前者旨在使模型在訓練過程中觀察到所有可能的位置,而後者試圖在推理過程中對位置進行插值,使它們落入既定的位置範圍內。出於同樣的原因,位置插值方法大多是即插即用的,而隨機化 PE 通常需要進一步微調,這使得位置插值更具吸引力。然而,這兩類方法並不互斥,因此可以結合它們來進一步增強模型的外推能力。
挑戰與未來方向
評測與基準資料集:在早期研究中,對 Transformer 外推能力的評估來自各下游任務的性能評價指標,如機器翻譯的 BLEU;隨著 T5、GPT2 等語言模型逐漸統一自然語言處理任務,語言建模所使用的困惑度成為外推的評價指標。然而,最新的研究已經表明困惑度無法揭示下游任務的性能表現,因而亟需專用的基準資料集與評測指標來推動長度外推領域的進一步發展。
理論解釋:目前的長度外推相關工作大都是實證性的,儘管有一些解釋模型成功外推的初步嘗試,但堅實的理論基礎仍未建立,究竟有哪些因素影響且如何影響長度外推性能仍然是一個懸而未決的問題。
其他方法:正如本文所述,現有的長度外推工作大多集中在位置編碼視角下,但不難理解,長度外推需要系統性設計。位置編碼是其中一個關鍵的組成部分,但絕非唯一的組成部分,更廣闊的視野將進一步為這一問題帶來激勵。