みんなのAI
機械学習AI論文
読み込み中…

学ぶ

🏅マイ実績

Ch.03

Transformer系譜:エンコーダ(BERT)vs デコーダ(GPT)

トランスフォーマーという偉大な発明は、大きく二つの家系へと発展しました。文全体を一度に見通す エンコーダ家のBERT(理解型) と、これまでの語から次の語を途切れなく生み出す デコーダ家のGPT(生成型) です。BERTが「大学受験国語の穴埋め推論」の名人なら、GPTは「しりとりと小説執筆」の天才です。本章では、二つのモデルがどう学習し、実務でなぜ役割がまったく違うのかを、初心者にも追いやすい比喩で整理します。

数式の読み方

ht(0)=xt+PE(t)h_t^{(0)} = x_t + PE(t)ht(0)​=xt​+PE(t) は入力トークン表現の出発点です。xtx_txt​ が単語の意味、PE(t)PE(t)PE(t) が位置情報を持つので、モデルは最初の層から「何の単語か」と「どこにあるか」を同時に受け取ります。Attn(Q,K,V)=softmax(QKT/dk)V\mathrm{Attn}(Q,K,V)=\mathrm{softmax}(QK^T/\sqrt{d_k})VAttn(Q,K,V)=softmax(QKT/dk​​)V は self-attention の中心式です。QKTQK^TQKT で関連度を計算し、dk\sqrt{d_k}dk​​ でスケールを安定化し、softmax 重みで VVV を混ぜて文脈表現を作ります。LMLM=−∑t∈Mlog⁡p(wt∣X)\mathcal{L}_{\mathrm{MLM}}=-\sum_{t\in\mathcal{M}}\log p(w_t\mid X)LMLM​=−∑t∈M​logp(wt​∣X) は BERT の MLM 学習目標です。マスク位置集合 M\mathcal{M}M の正解トークン wtw_twt​ を当てることで、双方向文脈を使う表現を学習します。LLM=−∑tlog⁡p(xt∣x<t)\mathcal{L}_{\mathrm{LM}}=-\sum_t \log p(x_t\mid x_{<t})LLM​=−∑t​logp(xt​∣x<t​) は GPT の次トークン学習目標です。各時刻で過去トークン x<tx_{<t}x<t​ のみを条件にするため自己回帰生成が可能になり、因果マスクで未来情報の漏れを防ぎます。
BERTは 文全体を見て 表現を作り、GPTは これまでのトークンだけ で次を足します。

概念構造:エンコーダ(理解) vs デコーダ(生成)

BERT系GPT系双方向エンコーダ因果デコーダN層反復分類ヘッドAdd & NormFeed ForwardAdd & Normマルチヘッドアテンションテキスト + 位置埋め込みN層反復次トークン予測タスク分類Add & NormFeed ForwardAdd & Normマスク付きマルチヘッドテキスト + 位置埋め込み残差接続
BERT系双方向エンコーダN層反復分類ヘッドAdd & NormFeed ForwardAdd & Normマルチヘッドアテンションテキスト + 位置埋め込みGPT系因果デコーダN層反復次トークン予測タスク分類Add & NormFeed ForwardAdd & Normマスク付きマルチヘッドテキスト + 位置埋め込み残差接続

I love deep learning のトークン関係

BERT

双方向: 各トークンが全トークンを参照

1234

左のミニ図は Multi-Head Attention を簡略化したものです。複数ヘッドが異なる関係を並列に見て、結果を結合(Concat + Projection)し、双方向文脈表現を作ります。

GPT

因果: 現在トークンは左(過去)のみ参照

1234
未来は遮断

右は Masked Multi-Head Attention です。構造はマルチヘッドと同じですが、因果マスクにより現在位置は未来トークンを見られず、自己回帰(next-token)学習が可能になります。

BERT系

学習の流れ:トークン化→マスク/目的→ブロック積み→ヘッド

