本稿は Transformer (トランスフォーマー) に関する記事です。
| この記事の要点 |
- Transformer は 2017 年 Google が発表した深層学習アーキテクチャ(論文: "Attention Is All You Need")
- 中核は Self-Attention(自己注意機構)。系列内の任意の位置同士の関係を並列に学習できる
- RNN と違い並列計算可能 → GPU で大規模学習が現実的に
- BERT / GPT / Llama / Claude / Gemini の全 LLM、画像 (ViT)、音声 (Whisper)、動画モデルまで土台になっている
- 基本要素: Tokenization → Embedding → Positional Encoding → Multi-Head Attention → Feed-Forward → 出力
- 3 つの派生: Encoder のみ (BERT) / Decoder のみ (GPT) / Encoder-Decoder (T5)
- スケーリング則が成立し、大型化=高性能化の現代 AI 競争を生んだ
|
Transformer とは?
Transformer は、2017 年に Google の研究者らが論文 「Attention Is All You Need」 で発表したニューラルネットワークアーキテクチャです。当時主流だった RNN / LSTM による系列モデルを置き換え、現在のLLM・生成 AI のほぼすべてがこの構造の上に建っています。
名前の由来は「(系列を別の系列に)変換する (transform) もの」。最初は機械翻訳のために提案されましたが、その後あらゆる系列・マルチモーダルデータに適用されるようになりました。
なぜ革命的だったか
| 項目 | RNN / LSTM | Transformer |
| 計算方式 | 逐次(前の出力を待つ) | 並列(系列全体を一度に処理) |
| 長距離依存 | 勾配消失で弱い | Attention で直接結合できる |
| GPU 活用 | 限定的 | 大幅に活用できる |
| スケーリング | 限界が早い | パラメータ・データを増やすほど伸びる |
| 表現力 | 系列に強いが構造的に偏る | 系列・画像・音声・グラフへ転用可能 |
主要コンポーネント
| 構成要素 | 役割 |
| Tokenizer | 文字列をトークンに分割(BPE / WordPiece / SentencePiece) |
| Embedding 層 | トークン ID をベクトル化 |
| Positional Encoding | 位置情報を埋め込む(並列処理で順序が消えるため必要) |
| Self-Attention | 各トークンが他のトークンとどれだけ関係あるかを学習 |
| Multi-Head Attention | Attention を複数並列に走らせ、異なる視点を学ぶ |
| Feed-Forward Network (FFN) | 位置ごとに同じ MLP を適用 |
| Residual Connection + LayerNorm | 勾配を安定化させる |
| 出力層(Softmax) | 次トークン確率を出力 |
Self-Attention の核心
| 補足: Q / K / V のイメージ |
各トークンを Query (Q)・Key (K)・Value (V) 3 つのベクトルに変換し、「Q がどの K とどれだけ似ているか」のスコアで V を重み付き平均します。
例: 「彼 は本を読んだ。それ は面白かった。」のような文で、「それ」が「本」を指すという関係を、Attention スコアが大きくなることで自動的に学習します。
RNN だと「それ」から「本」まで時間ステップを辿らないと届かない関係が、Transformer では1 ステップで直接結ばれるのが本質的優位点です。 |
3 つの派生アーキテクチャ
| タイプ | 代表モデル | 得意タスク |
| Encoder のみ | BERT、RoBERTa、ModernBERT | 文の理解(分類・抽出 QA・Embedding 生成) |
| Decoder のみ | GPT 系、Llama、Claude、Gemini、Qwen | テキスト生成・会話・コード生成(現代 LLM の主流) |
| Encoder-Decoder | 原論文の Transformer、T5、BART、mT5 | 翻訳・要約(入力 → 出力の系列変換) |
Transformer の応用
| 領域 | 代表モデル |
| 自然言語処理 | GPT / BERT / Llama / Claude / Gemini など全 LLM |
| 画像認識 | Vision Transformer (ViT)、Swin Transformer |
| 音声認識 | Whisper、Conformer |
| 動画 | VideoMAE、TimeSformer |
| マルチモーダル | CLIP、Flamingo、GPT-4o、Gemini |
| 画像生成 | DiT (Diffusion Transformer)、Sora 系 |
| タンパク質構造 | AlphaFold(Transformer 派生) |
| 強化学習 | Decision Transformer |
計算量と長文の課題
| 注意: Attention の計算量 |
標準の Self-Attention は系列長 n に対して O(n²) の計算量・メモリを使います。これが LLM のコンテキストウィンドウの上限とコストの主因です。
長文対応として FlashAttention(メモリ効率化)、Sliding Window Attention、Mixture of Experts (MoE)、State Space Model (Mamba) などの改良・代替が研究されています。 |
派生・改良
- FlashAttention — メモリと速度を効率化
- RoPE (Rotary Position Embedding) — 位置エンコーディングの改良(Llama 等で採用)
- GQA (Grouped Query Attention) — 推論時の KV キャッシュを削減
- Mixture of Experts (MoE) — 一部の専門家だけを活性化(Mixtral / GPT-4 / DeepSeek 等)
- Long Context — Yarn / ALiBi 等で 100 万トークン超の対応
- State Space Model (Mamba) — Transformer の代替候補
最小サンプル: PyTorch の Transformer 層
|
import torch, torch.nn as nn
# Decoder のみのシンプルな Transformer 層 (LLM の基本)
layer = nn.TransformerEncoderLayer(
d_model=512, # 埋め込み次元
nhead=8, # Multi-Head の本数
dim_feedforward=2048,
batch_first=True,
)
model = nn.TransformerEncoder(layer, num_layers=6)
# 入力: (バッチ, 系列長, 次元)
x = torch.randn(2, 128, 512)
out = model(x) # 出力同形状
|
歴史マイルストーン
| 年 | 出来事 |
| 2017 | Vaswani et al. が「Attention Is All You Need」を発表 |
| 2018 | BERT(Encoder のみ)、GPT-1(Decoder のみ) |
| 2019 | GPT-2、T5、RoBERTa |
| 2020 | GPT-3、ViT、Scaling Laws |
| 2022 | ChatGPT 公開、Stable Diffusion (内部に Transformer) |
| 2023 | GPT-4、Llama、Claude、Gemini、長コンテキスト競争 |
| 2024- | 推論モデル (o1 / o3)、MoE、マルチモーダル、動画生成 (Sora) |
運用上のヒント
| Tips |
- 自前学習はほぼ不要。Hugging Face Transformers で事前学習モデルをロードするのが基本
- 研究・本番ともに PyTorch が事実上の標準
- 長文タスクはコンテキストウィンドウの上限を必ず確認
- 論文を読むときは「Decoder のみか / Encoder-Decoder か」「位置エンコーディングは何か」を見るだけで構造の差が分かる
- 推論コストは「パラメータ数 × コンテキスト長」に概ね比例。小型モデル + 短プロンプトでコスト削減
|
関連