はじめに
BERT がテキストを 2 方向から「読み取る」場合、GPT はテキストを左から右に「書き込み」ます (自己回帰生成)。 GPT は、世界を変えている LLM である ChatGPT、Claude、Gemini の基盤です。
1. GPT アーキテクチャ: デコーダのみ
Input: "Once upon a time"
│ │ │ │
▼ ▼ ▼ ▼
┌──────────────────────────┐
│ Transformer Decoder │
│ (Causal Self-Attention)│
│ Chỉ nhìn bên trái! │
└──────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
"upon" "a" "time" ","
因果言語モデリング
$$P(x_1, x_2, ..., x_n) = \prod_{i=1}^{n} P(x_i | x_1, ..., x_{i-1})$$
このモデルは、以前のすべてのトークンに基づいて次のトークンを予測します (将来は考慮しません)。
2. 進化: GPT-1 → GPT-4
| モデル | 年 | パラメータ | トレーニングデータ | ブレークスルー |
|---|---|---|---|---|
| GPT-1 | 2018年 | 117M | ブックコーパス | 生成的な事前トレーニング作品 |
| GPT-2 | 2019年 | 1.5B | ウェブテキスト (40GB) | 「危険すぎて解放できない」 |
| GPT-3 | 2020年 | 175B | 570GB テキスト | 状況に応じた学習、少数ショット |
| GPT-4 | 2023年 | ~1.8T (噂) | インターネット規模 | マルチモーダル、推論 |
| GPT-4o | 2024年 | 未公開 | + 画像、音声 | ネイティブマルチモーダル |
3. デコード戦略
温度、トップ k、トップ p
from transformers import GPT2LMHeadModel, GPT2Tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
input_text = "Artificial intelligence will"
input_ids = tokenizer.encode(input_text, return_tensors="pt")
# Greedy (deterministic, boring)
greedy = model.generate(input_ids, max_length=50, do_sample=False)
# Temperature sampling (creativity control)
creative = model.generate(
input_ids, max_length=50,
do_sample=True,
temperature=0.8, # < 1: focused, > 1: creative
top_k=50, # Chỉ xét 50 tokens có probability cao nhất
top_p=0.9, # Nucleus sampling: 90% probability mass
)
print(tokenizer.decode(creative[0]))
| パラメータ | 低い | 曹操 |
|---|---|---|
| 温度 | 正確で再現性のある | クリエイティブ、ランダム |
| トップk | 選択肢は少なく、安全 | 多くの多様なオプション |
| トップ | トークンに確実に焦点を当てる | より多くのトークンを検討してください |
4. コンテキスト内学習 (ICL)
GPT-3 は次のことを発見しました。微調整の必要はなく、プロンプトに例を入力するだけです。
prompt = """
Classify the sentiment:
Text: "This movie is amazing!" → Positive
Text: "Terrible experience" → Negative
Text: "The food was okay" → Neutral
Text: "I absolutely love this product!" →"""
# GPT sẽ trả lời: "Positive"
# Không cần fine-tune! Chỉ cần prompt engineering.
| パラダイム | 例 | 微調整? |
|---|---|---|
| ゼロショット | 例はありません | いいえ |
| ワンショット | 1 例 | いいえ |
| 数ショット | 3-10 例 | いいえ |
| 微調整 | 数千の例 | はい |
5. BERT 対 GPT 対 T5
| 特長 | BERT (エンコーダー) | GPT (デコーダー) | T5 (Enc-Dec) |
|---|---|---|---|
| 方向 | 双方向 | 左から右 | 両方 |
| 事前トレーニング | MLM + NSP | コーザルLM | ノイズ除去 |
| 良いこと | 分類、NER、QA | 生成、チャット | すべて (テキストからテキストへ) |
| 例 | ロバート・フォバート | GPT-4、LLaMA | T5、mT5、ViT5 |
概要
| コンセプト | 詳細 |
|---|---|
| GPT | デコーダのみ、因果的 LM、自己回帰 |
| スケーリングの法則 | より大きなモデル + より多くのデータ = より良いパフォーマンス |
| デコード | 温度、top-k、top-p 制御出力ダイバーシティ |
| ICL | 微調整なしの数ショット学習 |
| BERT 対 GPT | 理解 (BERT) と生成 (GPT) |
次の記事
レッスン 12: ハグフェイス エコシステム — 最もよく使用されるライブラリ (トランスフォーマー、データセット、トークナイザー) を使用して最新の NLP を練習します。