前回、Transformer にはエンコーダとデコーダの2つのブロックがあると触れたわね。
今日はそれぞれ何をしているか、丁寧に見ていきましょう。
エンコーダは入力文を「理解」する側、デコーダは出力を「生成」する側、というざっくりしたイメージで合っていますか?
正解。
エンコーダは入力テキスト全体を双方向に Self-Attention で処理して、各単語の文脈付き表現を作るの。
たとえば「彼は銀行に行った」の「銀行」が金融機関かどうかは、前の主語だけじゃなく後ろの「行った」まで見ないと判断しにくいでしょう?
エンコーダは前も後ろも同時に見られるの。
あっ、人間が難しい文を読むときと同じだぁ!
前後を行ったり来たりするもんねぇ。
ましろちゃん、いい直感だね。
私も同じこと思っていました——あ、それ私が言おうとしていたのに。
つむぎ、競争心強いね。
うそっ!?
ちょっと笑った。
じゃあデコーダは?
ふふ。
デコーダは出力を1単語ずつ左から右に作っていくの。
「すでに生成した単語」と「エンコーダが作った表現」を参照しながら、次の単語を予測するわ。
翻訳なら、原文(エンコーダ側)と訳文の既出部分(デコーダ側)を同時に見ながら、次の訳語を決めていく——そんな動きね。
未来の単語はマスクで隠して見えなくする——これを因果的マスクと言いますよね。
そう。
マスクしないとカンニングになって、学習が成立しないの。
テストで答えを隠して解くのと同じだねぇ。
えへへ、AI もカンニング禁止っ!
要は、エンコーダは「読む専門」で、デコーダは「書く専門」ってこと?
BERTはエンコーダのみで文理解系(検索・分類)に強く、GPTはデコーダのみで生成系(対話・要約)に強い——でOKですよね?
翻訳や要約など「入力を理解して別の出力を生成する」タスクは、エンコーダ・デコーダ両方を使う T5 や BART など、ということですね。
ただし現在のLLM主流はデコーダ単独型(GPT方式)で、エンコーダ型(BERT)は検索など別領域で生き残っています。
完璧なまとめね、つむぎさん。
あらあら、今日はつむぎさんが先生をやれそうね。
ふぇぇ〜、つむぎちゃんかっこいい…!
試験では「BERT=エンコーダのみ」「GPT=デコーダのみ」「T5/BART=両方」「双方向・自己回帰・因果的マスク」を覚えて。
キーワードを押さえれば設問で迷わないわ。
そして現在の LLM 主流はデコーダ単独型(GPT方式)で、入力+指示+出力をひとつの列として扱うことで、幅広いタスクに対応しているの。
BERT 系は検索・分類・埋め込み生成など理解系で現役、という棲み分けを覚えておくと全体像がクリアになるわ。
確認クイズ
Transformer のエンコーダの特徴として最も適切なものはどれか。
- 出力を1単語ずつ生成する
- 入力を双方向に処理して文脈を理解する
- 画像を分類する
- 音声を認識する
こたえを見る
正解: 2. 入力を双方向に処理して文脈を理解する
エンコーダは入力全体を双方向に Self-Attention で処理し、文脈を含む表現を作ります。1単語ずつ生成するのはデコーダ、画像分類・音声認識は別モデルの役割です。