マスキング(アテンションマスク)とは
Masking / Attention Mask / アテンションマスク
Attentionの計算で特定の位置を参照させないようにしたり、学習時にトークンを隠して予測対象にしたりする処理
最終更新:
概要
マスキングは、Transformerでモデルに見せる情報を制御する処理の総称。主に次の3つの意味で使われる。 1つ目はパディングマスク。バッチ内の長さを揃えるために追加したパディングトークンを、Attentionの計算で参照しないようにする。 2つ目は因果マスク(Causal Mask)。GPTのようなデコーダー型モデルで、各トークンが自分より後ろのトークンを参照できないようにする。これにより、学習時に全位置を並列に計算しながら、次トークン予測の条件を守れる。 3つ目はBERTなどのMasked Language Modelingでの入力マスク。入力の一部のトークンを[MASK]などに置き換え、元のトークンを予測させる形で事前学習する。 Attentionのマスクは、参照させたくない位置のスコアに大きな負の値を加えてからSoftmaxを計算し、その位置の重みをほぼ0にする方法で実装されることが多い。