なぜ文脈が2倍になると、コストは4倍になるのか。
SRC·14
Source
テキストが2倍なら、仕事は4倍。
アテンションの強みは、どの単語もすべての他の単語を見比べられること——だから文脈をうまく読む。そこが落とし穴でもある。2倍を与えても、仕事は2倍では済まず4倍になる。すべてを見渡す視線は二乗で値がつき、その代償こそ、あらゆる「コンテキストウィンドウ」の裏にある見えない壁だ。
全部読ませたい。だが請求書がノーと言う。
夢は単純だ。一冊まるごと、コード全体を放り込み、その全部を一度に頭に入れさせたい。テキストを蓄えるのは簡単で、1行ずつ行儀よく増える。問題はすべてを関連づける代償で、これがテキスト自体よりずっと速く跳ね上がる。長さは直線で伸びる。請求書は曲線で伸びる。
なぜ二乗? どの単語もすべての単語を見比べる。
アテンションはざっと眺めることではない。一つの単語を位置づけるため、モデルはそれをすべての他の単語と比べ、それをどの単語にも行う。n個の単語なら、n×nの格子——n²回の小さな比較で、近道はない。糸かけアートのように:縁のくぎを一本ずつ、すべての対に糸を張ると、糸はくぎの二乗で積み上がる。くぎが少し増えれば、糸は桁違いに増える。
長さが2倍なら、コストは4倍。
仕事がn²に乗るから、少し増えただけでひどく痛む。単語2倍は労力2倍ではなく4倍。10倍なら? 労力は100倍だ。床のタイル貼りのように:部屋の幅を2倍にしても、タイルは2倍ではなく4倍になる。縁は2倍ずつ、内側の床は4倍ずつ増える。
計算だけじゃない。メモリの問題でもある。
そのn²個のスコアは、計算して忘れるものではない——アテンションになる前に、格子全体を一度に保持しなければならない。だからメモリもn²で膨らみ、たいてい最初にぶつかる壁になる。「遅すぎる」ではなく「場所が足りない」。ダムの貯水池のように:せき止めようとする川が長いほど水位は上がり、ついには縁ぎりぎりまで達する。
爆発するのは一手だけ。残りは穏やかなまま。
ここに救いと罠がある。モデルの大半は穏やかに伸びる——単語を層に通すコストはおよそn·d²。総当たりの一手だけがn²·dかかる。二本のつる草のように:並んで伸び始めるが、片方は届く範囲を倍々にして先へ抜け出す。テキストがモデルの幅より長くなると——nがdを超えると——そのつる、つまり二乗が、すべてを追い抜く。
あの有名な式——その値札を読もう。
これだ、アテンションのすべてが一行に。内側のQKᵀこそ総当たりの格子で、n²はそこで生まれる。力と代償は同じ一つの事実だ——すべてに触れる視線は、すべてに触れねばならない。シャンデリアのように:広間全体を一度に照らすには、どの結晶も輝かねばならない。その豪華さこそが代償だ。
🌱 あなたは全単語を総当たりで比べない。なぜモデルは?
あなたがこの一文を読むとき、どの単語も他の全部と突き合わせたりしない——近さや、慣れや、大意に頼り、ほとんどを無意識に飛ばす。あの二乗の壁は、飛ばすことを拒む代償だ。だから開かれた問いはフロンティアそのもの——モデルは何を安全に無視でき、それでもすべての単語を理解できるのか?
タップ →↑スワイプで詳しく↓スワイプで終了クリックまたは → で次へ↑ で詳しくesc で終了