Transformer言語モデルを内部挙動から理解 - Shinichi0713/LLM-fundamental-study GitHub Wiki

イントロ

Transformerモデルについて考える

コンテンツ

周りの情報を、まとめて、注意機構に混ぜましょう image

image

アテンション重み=モデルのごく一部のみに注目した分析が可能となる 表現同士を混ぜ合わせて単語表現を更新する。

ある単語が、どの単語に注目したかを確認することが出来ている。 image

一部の注意機構のアテンションが特定の単語の関係性に注目が集まっている。 →モデルは中の言語構造を注意しているのではないか。

image

どのトークンもCLSにかなり大きな注意が向く。 全体の90%以上の重みが文頭トークンに集中している。→違和感を感じる。

image

分析の拡張

処理をひとまとまりに式変形してみた。

image

ノルムは、どれほど情報を混ぜたかを図ることが出来る。 一番出来上がりに大きな影響を持つベクトルは何か?

アテンションのみを見ていると、アテンション重みが偏っている。 しかしノルムを見ると、変な箇所への注目がほとんどないことが分かった。 実態は、きちんと言語に注目が掛かっていた。

image

特殊tokenから情報はほとんどとってきていない。→no-operation 注意機構が欲しい情報がない時に、特殊tokenにアテンションをかけている。 原因は、ソフトマックスで書くヵ所にトータル重み1とするような働きを持っている。

image

分母に+1するだけで、合計1に割り振る制約がなくなる→expが非常に小さい時に、全体に0の重みを割当てることが出来るようになる。

image

分析スコープを層全体まで拡大

FFNはパラメータに知識を記憶して、単語表現に意味を追加している。 image W'は後ろから注目することが出来る→FFNも混ぜ合わせに寄与 image

FFNは中に存在している。 最終的にベクトル和という形に表現することになる。 →ノルムにより、どこからどこまで混ぜ合わせが起きているかを計測する image

特に混ぜ合わせが増幅したペアを確認すると、大方7カテゴリの特徴的なカテゴリが出来た。 レイヤごとに挙動が異なる。 FR/ARはランダムにとってきた。 FFNは特徴的な合成をしていそう。→サブワードのような表層的な言葉のつながりをみてる。後半になると、意味的に関係を持つペアにアテンションが掛かり易くなる。 image

FFNは知識を記憶し、表現に追加する機構ではなく、関係の深いペアの合成を強める機構と解釈することも出来るのではないか?