① エンコーダ(BERT):トークンが 双方向 に参照

GPT系

未来トークンを遮断

② デコーダ(GPT):左文脈だけ で次のマスを予測

挙動:双方向ベクトル vs 自己回帰生成

③ 学習目的:MLM(マスク復元)vs 次トークン対数尤度
④ 推論:分類・埋め込み vs プロンプト駆動のトークン生成

BERT系

学習の流れ:トークン化→マスク/目的→ブロック積み→ヘッド

① エンコーダ(BERT):トークンが 双方向 に参照

GPT系

未来トークンを遮断

② デコーダ(GPT):左文脈だけ で次のマスを予測

挙動:双方向ベクトル vs 自己回帰生成

③ 学習目的:MLM(マスク復元)vs 次トークン対数尤度
④ 推論:分類・埋め込み vs プロンプト駆動のトークン生成

トランスフォーマー系譜:BERTは理解、GPTは生成

1. BERT:文を双方向に読み「理解」するエンコーダ型
概念: BERT(Bidirectional Encoder Representations from Transformers)は、Transformerの エンコーダ 部分だけを発展させたモデルです。核心は 双方向(Bidirectional)文脈 です。左の語と右の語を同時に参照し、現在の語が文中でどういう意味かを最も正確な 表現ベクトル に落とし込みます。
直感: 患者を診るとき、既往(左)と今日の検査(右)を 同時に 広げて総合判断する名医のようです。全体像を一度に見られるので文脈把握に強いです。
数学: BERTの代表的学習は MLM(Masked Language Modeling) です。文中の語に穴(`[MASK]`)を開け、周辺文脈から正解トークン wtw_twt​ の確率分布 p(wt∣全文脈)p(w_t \mid \text{全文脈})p(wt​∣全文脈) を当てるように訓練します。
応用: 「このレビューはポジティブ?ネガティブ?」「文書から人名と日付を」など、テキスト分類・固有表現抽出・文書検索に広く使われます。
2. GPT:次の語を途切れなく「生成」するデコーダ型
概念: GPT(Generative Pre-trained Transformer)はTransformerの デコーダ を発展させたモデルです。文を最初から最後まで一度に見せないよう マスク で未来の語を隠し、 過去のトークン(1…t−11\ldots t-11…t−1)だけ を見て次のトークン ttt を予測する 自己回帰(Autoregressive) です。
直感: タイプライターで小説を書く作家のようです。まだ書いていない次の文を先に見ることはできません。 ここまで書いた流れだけを手がかりに、自然な次の語を想像して綴ります。
数学: 未来トークンが混ざらないよう、注意行列の上三角を −∞-\infty−∞ で覆う Causal Masking を使います。学習は、与えられた x<tx_{<t}x<t​ に対して正解 xtx_txt​ の条件付き確率 −log⁡p(xt∣x<t)-\log p(x_t\mid x_{<t})−logp(xt​∣x<t​) を最大化する方向です。
応用: チャットボットの返信、メール下書き、コード補完など、「新しく何かを生み出す(生成)」作業に特化しています。
3. 学習目標の違い:穴埋め vs しりとり
概念: 骨格が違うので訓練も違います。BERTは 表現(Representation) を深く理解するため、穴を空けて周辺のヒントで当てる訓練をします。一方GPTは 生成(Generation) の能力だけを伸ばすため、前の語だけ見て次の語をつなぐ訓練に集中します。
直感: BERTの訓練所は 「昨日は[MASK]でご飯を食べた」 という問題を渡し、穴に「レストラン」が入るか当てさせます。GPTの訓練所は 「昨日はレストランで…」 までしか見せず、その先の自然な語をどんどん想像させます。
4. 推論の違い:即時判読 vs ストリーミング生成
概念: サービス運用ではUXも変わります。BERTは文がまとまって入れば、一度の演算で各語の意味ベクトルを 一気に 取り出します。一方GPTはプロンプト(質問)を受け取ると、一語作ってそれをまた入力に戻し、次の語を作る工程を繰り返して文字を流し出します。
直感: BERTは スキャナ のように文書全体を一度に走査して結論(ラベル)を出します。GPTは 同時通訳 やタイプライターが一文字ずつ言葉をつなぐようです。そのためGPT系は 出力が長いほど演算時間が伸びます。

