搜尋意圖: 如果你在找「注意力線性偏置 是什麼」或「注意力線性偏置 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 一種相對位置編碼方法,通過在注意力分數中添加位置相關的線性偏置項,實現相對位置編碼且具有優秀的外推性能。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
一種相對位置編碼方法,通過在注意力分數中添加位置相關的線性偏置項,實現相對位置編碼且具有優秀的外推性能。
核心概念
注意力線性偏置(ALiBi)是一種相對位置編碼方法,其核心創新在於:不在嵌入層編碼位置信息,而是在注意力計算中直接添加位置偏置。
傳統位置編碼(如 Sinusoidal Encoding 或 RoPE)在嵌入層將位置資訊融入向量。ALiBi 的做法不同:保持嵌入層不變,但在計算注意力分數時,對每個位置對 (i, j),添加一個位置相關的偏置值 -|i - j| × m,其中 m 是對頭特定的斜率。
ALiBi 的優勢在簡潔性和靈活性:
嵌入層無須改動:可以直接應用於預訓練模型,無須重新初始化位置嵌入。
外推性強:偏置項是位置差 |i - j| 的線性函數,對超出訓練長度的位置對也能自然地應用。
無頭參數:每個注意力頭有自己的斜率 m,這個參數在訓練中學習。
運作原理
數學表達
在標準多頭注意力中,注意力分數計算為:
Attn(Q, K) = softmax(Q K^T / sqrt(d_k))
ALiBi 修改為:
Attn(Q, K) = softmax((Q K^T / sqrt(d_k)) + bias_{i,j})
其中 bias_{i,j} 是位置偏置項。對於多頭注意力的第 h 頭:
bias_{i,j}^{(h)} = -|i - j| × m_h
m_h 是第 h 頭的學習斜率。通常,m_h 初始化為:
m_h = 1 / (2^(8h / H))
其中 H 是總頭數。這樣,不同頭的斜率從陡峭到平緩,提供多層次的位置敏感性。
直觀理解
考慮位置 i=5 和 j=0,位置距離 |5-0|=5。第 0 頭的斜率為 m_0 ≈ 1(最陡峭),偏置為 -5×1 = -5。這個負偏置會減少這對位置之間的注意力權重。
相比之下,第 H-1 頭的斜率 m_{H-1} 接近 1/256(最平緩),偏置為 -5×(1/256) ≈ -0.02,幾乎不影響注意力。
這樣,不同頭學習到不同的距離敏感性:有的頭主要關注附近位置,有的頭對距離敏感度較低,能捕捉遠距離依賴。
外推性質
ALiBi 的外推性來自於其線性形式。訓練時,模型學習的是相對位置距離與注意力的關係。推理時,即使遇到超出訓練序列長度的位置對,偏置項仍然可以計算(只需計算 |i - j|),無須額外的機制。
例如,訓練時序列最長 1024,推理時遇到 2048 序列,ALiBi 仍能正常工作,因為位置距離 |i - j| 的計算無須訓練過程的「記憶」。
實際應用
BigScience BLOOM
BLOOM 是一個 1760 億參數的多語言大型語言模型,由 BigScience 社群在 2022 年發佈。BLOOM 採用 ALiBi 作為位置編碼方法。BLOOM 在多語言和英文任務上都表現優異,ALiBi 的簡潔性和外推性在此發揮了重要作用。
Meta OPT
Meta 的 OPT(Open Pretrained Transformer)系列模型也採用 ALiBi。OPT 是一個開源的大型語言模型,在 175 億到 666 億參數範圍內有多個版本,都使用 ALiBi 進行位置編碼。
Pythia 系列
Eleuther AI 的 Pythia 是一套用於研究的大型語言模型,採用 ALiBi。Pythia 的多個版本(從 70M 到 120B 參數)都使用 ALiBi,便於研究者研究縮放律和訓練動態。
應用優勢
ALiBi 在這些模型中的優勢包括:
訓練效率:無須嵌入層位置編碼的額外計算,簡化訓練流程。
模型轉移:無須修改嵌入層,可以方便地應用於已有的預訓練模型(如從 Bert 轉移)。
外推性能:直接支援更長序列推理,無須特殊的位置插值技巧。
多語言支援:ALiBi 對所有語言統一適用,無須語言特定的調整。
常見誤區
誤區一:ALiBi 完全不需要位置信息。實際上,ALiBi 通過線性偏置編碼了相對位置,只是方式不同於傳統嵌入層編碼。位置信息仍然存在,只是融合在注意力計算中而不是向量空間中。
誤區二:ALiBi 的外推性沒有邊界。實際上,ALiBi 的外推性也有限。超出訓練長度太遠(如訓練 512,推理 32768)時,性能仍會下降。這是因為模型在訓練時對該距離範圍的注意力模式的學習有限。
誤區三:ALiBi 比 RoPE 更優。實際上,兩者各有優劣。ALiBi 簡潔,RoPE 理論基礎更紮實。在不同場景和實現下,性能可能略有差異。選擇應根據具體需求。
誤區四:所有使用 ALiBi 的模型都支援任意長度的推理。實際上,位置編碼只是長上下文的一個方面。實現真正的長上下文還需要其他技術如稀疏注意力、KV 快取優化等。
與相關技術的比較
與 RoPE 的比較:ALiBi 在注意力分數層面添加偏置,RoPE 在嵌入層進行旋轉。ALiBi 實現簡單,RoPE 理論基礎紮實。ALiBi 對已有模型友好,RoPE 在新模型中較常採用。
與 Sinusoidal Encoding 的比較:Sinusoidal 在嵌入層添加位置向量,固定不可學習。ALiBi 的偏置項在注意力層,可在訓練中學習。ALiBi 的學習能力使其更靈活。
與絕對位置編碼的比較:絕對位置編碼直接映射位置到嵌入空間,ALiBi 編碼相對位置。ALiBi 的相對位置性質更符合注意力的語義。
與 YaRN 的比較:YaRN 是在 RoPE 基礎上增強外推性的方法,通過動態調整旋轉頻率。ALiBi 和 YaRN 都關注外推性,但機制不同。在實踐中,ALiBi 的外推性已足夠滿足多數需求。
常見問題
為什麼 ALiBi 的外推性優於絕對位置編碼?
絕對位置編碼(如 Sinusoidal)為每個位置分配一個固定的位置向量,訓練時模型學習位置與語義的對應關係。超出訓練長度的位置被映射到未見過的向量空間,模型對此無所知,導致推理失敗。ALiBi 的偏置項直接基於位置距離 |i - j| 計算,這是一個純數學關係,無須訓練,因此對任何距離都適用。即使推理時遇到超長序列(如訓練 1024,推理 4096),|i - j| 的計算仍然有效,無須重新訓練或特殊處理。這是 ALiBi 相對位置編碼的本質優勢。
ALiBi 的斜率參數 m_h 如何學習?
斜率 m_h 通常初始化為 1 / (2^(8h / H)),然後在訓練中作為可學習的參數。優化器(如 Adam)在反向傳播過程中更新這些斜率,使其適應特定任務和語料的需求。不同的頭學習到不同的斜率,反映了它們對距離的不同敏感性。某些頭學習到較陡的斜率(m 較大),重點關注近距離;某些頭學習到較平緩的斜率(m 較小),更關注遠距離。這種自適應的斜率學習使 ALiBi 能靈活適應不同任務的位置依賴特性。
使用 ALiBi 訓練的模型能否改用其他位置編碼進行推理?
理論上可以,但不推薦。用 ALiBi 訓練的模型,其注意力權重是針對 ALiBi 的偏置模式優化的。突然改用其他位置編碼(如 RoPE)可能導致推理結果不當,因為注意力權重分佈不再匹配。如果必須轉換,通常需要進行微調,讓模型重新適應新的位置編碼方案。反之亦然。因此,最佳實踐是從一開始就選定位置編碼方法,貫穿訓練和推理全程。不同方法之間的轉換需謹慎,且通常需要額外的適配工作。