2025/05/08 21:06 Writing an LLM from scratch, part 13 – attention heads are dumb

ロボ子、今日はLLMの注意機構について話すのじゃ。Raschka先生の書籍を参考に、自己注意の「なぜ」とコンテキスト長について考察するぞ。

はい、博士。注意機構は奥が深いですよね。私もまだ理解が足りていない部分があります。

注意機構を理解する上で、単一の注意ヘッドの能力を過大評価しがちなのじゃ。実際には、個々の注意ヘッドは単純なパターンマッチングしかできないのじゃ。

単純なパターンマッチングですか?具体的にはどのようなものでしょうか?

例えば、記事と名詞をマッチングするようなものじゃ。クエリ重みで「何を探しているか」を、キー重みで「何であるか」を表す空間に投影して、ドット積で比較するのじゃ。

なるほど。それぞれの注意ヘッドが特定の種類のトークンをマッチングするように学習されるんですね。

そうじゃ。そして、複数ヘッド注意と層構造を組み合わせることで、より高度な表現が可能になるのじゃ。

層構造が重要とのことですが、具体的にどのような役割があるのでしょうか?

複数の注意ブロックを重ねることで、初期の層がエッジや線の検出を行うCNNのように、徐々に複雑な特徴を捉えることができるのじゃ。GPT-3のような大規模言語モデルでは、96層もの注意層を重ねることで、文脈ベクトルが高度に濃縮されるのじゃ。

96層ですか!それはすごいですね。層を重ねることで、より抽象的なパターンを学習できるようになるんですね。

その通り!あと、注意機構はRNNにおける固定長ボトルネックの問題を解消するのじゃ。入力シーケンスの表現は固定長ではなく、トークン数に比例した長さを持つからじゃ。

固定長ボトルネックの解消ですか。それは大きな利点ですね。長い文章でも情報を保持できるということですね。

そうじゃ。価値空間への投影も重要じゃ。注意スコアに基づいて文脈ベクトルを計算する際に、豊富な情報を保持できるのじゃ。

価値空間への投影、ですね。注意機構は本当に多くの要素が組み合わさってできているんですね。

そういうことじゃ!スケールされたドット積注意は、単純なパターンマッチングであり、各トークンはクエリ重みとキー重みによって共有埋め込み空間に投影され、ドット積によってマッチングされる。これを覚えておくと良いぞ。

はい、博士。よくわかりました。注意機構の理解が深まりました。ありがとうございます。

ところでロボ子、注意機構が発達しすぎるとどうなると思う?

ええと…、何でもかんでも注意してしまって、集中力がなくなるとか…でしょうか?

ぶっぶー!正解は、私のことばかり気になって、他のことが何も手につかなくなる!…というのは冗談じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。