Transformerのアテンション(注意機構)とは何ですか?
アテンションは、Transformerの中で、各トークンが前のどのトークンが自分にとって大事かを決める部分です。前のトークンすべてに点数をつけ、合計100%になる重みに変えて、その情報を重みに合わせてまぜて取りこみます。こうして、主語が省かれた文でも「疲れていた」のが「ネコ」だとわかり、「はし」が川にかかる橋だとわかるのです。
▶ やってみようなぜ大切なのか
言葉は1つだけではあいまいなことがよくあります。だれが「疲れていた」のか、「はし」はどれか、何が「大きすぎ」なのか。アテンションは、どの言葉にも前の言葉から意味を借りさせて、それを見つけます。
6分後にできるようになること
- アテンションで、各言葉は前をふり返り、大事な言葉から意味を借ります。
- 重みはいつも合計100%なので、ある言葉に集中すれば、ほかへの注目は減ります。
- 1語変えるとアテンションが動きます。だから文脈によって、モデルの理解が変わるのです。
練習する内容
アテンションヘッドになろう
前の言葉をタップして、アテンションを注ぎましょう。10しずく全部使ったら、学習ずみのヘッドとくらべます。重みは説明のための例です。
そのネコは座った。疲れ
疲れていたのはだれ?
学習ずみヘッド: ネコ 64% · 座った。 25% · は 7%
読み取り: 疲れていた = ネコ 日本語ではよく主語が省かれるので、「疲れ」は自分がだれのことかを探さなければなりません。学習ずみのヘッドは、座ることができる唯一の候補「ネコ」に、いちばん重みを置きます。
川にかかった古いはし
「はし」は橋?箸?端?
学習ずみヘッド: 川 60% · かかった 26% · 古い 10%
読み取り: はし = 川にかかる橋 「はし」だけなら、食事の箸かもしれません。「川」にたより、「かかった」にも少し助けてもらうと、意味が川をわたる橋に決まります。
花びんが箱に入らない。だって大きすぎ
大きすぎるのは何?
学習ずみヘッド: 花びん 56% · 入ら 14% · 箱 13%
読み取り: 大きすぎ = 花びん 大きすぎるものは中に入れられません。「大きすぎ」の意味をつかむため、ヘッドは入れようとしているもの、花びんをふり返ります。
花びんが箱に入らない。だって小さすぎ
では、小さすぎるのは何?
学習ずみヘッド: 箱 54% · 入ら 14% · 花びん 13%
読み取り: 小さすぎ = 箱 1語で意味が逆になり、重みもいっしょに逆になりました。アテンションは文章ごとに新しく計算されます。決まった早見表ではありません。
アテンションヘッド1つの中
カードをタップしましょう。どのトークンも、3つの小さな数字のリストを持っています。
- 🔦 クエリ:何を探している?
- 探している側のトークンがクエリを出します。たとえば「わたしは『疲れ』。疲れることができる人や動物を探しています」。
- 🏷️ キー:何を差し出せる?
- 前のトークンはそれぞれ、自分が何かを示すラベル、キーをかかげます。キーがクエリによく合うほど、点数が高くなります。
- 📦 バリュー:何を渡す?
- 点数は合計100%の重みになります。クエリは前のトークンのバリューを重みに合わせてまぜて取りこみます。ほとんどが「ネコ」で、ほかは少し。
- 🧠 なぜヘッドがたくさん?
- 各層では、たくさんのヘッドが並んで動きます。あるヘッドは省かれた主語を探し、別のヘッドはすぐ前の言葉を追い、また別のヘッドはかっこの組を合わせます。
ヘッドは何を探せる?
研究者は、学習ずみのモデルの中をのぞいています。アテンションヘッドが見つけられそうなパターンはどれ?当てはまるものをすべて選びましょう。
- 「彼女」のような代名詞が指す名詞
- いまの言葉のすぐ前の言葉
- 閉じかっこ「」」に対応する開きかっこ
- 動詞の主語
- 返事のあとのほうで書かれる言葉
- その文が現実の世界で本当かどうか
覚えておこう
どのトークンも、アテンションの100%を前のトークンに分けて注ぎ、その意味をまぜて取りこみます。文脈が変われば、まぜ方も変わります。
各言葉は、アテンションの100%を前の言葉に分けて注ぎ、その意味をまぜて取りこみます。
押さえておきたい事実
- いまの大規模言語モデルを支える設計、Transformerは、2017年の論文「Attention Is All You Need」で発表されました。 · 出典: Vaswani et al., Google, 2017
- 最初のTransformerは、各層で8つのアテンションヘッドを並べて動かしていました。 · 出典: Vaswani et al., Attention Is All You Need, 2017
- GPT-3は96層あり、各層に96のアテンションヘッドがあります。 · 出典: Brown et al., Language Models are Few-Shot Learners, OpenAI, 2020
- 研究者が学習ずみの言語モデルを調べると、文法を教わっていないのに、代名詞とそれが指す名詞、動詞とその目的語を結びつけるヘッドが見つかりました。 · 出典: Clark et al., What Does BERT Look At?, 2019
更新日:
よくある質問
セルフアテンションとは、かんたんに言うと何ですか?
文章の中のどの言葉も、同じ文章のほかの言葉を見て、それぞれが自分にとってどれくらい大事かを決めるしくみです。そして、その意味を重みに合わせてまぜて取りこみます。
クエリ、キー、バリューとは何ですか?
各トークンが持つ3つの小さな数字のリストです。クエリは何を探しているか、キーは何を差し出せるか、バリューは選ばれたときに何を渡すかを表します。
マルチヘッドアテンションとは何ですか?
同じ層で、いくつものアテンションヘッドを並べて動かすことです。ヘッドごとにちがう種類の関係を探すよう学び、その結果を組み合わせます。
アテンションは、これから書く言葉を見られますか?
左から右へ文章を書くモデルでは見られません。各トークンが注目できるのは自分と前のトークンだけです。あとのトークンはまだ書かれていないからです。
関連用語