なぜ重要か

適材適所:モデルの「専門」を知らないと失敗する
実務でよくあるのは「GPTが流行っているから何でもこれで!」です。しかしレビューがポジ/ネガか分類するだけなら巨大GPTを使うのは 牛刀小試 です。逆にBERTに素敵な詩を書かせても的外れです。系譜を理解すると コストと性能を最適化する正しいアーキテクチャ を設計できます。
マスク規則が安全性と性格を決める
未来を見せないGPTの因果マスクは、 生成の規則 を守るためです。株価予測や金融詐欺ログでは「未来データを盗み見て過去を判断する(Data Leakage)」を防ぐため 時間順の制約 が重要です。一方、すでに過ぎた全記録をもとに原因分析するなら双方向のBERTが有利なことが多いです。
パイプラインの入口が違う(分類器 vs プロンプト)
ファインチューニングの形も違います。BERTはモデル先端に小さな 分類器(Classifier) を一層足して仕上げます。GPTは構造をいじるより、指示文を整える プロンプトエンジニアリング や対話形式の Instruction Tuning が主になります。
幻覚(Hallucination)抑制の設計の基準点
GPTのような生成モデルは、知らないこともそれらしく捏造する 幻覚 という致命的な弱点があります。最新の実務では、BERTのような理解型で社内文書から正確な根拠を検索(Retrieval)し、その根拠をもとにGPTが安全に答えを生成する RAG(検索拡張生成) で二つの家系の長所だけを取ります。

どう使うか

実務パイプライン(BERT):埋め込みを取って頭を付ける
BERTはテキストを数値の 埋め込みベクトル にうまく圧縮します。例:スパム分類ならメール文をBERTに入れ、出てきた文全体の代表ベクトル(`[CLS]`)をロジスティック回帰や線形層(Head)に通してスパム確率(0〜1)を計算します。高速で正確なのでバックエンドで大量データをリアルタイム分類するのに向きます。
実務パイプライン(GPT):尾に尾を引く生成を調整する
GPTをサービスに載せるときは、答えが飛ぶのを防ぐ 手綱 が要ります。開発者は次トークンをどれだけ創造的に選ぶか決める 温度(Temperature)、確率の高い上位いくつかに限定する Top-k / Top-p などを微調整します。コーディング補完なら温度を下げて精度を上げ、マーケ文なら温度を上げて創造性を出します。
コストとインフラ(GPU)計算の差
BERT系は多くが小型(数百MB〜数GB)で安いGPU1枚、場合によってはCPUでも回ります。一方GPT系の巨大LLMは数十〜数百GBのメモリを要し、特に 出力する文字数 に比例して演算コストとレイテンシが容赦なく増えます。予算を立てるときは必ず考慮してください。
デバッグ戦略:何が問題か診断する
AIサービスがおかしいとき原因も分かれます。分類器(BERT)の性能が落ちるなら学習データのノイズやラベルミス、表現力不足を疑います。チャットボット(GPT)がでたらめなら、プロンプト指示が曖昧か、幻覚か、参照すべき背景知識(Context)が足りないかを先に把握します。

まとめ

Transformerは二つの大家に分岐しました。BERT型エンコーダは文を 双方向 に読み豊かな 表現 を作り、GPT型デコーダは 左文脈だけ から次トークンを 生成 します——穴埋め対しりとりのイメージです。学習はBERTが MLM でマスクを埋め、GPTが 因果マスク のもと 次トークン尤度 を最大化します。運用ではBERTが固定入力を 一括でスコア化・埋め込み化 しやすく、GPTはプロンプトから トークンを積み上げ ——出力が長いほど遅延が増えます。最新の製品は両方を組み合わせ、エンコーダで 検索、デコーダで 下書き、RAG で 幻覚 を抑えます。

