Zubnet AI學習Wiki › Positional Encoding
基礎

Positional Encoding

別名:位置嵌入、RoPE、ALiBi
一種告知 Transformer 模型序列中 token 順序的機制。與按序列處理 token 的 RNN 不同(因此位置是隱式的),Transformer 平行處理所有 token,沒有固有的順序概念。位置編碼注入位置資訊,使模型知道「狗咬人」和「人咬狗」是不同的。

為什麼重要

沒有位置資訊,Transformer 會將句子視為詞袋——詞序消失。位置編碼的選擇也決定了模型處理比訓練時見過的更長序列的能力,這就是為什麼 RoPE 和 ALiBi 等技術對長上下文模型至關重要。

深度解析

原始 Transformer(2017 年)使用不同頻率的固定正弦函數表示每個位置和維度。這些具有良好的理論特性:模型可以學習關注相對位置,因為正弦模式產生一致的偏移。但可學習的位置嵌入(每個位置一個可訓練的向量)很快成為預設,因為效能略好,儘管受限於最大訓練長度。

RoPE:現代標準

旋轉位置嵌入(RoPE,Su 等人,2021 年)透過在注意力機制中旋轉查詢和鍵向量來編碼位置。旋轉的角度取決於位置,因此兩個 token 之間的點積自然編碼了它們的相對距離。RoPE 被 LLaMA、Mistral、Qwen 和大多數現代 LLM 使用。其關鍵優勢:它支持長度外推——模型可以處理比訓練時見過的更長的序列,特別是當與 YaRN 或 NTK 感知縮放等技術結合使用時。

ALiBi 及其他

ALiBi(帶線性偏差的注意力)採用更簡單的方法:不修改嵌入,而是根據 token 之間的距離對注意力分數加上線性懲罰。較遠的 token 被懲罰得更多。這不需要可學習的參數,且能良好地外推到更長的序列。一些架構結合了多種方法或使用相對位置偏差。趨勢是朝向能在訓練長度之外進行泛化的方法,因為上下文視窗持續增長。

相關概念

← 所有術語
← PixVerse Prompt(提示詞) →
ESC