エンコーダとデコーダ — BERTとGPTの分岐点
同じTransformerから生まれたBERTとGPTを分けたのは、注意の表を隠すマスク1枚だった。双方向と自己回帰の違いを式と動く図で確かめ、なぜ生成側が主流になり、それでもエンコーダが検索と分類の現場で使われ続けるのかを解く。
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
一次資料 — この記事の根拠
この解説の公開 2026-08-27
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingarXiv:1810.04805論文ページ·PDFLanguage Models are Few-Shot LearnersarXiv:2005.14165論文ページ·PDF
ELECTRA: Pre-training Text Encoders as Discriminators Rather Than GeneratorsarXiv:2003.10555論文ページ·PDF
Sentence-BERT: Sentence Embeddings using Siamese BERT-NetworksarXiv:1908.10084論文ページ·PDF
Exploring the Limits of Transfer Learning with a Unified Text-to-Text TransformerarXiv:1910.10683論文ページ·PDF
Smarter"arXiv:2412.13663論文ページ·PDF
BetterBetter
FasterFaster
https://arxiv.org/abs/2412.13663"Longer: A Modern Bidirectional Encoder
同じ設計図から生まれた双子
2017年にTransformerという設計図が公開されてから1年ほどの間に、それをほぼそのまま使った2つのモデルが出ました。BERTとGPTです。部品も積み方も似ているのに、使い道もその後の運命もまったく違いました。
違いを生んだのは、たった1つの設計判断です。「各単語は、文中のどこまでを見てよいか」。ここだけが違い、それが片方を「読む機械」に、もう片方を「書く機械」に変えました。
比喩で言えば、BERTは校正者です。原稿を机に全部広げ、にじんで読めない1文字を前後から推理する。ただし白紙から書き起こす仕事はしません。GPTは講談師です。語りながら次の一言を選ぶので、見える範囲は常に「自分より前」だけです。
直感: 見える範囲が「解ける問題」を決める
これは好みの問題ではありません。見える範囲が決まると、学習に使える問題の形が自動的に決まってしまうからです。
GPTのように「自分より前しか見えない」と決めた瞬間、学習課題はタダで手に入ります。どの位置でも「次に来る単語」がそのまま正解ラベルだからです。人間が正解を用意する必要はなく、テキストがあるだけで無限に問題が作れます。これを自己回帰(autoregressive)と呼びます。
一方BERTのように「全部見える」と決めると困ります。次の単語を当てさせようにも、その単語自体が見えている。カンニングし放題では学習になりません。そこでBERTはわざと一部の単語を隠してから当てさせるという不自然な手続きを導入しました。マスク言語モデル(Masked Language Model, MLM)です。原論文では入力トークンの15%を隠します。
双方向の代償は「隠す」余計な工程、自己回帰の代償は「後ろを見られない」制約。どちらもトレードオフの上に立っています。
仕組み: 分岐点は注意の表に引く1本の線
Attention機構を1から理解するで見たとおり、自己注意は「単語が単語をどれだけ気にするか」を表すの点数表を作ります(は文中のトークン数)。
は単語の「質問」ベクトル、は単語の「名札」ベクトル、はその次元数です。要するにの質問との名札がどれくらい似ているかを測り、次元数の平方根でならしたものです。
分岐はこの表の扱いだけです。
GPTはこの1行を足します。つまり「自分より後ろ()の点数をにする」ということで、softmaxを通すとなので重みがちょうど0になり、未来の単語が混ざりません。表の右上三角を塗りつぶすこの操作が因果マスク(causal mask)です。BERTはこれを足さず表を全面使います。層の構造も残差接続もフィードフォワード層も共通なので、構造上の差はほぼこれだけです。
差が効いてくるのは学習目標のほうです。BERTは隠した位置だけで損失を取ります。
は隠した位置の集合、は隠していない残り全部です。要するに隠した単語を、残り全部を手がかりに当てる。当てるのは隠した場所だけ。
GPTは全位置で損失を取ります。
はより前の全単語です。つまり各単語を、それより前だけを見て当てる。しかも文中のすべての位置が問題になる。
下の図で「因果マスク」を切り替えてみてください。入れた状態がGPTの見ている世界、外した状態がBERTの見ている世界です。
コメント
コメントにはログインが必要です