Transformer言語モデルを内部挙動から理解 - Shinichi0713/LLM-fundamental-study GitHub Wiki
イントロ
Transformerモデルについて考える
コンテンツ
周りの情報を、まとめて、注意機構に混ぜましょう
アテンション重み=モデルのごく一部のみに注目した分析が可能となる 表現同士を混ぜ合わせて単語表現を更新する。
ある単語が、どの単語に注目したかを確認することが出来ている。
一部の注意機構のアテンションが特定の単語の関係性に注目が集まっている。 →モデルは中の言語構造を注意しているのではないか。
どのトークンもCLSにかなり大きな注意が向く。 全体の90%以上の重みが文頭トークンに集中している。→違和感を感じる。
分析の拡張
処理をひとまとまりに式変形してみた。
ノルムは、どれほど情報を混ぜたかを図ることが出来る。 一番出来上がりに大きな影響を持つベクトルは何か?
アテンションのみを見ていると、アテンション重みが偏っている。 しかしノルムを見ると、変な箇所への注目がほとんどないことが分かった。 実態は、きちんと言語に注目が掛かっていた。
特殊tokenから情報はほとんどとってきていない。→no-operation 注意機構が欲しい情報がない時に、特殊tokenにアテンションをかけている。 原因は、ソフトマックスで書くヵ所にトータル重み1とするような働きを持っている。
分母に+1するだけで、合計1に割り振る制約がなくなる→expが非常に小さい時に、全体に0の重みを割当てることが出来るようになる。
分析スコープを層全体まで拡大
FFNはパラメータに知識を記憶して、単語表現に意味を追加している。
W'は後ろから注目することが出来る→FFNも混ぜ合わせに寄与
FFNは中に存在している。
最終的にベクトル和という形に表現することになる。
→ノルムにより、どこからどこまで混ぜ合わせが起きているかを計測する
特に混ぜ合わせが増幅したペアを確認すると、大方7カテゴリの特徴的なカテゴリが出来た。
レイヤごとに挙動が異なる。
FR/ARはランダムにとってきた。
FFNは特徴的な合成をしていそう。→サブワードのような表層的な言葉のつながりをみてる。後半になると、意味的に関係を持つペアにアテンションが掛かり易くなる。
FFNは知識を記憶し、表現に追加する機構ではなく、関係の深いペアの合成を強める機構と解釈することも出来るのではないか?