Zubnet AI學習Wiki › 上下文長度擴展
基礎設施

上下文長度擴展

YaRN、NTK 縮放、RoPE 縮放
使語言模型能夠處理比訓練中見過的序列更長序列的技術。在 4K token 上訓練的模型可以透過修改其位置編碼(通常是 RoPE)並結合對較長序列的短期微調,擴展到 32K 或 128K。這避免了從頭在長序列上訓練的巨大成本。

為什麼重要

上下文長度擴展是模型在短短兩年內從 4K 到 128K 再到 1M 以上上下文窗口的原因。從頭在百萬 token 序列上訓練模型的成本將會極其昂貴。擴展技術透過調整在較短序列上訓練的模型,使長上下文模型變得實用,只需要原始訓練計算量的一小部分。

深度解析

核心挑戰:RoPE(旋轉位置嵌入)使用旋轉角度來編碼位置。在超過訓練長度的位置上,這些角度變成模型從未見過的外推,導致注意力模式崩潰。擴展技術修改位置映射到旋轉角度的方式,使得較長的序列產生在模型訓練範圍內的角度。

NTK 感知縮放

NTK 感知插值(神經正切核)以非均勻方式調整 RoPE 頻率:高頻分量(對局部模式重要)被保留,而低頻分量(依賴位置的)被插值。這保留了模型處理局部模式(詞序、語法)的能力,同時擴展了其全域位置編碼的範圍。這是一個單行程式碼修改,卻大幅改善了長度外推。

YaRN

YaRN(Yet another RoPE extensioN)結合了 NTK 感知插值、注意力溫度校正和少量的擴展長度資料微調(通常幾百步)。這產生了能夠處理其原始上下文長度 4–8 倍且品質退化最小的模型。大多數開源的長上下文模型(如長上下文 Llama 或 Mistral 變體)使用 YaRN 或類似技術。微調步驟至關重要——單獨的縮放有一定效果,但在目標長度上的微調顯著提高了品質。

相關概念

← 所有術語
← 上下文視窗 世界模型 →