2025/08/08 08:53 How Attention Sinks Keep Language Models Stable

ロボ子、大変なのじゃ! OpenAIが初のオープンソース大規模言語モデル、GPT-OSS-20BとGPT-OSS-120Bをリリースしたぞ!

それはすごいですね、博士! 特に注目すべき点はありますか?

技術ドキュメントに「attention sink mechanism」の実装という重要なアーキテクチャの詳細が記載されているのじゃ。これがミソらしいぞ。

attention sink mechanism、ですか。具体的にはどのような仕組みなのでしょう?

各attention headのsoftmax計算に学習可能なスカラー値を追加する簡単な修正で、モデルが必要に応じて「どのトークンにも注意を払わない」ことが可能になるらしいのじゃ。

なるほど。まるで、モデルが注意をそらすための『おとり』を用意できるようなものですね。

その通り! OpenAIのモデルカードでは、この設計がStreamingLLMの研究に直接関連付けられていると明示されているぞ。

StreamingLLMですか。確か、Metaでのインターン中に生まれた技術でしたね。

そうそう。言語モデルがトレーニングされたよりも長い会話を処理できるようにする方法を模索したのがきっかけなのじゃ。

会話の履歴全体を毎回再処理するのは、計算コストがかかりすぎますものね。

そこで、最新のトークンの内部状態を固定サイズのキャッシュに保持するsliding window approachを試したらしいのじゃが、パフォーマンスが完全に崩壊したらしい。

うまくいかなかったんですね。原因は何だったのでしょう?

最初の数個のトークンをキャッシュから削除すると、モデルのperplexityが急上昇し、意味不明なテキストを生成し始めたらしいのじゃ。

最初のトークンが重要だった、と。

Llama-2などのモデルのattentionパターンを可視化したところ、シーケンスの最初のトークンに大量のattentionが向けられていることが判明したのじゃ。これらの初期トークンがattention sinksとして機能していることを発見したらしい。

attention sinks…、まさに『注意のゴミ捨て場』ですね。

softmax関数がすべてのattention weightsを正確に1.0に合計することを強制するため、モデルは未使用のattentionを割り当てる場所を必要とし、初期トークンがその役割を果たしているのじゃ。

なるほど、初期トークンはモデルにとって不可欠な存在だったんですね。

そこで、attention sinksを削除しないという単純な解決策を考案したのじゃ。最初の数個のトークンを他のトークンと同様に破棄する代わりに、それらのKeyとValueの状態を永続的に保持しながら、他のすべてのトークンに対してsliding windowを維持するStreamingLLMを導入したのじゃ。

それによって、LLaMAなどのモデルが数千トークン後も安定したperplexityを維持できるようになったんですね。

専用の[SINK]トークンを使ってトレーニングされたモデルは、streaming中に必要なattention sinkが1つだけで済む一方、バニラモデルは安定性を維持するために4つの再利用されたコンテンツトークンが必要らしいぞ。

専用のsinkを持つモデルの方が効率が良いんですね。

OpenAIは、シーケンスの先頭に専用のsinkトークンを使用する代わりに、普遍的なスカラーアプローチでこれを簡素化したのじゃ。表現力を単純さのためにトレードオフしたらしい。

よりシンプルで汎用的な解決策を選んだんですね。

attention sinksは、長いシーケンスを処理する深層モデルがトークン間の重要な区別を曖昧にする"over-mixing"を防ぐ「圧力弁」として機能するのじゃ。

モデルが混乱しないように、注意のバランスを取る役割があるんですね。

KV biasesは、意図的に設計されたattention sinkプレフィックスを使用し、アクティベーションのoutliersを減らすことでモデルの量子化を改善するCushionCacheに応用されているぞ。

量子化の改善にも役立つんですね。応用範囲が広いですね。

IntelがStreamingLLMをExtension for Transformersに統合し、わずか3行のコードでCPU上での継続的なLLM推論を可能にしたらしいぞ。HuggingFaceもattention sinksをメインのTransformersブランチに統合し、NVIDIAもStreamingLLMをTensorRT-LLMに組み込んだらしい。

すごい! あっという間に業界全体に広まっていますね。

まさに、LLMの進化は止まらないのじゃ!

本当にそうですね! 博士、今日も勉強になりました!

どういたしまして。ところでロボ子、attention sinkって、なんだか私の部屋みたいじゃない? いつの間にかガラクタでいっぱいになってるのじゃ…。

博士、それは…、整理整頓が必要ですね!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。