モデルが語の位置をどう符号化するか——札を付けるのではなく、回して。
SRC·30
Source
大事なのは二つの語がどこにあるかではなく、どれだけ離れているか。
よくある手は、各語に住所を足す こと。けれど注意機構が比べるのはいつも二つ の語だけで、ある句は1ページ目でも50ページ目でも同じ意味になる——大事なのは語と語の隔たり だけだ。Rotary position embedding (RoPE)は、各語の視点をその位置のぶんだけ回す。だから二つの語が出会うとき、比較が感じ取るのは距離だけになる。
住所を足せば、比較はそれを引きずってしまう。
( x m + p m ) ⊤ ( x n + p n ) = x m ⊤ x n + x m ⊤ p n + p m ⊤ x n + p m ⊤ p n (x_m + p_m)^{\top}(x_n + p_n) = x_m^{\top}x_n + x_m^{\top}p_n + p_m^{\top}x_n + p_m^{\top}p_n
住所を教え合って距離を測るようなもの。 本当は隔たりだけが欲しいのに、二つの絶対値を口にしてしまう。位置を足すと、どこ が何 に貼りつく。こうした二語を掛けるとスコアは四つに分かれ、位置の項は隔たりではなく絶対的な席番に乗る。モデルはそこから隔たりを掘り出さねばならない。
解決策——場所を足すのではなく、そちらへ回す。
( x 1 ′ x 2 ′ ) = ( cos m θ − sin m θ sin m θ cos m θ ) ( x 1 x 2 ) \begin{pmatrix} x'_1 \\ x'_2 \end{pmatrix} = \begin{pmatrix} \cos m\theta & -\sin m\theta \\ \sin m\theta & \cos m\theta \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
灯台の光のように。 同じ光を、その時々の方位へ振り向ける。RoPEは各語の数値を二つずつ取り、その位置で決まる角度(に一定の率を掛けたぶん)だけ各ペアを回す 。何も付け足さない——語自身のベクトルをただ回すだけだ。位置はラベルであることをやめ、向き になる。
二つの回転が出会い、残るのは差だけ。
R ( m θ ) ⊤ R ( n θ ) = R ( ( n − m ) θ ) ⟹ ⟨ R ( m θ ) q , R ( n θ ) k ⟩ = q ⊤ R ( ( n − m ) θ ) k R(m\theta)^{\top} R(n\theta) = R\big((n-m)\theta\big) \;\Longrightarrow\; \langle R(m\theta)\,q,\; R(n\theta)\,k\rangle = q^{\top} R\big((n-m)\theta\big)\,k
組んで踊る二人のように。 フロアのどこへ回しても、二人の体の間の角度 は変わらない。queryをその位置で回し、keyをその位置で回す——出会うと二つの絶対的な回転は打ち消し合う。残るのは隔たりn − m だけ。スコアは純粋な距離を読む。まさに望んだものだ。
一つの速さでは滲む。だから多くの速さで一度に回す。
θ i = b − 2 ( i − 1 ) / d , i = 1 , … , d / 2 , b = 10000 \theta_i = b^{-2(i-1)/d}, \quad i = 1, \dots, d/2, \quad b = 10000
回転の速さが一つだけだと一周してしまう——十分に離れれば、二つの隔たりは同じに見える。大小そろった鐘の連打のように。 小さな鐘は速く、大きな鐘はゆっくり揺れ、すべて合わさって初めて紛れもない一瞬を鳴らす。RoPEは各ペアに固有の速さを与える——速いペアは近くの語を、遅いペアはページの向こうまでを捉える。
何も足さず、しかも決して薄れない。
q ~ m = R Θ , m q m , k ~ n = R Θ , n k n ( 0 new parameters ) \tilde{q}_m = R_{\Theta,m}\,q_m, \qquad \tilde{k}_n = R_{\Theta,n}\,k_n \qquad (\text{0 new parameters})
回転扉のように。 回ることそのもの が仕組みのすべて——余計な機械はなく、通る者は皆また同じ回転を受ける。RoPEはqueryとkeyにだけ触れ、固定の回転を加え、新たに学習する重みは一つもない 。その小さな二次元の回転をすべてブロック対角の一つの回転にまとめ、層ごとに掛け直す——だから深い層でも距離の感覚は決して洗い流されない。
位置は回転になり——その回転はどこまでも続く。
m ′ = m ⋅ L train L target m' = m \cdot \dfrac{L_{\text{train}}}{L_{\text{target}}}
まとめよう。位置はもう付け足すラベルではなく、掛ける回転 だ——そしてモデルが読むのは語と語の隔たりだけ。長いねじの山のように。 一定のピッチが、棒がどれだけ伸びても噛み合い続ける。学習した長さを超えても、各回転をそっと縮めて収めれば、同じ規則がなお効く。
あらゆる距離を知り、どの場所も知らない。
語は自分の席を決して感じない——感じるのは自分と他の語との角度 だけ。どの語までの隔たりも言えるのに、どれ一つ指してそこ とは言えない。🌱 もし心が距離だけを抱え、定まった場所を一つも持たないなら、その心にどこ は存在するのか——それともどれだけ離れているか だけなのか。
タップ → ↑スワイプで詳しく ↓スワイプで終了 クリックまたは → で次へ ↑ で詳しく esc で終了