JA EN
体系Transformerの仕組み
·★ 会員·論文·12分で読めます

エンコーダとデコーダ — BERTとGPTの分岐点

同じTransformerから生まれたBERTとGPTを分けたのは、注意の表を隠すマスク1枚だった。双方向と自己回帰の違いを式と動く図で確かめ、なぜ生成側が主流になり、それでもエンコーダが検索と分類の現場で使われ続けるのかを解く。

対象textタスクnlp

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding


同じ設計図から生まれた双子

2017年にTransformerという設計図が公開されてから1年ほどの間に、それをほぼそのまま使った2つのモデルが出ました。BERTGPTです。部品も積み方も似ているのに、使い道もその後の運命もまったく違いました。

違いを生んだのは、たった1つの設計判断です。「各単語は、文中のどこまでを見てよいか」。ここだけが違い、それが片方を「読む機械」に、もう片方を「書く機械」に変えました。

比喩で言えば、BERTは校正者です。原稿を机に全部広げ、にじんで読めない1文字を前後から推理する。ただし白紙から書き起こす仕事はしません。GPTは講談師です。語りながら次の一言を選ぶので、見える範囲は常に「自分より前」だけです。

直感: 見える範囲が「解ける問題」を決める

これは好みの問題ではありません。見える範囲が決まると、学習に使える問題の形が自動的に決まってしまうからです。

GPTのように「自分より前しか見えない」と決めた瞬間、学習課題はタダで手に入ります。どの位置でも「次に来る単語」がそのまま正解ラベルだからです。人間が正解を用意する必要はなく、テキストがあるだけで無限に問題が作れます。これを自己回帰(autoregressive)と呼びます。

一方BERTのように「全部見える」と決めると困ります。次の単語を当てさせようにも、その単語自体が見えている。カンニングし放題では学習になりません。そこでBERTはわざと一部の単語を隠してから当てさせるという不自然な手続きを導入しました。マスク言語モデル(Masked Language Model, MLM)です。原論文では入力トークンの15%を隠します。

双方向の代償は「隠す」余計な工程、自己回帰の代償は「後ろを見られない」制約。どちらもトレードオフの上に立っています。

仕組み: 分岐点は注意の表に引く1本の線

Attention機構を1から理解するで見たとおり、自己注意は「単語iiが単語jjをどれだけ気にするか」を表すN×NN \times Nの点数表を作ります(NNは文中のトークン数)。

sij=qikjdks_{ij} = \frac{q_i \cdot k_j}{\sqrt{d_k}}
(1)

qiq_iは単語iiの「質問」ベクトル、kjk_jは単語jjの「名札」ベクトル、dkd_kはその次元数です。要するにiiの質問とjjの名札がどれくらい似ているかを測り、次元数の平方根でならしたものです。

分岐はこの表の扱いだけです。

sij(j>i)s_{ij} \leftarrow -\infty \quad (j > i)
(2)

GPTはこの1行を足します。つまり「自分より後ろ(j>ij > i)の点数を-\inftyにする」ということで、softmaxを通すとe=0e^{-\infty}=0なので重みがちょうど0になり、未来の単語が混ざりません。表の右上三角を塗りつぶすこの操作が因果マスク(causal mask)です。BERTはこれを足さず表を全面使います。層の構造も残差接続もフィードフォワード層も共通なので、構造上の差はほぼこれだけです。

差が効いてくるのは学習目標のほうです。BERTは隠した位置だけで損失を取ります。

LMLM=iMlogp(xixM)\mathcal{L}_{\mathrm{MLM}} = -\sum_{i \in M} \log p(x_i \mid x_{\setminus M})
(3)

MMは隠した位置の集合、xMx_{\setminus M}は隠していない残り全部です。要するに隠した単語を、残り全部を手がかりに当てる。当てるのは隠した場所だけ。

GPTは全位置で損失を取ります。

LAR=i=1Nlogp(xix<i)\mathcal{L}_{\mathrm{AR}} = -\sum_{i=1}^{N} \log p(x_i \mid x_{<i})
(4)

x<ix_{<i}iiより前の全単語です。つまり各単語を、それより前だけを見て当てる。しかも文中のすべての位置が問題になる。

下の図で「因果マスク」を切り替えてみてください。入れた状態がGPTの見ている世界、外した状態がBERTの見ている世界です。

FIG 1円卓に並んだ単語を注意の重みが結ぶ。「因果マスク(未来を隠す)」を切り替えると、同じモデルがBERT側の見え方とGPT側の見え方を行き来する

同じ1文を1回流したとき、両者が受け取る学習信号の量は違います。GPTは長さの文から個分の誤差を受け取り、BERTは15%しか隠さないので個分しか受け取りません。同じ計算コストで教師信号の密度が違う。 ELECTRA(arXiv:2003.10555)がMLMの改良に取り組んだのは、この「隠した場所からしか学べない」非効率が出発点でした。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

  1. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805論文ページ·PDF
  2. Language Models are Few-Shot Learners. arXiv:2005.14165論文ページ·PDF
  3. ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators. arXiv:2003.10555論文ページ·PDF
  4. Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks. arXiv:1908.10084論文ページ·PDF
  5. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683論文ページ·PDF
  6. Smarter. "arXiv:2412.13663論文ページ·PDF
  7. Better. Better
  8. Faster. Faster
  9. https://arxiv.org/abs/2412.13663". Longer: A Modern Bidirectional Encoder

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

コメント

コメントにはログインが必要です