すべての単語を互いに突き合わせずに、モデルが全体を読み取る仕組み。
SRC·32
Source
あらゆる単語を互いに突き合わせる。そのほとんどは無駄になる。
アテンションの肝は、どの単語も他のすべての単語を見られること。美しい——そして過酷だ。コストは長さの二乗で増える。テキストを倍にすれば作業は四倍。町を一軒ずつ配線するように:あらゆる組に専用の線を引き、空は交差するケーブルで埋まる——その大半は一度も使われない。格子はほとんど空っぽだ。なぜその全部に払うのか?
あの巨大な格子の大半は、何も担っていない。
単語のアテンションが実際にどこへ向かうかを見よう:近くの数語と、遠くのいくつかの拠り所だけ。行の残りはほぼゼロだ。芝生を横切る踏み跡のように:渡り方は無数にあるのに、人々が踏み固めるのはわずか数本——隅は手つかずのまま。n²通りの結びつきのうち、本当の重みは細い帯に収まる——しかもその帯k⁄nは、テキストが伸びるほど痩せていく。では、どの組なら安全に飛ばせるのか?
最初の逃げ道:隣だけを見ればいい。
いちばん単純な切り詰め:各単語が近くの単語の窓だけを見るようにする——直近のw語であって、n語すべてではない。コストは二乗から直線へ落ちる。スタジアムのウェーブのように:一人ひとりは両隣の二人しか見ていないのに、波はアリーナ全体を駆け抜ける。層を何段か重ねれば届く範囲は広がり——L段の後には、ひとつの単語の視野はおよそL·wにまで伸びる。
それでも、遠く離れた単語どうしは出会う必要がある。
隣だけにすると、長い糸はすべて断ち切られてしまう。手当て:少数のグローバルな拠り所を残す——全員を見て、全員から見られるトークンだ。すると遠い二語も、その拠り所を介して二回の短い跳躍でつながる。ハブ空港のように:小さな町どうしは互いに直行便を飛ばさない——いくつかのハブを経由させれば、どこからでもどこへでも届く。格子はほぼ空のまま、それでも全体は会話を続ける。
より大胆な逃げ道:そもそも格子を作らない。
疎なアテンションは、それでも薄い格子を描く。線形アテンションは、そもそも描くことを拒む。softmaxの指数を素朴な特徴写像に置き換えると、掛け算の順序が自由になる:まずクエリ×キーを作る代わりに、すべてのキーと値を一つの小さな累積サマリーに畳み込み、各クエリにそれを読ませる。川の合流のように:どの町もすべての源泉へ引くのではなく、すべての源泉が一本の川を養い、各町はそこから汲むだけ。二乗が直線になる。
ただし、正直に言えば落とし穴がある。
どれも無料ではない。疎なアテンションは、切り捨てた組は重要でなかったと賭ける;線形アテンションは、softmaxの鋭いスポットライトを柔らかなぼかしに替える。どちらも完全版とは少しだけ違う答えを返す——一致ではなく近似だ。群れをひと目で数えるように:視線をさっと走らせれば素早くおおよその数は出る——だがそれは見積もりであって、一頭ずつの勘定ではない。指数の鋭い山は、小さく固定された写像にぴったりは収まらない;一方で厳密な高速化は、運ぶメモリを減らすだけで答えを決して変えない。
見返り:長さはもう壁ではなくなる。
勘定してみよう。完全版のコストは二乗で増えていた;いまは直線で増える。テキストを倍にすれば作業も倍——四倍にはならない。道沿いの街灯のように:一マイル延ばせば、街灯が数本増えるだけ——コストは一定の歩幅で上がるから、道は地平線まで延ばせる。その直線こそが、とても長い文脈——本まるごと、何時間もの会話——をついに手の届くものにする。
🌱 心は何を安全に無視できて——それでも理解できるのか?
あなたはこの文のどの単語も、互いに突き合わせてなどいない。大事な数語に寄りかかり、残りはぼかしておく——それでも全体をつかむ。夜明けの窓のように:くっきり見えるのは最も近い尾根だけで、遠い山並みは霞に溶ける——それでも谷ぜんたいを見渡せる。完全な格子など、はじめから要点ではなかったのかもしれない。理解とは、つねにほとんど局所的なものだったのかもしれない——闇を横切る、わずかな長い糸とともに。
タップ →↑スワイプで詳しく↓スワイプで終了クリックまたは → で次へ↑ で詳しくesc で終了