演習の進め方

まとめ — BERTはエンコーダ家として 双方向の理解・表現、GPTはデコーダ家として 左だけ見る自己回帰生成 を核にします。BERTはMLMなどで文脈埋め込みを学び、GPTは p(xt∣x<t)p(x_t\mid x_{<t})p(xt​∣x<t​) で次トークンをつなぎます。推論はBERTが 一度にベクトルを取り出す に近く、GPTが トークンを長く伸ばすストリーミング に近いです。
  • タイプBERT系
  • ヒント(キーワード→考え方)エンコーダのみ・双方向文脈・表現学習 → 「encoder / understanding」
  • タイプGPT系
  • ヒント(キーワード→考え方)デコーダ・因果マスク・次トークン予測 → 「generation / autoregressive」
  • タイプMLM
  • ヒント(キーワード→考え方)一部マスクして復元;損失はマスク位置 → 学習目的
  • タイプCausal LM
  • ヒント(キーワード→考え方)−∑log⁡p(xt∣x<t)-\sum \log p(x_t\mid x_{<t})−∑logp(xt​∣x<t​) の左条件付け → 生成学習
  • タイプマスク
  • ヒント(キーワード→考え方)未来位置を遮断(例:注意で −∞-\infty−∞)→ 先読み防止
  • タイプ転移
  • ヒント(キーワード→考え方)BERT:分類ヘッド;GPT:プロンプト/指示チューニング → 製品パターン
タイプヒント(キーワード→考え方)
BERT系エンコーダのみ・双方向文脈・表現学習 → 「encoder / understanding」
GPT系デコーダ・因果マスク・次トークン予測 → 「generation / autoregressive」
MLM一部マスクして復元;損失はマスク位置 → 学習目的
Causal LM−∑log⁡p(xt∣x<t)-\sum \log p(x_t\mid x_{<t})−∑logp(xt​∣x<t​) の左条件付け → 生成学習
マスク未来位置を遮断(例:注意で −∞-\infty−∞)→ 先読み防止
転移BERT:分類ヘッド;GPT:プロンプト/指示チューニング → 製品パターン
例(概念)
「典型的なBERT系に近いのは?」
① エンコーダを積み双方向
② デコーダのみ
③ 畳み込みのみ → 1

「正弦PEで偶数次元 2i2i2i には?」
① sin⁡\sinsin
② cos⁡\coscos
③ ReLU → 1

「GPT系の学習に最も近いのは?」
① アテンション混合だけ
② 左文脈のみの自己回帰LM
③ 系列短縮 → 2

「dff=4dmodeld_{ff}=4d_{model}dff​=4dmodel​, dmodel=128d_{model}=128dmodel​=128 のとき自然な dffd_{ff}dff​ は?」
① 256
② 512
③ 64 → 2

「学習済み位置埋め込みに近いのは?」
① 位置ごとに学習ベクトルを足す
② 常に sin⁡\sinsin のみ
③ 位置なし → 1

「順序がラベルに効くとき、アテンションと組み合わせる入力は?」
① トークン埋め込み+位置
② ピクセルのみ
③ ファイル名のみ → 1

例(○×) 加算型PEは通常トークン埋め込みに足す → 1

例(シナリオ) 投薬順が重要→まず強化するのは
① 埋め込み+PE → 1

例(投票) [1,1,0,1,0] の1の個数 → 3

例(集計) [2,1,2] の和 → 5

例(構成) 10×1010\times1010×10 の注意スコア行列の要素数 → 100

例(深さ) 層を積む目的に近いのは?
① 段階的抽象化 → 1