2.

Transformer とは?仕組み・Self-Attention・LLM の基礎

編集

本稿は 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 / LSTMTransformer
計算方式逐次(前の出力を待つ)並列(系列全体を一度に処理)
長距離依存勾配消失で弱いAttention で直接結合できる
GPU 活用限定的大幅に活用できる
スケーリング限界が早いパラメータ・データを増やすほど伸びる
表現力系列に強いが構造的に偏る系列・画像・音声・グラフへ転用可能

主要コンポーネント

構成要素役割
Tokenizer文字列をトークンに分割(BPE / WordPiece / SentencePiece)
Embedding 層トークン ID をベクトル化
Positional Encoding位置情報を埋め込む(並列処理で順序が消えるため必要)
Self-Attention各トークンが他のトークンとどれだけ関係あるかを学習
Multi-Head AttentionAttention を複数並列に走らせ、異なる視点を学ぶ
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 AttentionMixture 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)  # 出力同形状

歴史マイルストーン

出来事
2017Vaswani et al. が「Attention Is All You Need」を発表
2018BERT(Encoder のみ)、GPT-1(Decoder のみ)
2019GPT-2、T5、RoBERTa
2020GPT-3、ViT、Scaling Laws
2022ChatGPT 公開、Stable Diffusion (内部に Transformer)
2023GPT-4、Llama、Claude、Gemini、長コンテキスト競争
2024-推論モデル (o1 / o3)、MoE、マルチモーダル、動画生成 (Sora)

運用上のヒント

Tips
  • 自前学習はほぼ不要。Hugging Face Transformers事前学習モデルをロードするのが基本
  • 研究・本番ともに PyTorch が事実上の標準
  • 長文タスクはコンテキストウィンドウの上限を必ず確認
  • 論文を読むときは「Decoder のみか / Encoder-Decoder か」「位置エンコーディングは何か」を見るだけで構造の差が分かる
  • 推論コストは「パラメータ数 × コンテキスト長」に概ね比例。小型モデル + 短プロンプトでコスト削減

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. LLM (大規模言語モデル)
  2. Transformer
  3. Attention (注意機構)
  4. Embedding (埋め込み)
  5. Prompt Engineering
  6. RAG (検索拡張生成)
  7. ファインチューニング
  8. AIエージェント
  9. マルチモーダルAI
  10. トークンとコンテキストウィンドウ
  11. Diffusion Model (拡散モデル)

最近更新/作成されたページ