コンテンツにスキップ
X

トランスフォーマーモデル

トランスフォーマー(Transformer)とは、2017年にGoogleの研究チームが発表したニューラルネットワークアーキテクチャです。「Attention(注意機構)」のみを用いてシーケンスを処理する設計により、それまで主流だったRNN・LSTMの限界を克服し、現代のほぼすべての大規模言語モデル(LLM)の基盤となっています。

対象読者: ディープラーニングの基礎(ニューラルネットワーク・損失関数)を理解している方

学習時間の目安: 読了 30分

前提知識: ディープラーニングとは を読んでいること

なぜTransformerが登場したのか — RNN/LSTMの限界

Section titled “なぜTransformerが登場したのか — RNN/LSTMの限界”

Transformerが登場する以前、シーケンスデータ(テキスト・音声など)の処理にはRNN(Recurrent Neural Network、再帰型ニューラルネットワーク)やLSTM(Long Short-Term Memory)が使われていました。

逐次処理で並列化できない:RNNは前のステップの出力を使って次のステップを計算するため、すべてのステップを順番に処理する必要があります。これにより、GPU・TPUの並列計算能力を活かせず、学習に長い時間がかかります。

長距離依存の消失:文章が長くなるほど、文頭の情報が文末まで伝わりにくくなります。例えば「昨日、東京にある大きなオフィスで働いていた田中さんは…」という文で、文末の動詞が「田中さん」に対応することをモデルが正しく認識するのが難しくなります。

問題点RNN/LSTMTransformer
並列処理不可(逐次処理)可能(全トークンを同時処理)
長距離依存距離が遠いと情報が消失Attentionで直接参照可能
学習速度遅い速い(並列学習のため)
スケーラビリティ限界あり大規模化が容易

Transformerは次の論文で発表されました。

Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention is All You Need. Advances in Neural Information Processing Systems (NeurIPS), 30.

タイトルの「Attention is All You Need(必要なのはAttentionだけ)」は、RNNやCNNを使わずにAttentionだけで高性能なモデルを構築できることを主張したものです。

Self-Attention(自己注意機構)とは、シーケンス内の各トークンが、他のすべてのトークンとの関連度を計算することで、文脈を理解する仕組みです。

例えば、「The animal didn’t cross the street because it was too tired.」という文を考えます。

「it」が何を指しているかを理解するには、文中の他の単語との関係を見る必要があります。Self-Attentionは、「it」と「animal」の関連が高いことを数値として計算し、文脈に基づいた正しい解釈を可能にします。

Self-Attentionでは、各トークンを3つのベクトルに変換します。

ベクトル役割比喩
Query(クエリ)「自分は何を探しているか」を表す図書館で本を探す人の検索キーワード
Key(キー)「自分はどんな情報か」を表す図書館の本の背表紙タイトル
Value(バリュー)「自分が持っている情報」を表す図書館の本の中身
graph LR
    Input["入力トークン\n(埋め込みベクトル)"]
    Q["Query ベクトル\n(WQ で変換)"]
    K["Key ベクトル\n(WK で変換)"]
    V["Value ベクトル\n(WV で変換)"]
    Score["Attention Score\n(Q・K の内積 ÷ √dk)"]
    Softmax["Softmax\n(確率分布に変換)"]
    Output["出力\n(Softmax × V の加重和)"]

    Input --> Q
    Input --> K
    Input --> V
    Q --> Score
    K --> Score
    Score --> Softmax
    Softmax --> Output
    V --> Output

計算式で表すと次のようになります。

Attention(Q, K, V) = softmax(Q・Kᵀ / √dk) × V
  • Q・Kᵀ:QueryとKeyの内積でスコアを計算(関連度を数値化)
  • / √dk:スコアが大きくなりすぎないようにスケーリング
  • softmax:スコアを合計1になる確率分布に変換
  • × V:確率に従ってValueを加重和(関連度の高い情報を多く取り込む)

Multi-Head Attention(多頭注意機構)

Section titled “Multi-Head Attention(多頭注意機構)”

Multi-Head Attention(多頭注意機構)とは、Self-Attentionを複数並列で実行し、異なる観点から文脈を同時に捉える仕組みです。

graph TD
    Input["入力"]
    H1["Attention Head 1\n(構文関係を捉える)"]
    H2["Attention Head 2\n(意味関係を捉える)"]
    H3["Attention Head 3\n(長距離依存を捉える)"]
    HN["Attention Head N\n(...)"]
    Concat["結合(Concatenate)"]
    Linear["線形変換(Linear)"]
    Output["出力"]

    Input --> H1
    Input --> H2
    Input --> H3
    Input --> HN
    H1 --> Concat
    H2 --> Concat
    H3 --> Concat
    HN --> Concat
    Concat --> Linear
    Linear --> Output

各ヘッドが異なる種類の関係(構文・意味・指示語など)を学習することで、より豊かな文脈理解が実現します。

Positional Encoding(位置エンコーディング)

Section titled “Positional Encoding(位置エンコーディング)”

Positional Encoding(位置エンコーディング)とは、トークンの順序情報をモデルに伝えるための仕組みです。

Self-Attentionは全トークンを同時に処理するため、そのままでは「どのトークンが何番目にあるか」という語順情報が失われます。Positional Encodingは、各トークンの埋め込みベクトルに位置情報を加算することで語順を保持します。

入力埋め込み + 位置エンコーディング = モデルへの入力

Transformerはもともと機械翻訳向けに設計されたため、Encoder(エンコーダ)とDecoder(デコーダ)の2つの構造で構成されています。

graph LR
    subgraph Encoder["Encoder(文脈の理解)"]
        E1["Self-Attention"]
        E2["Feed-Forward Network"]
        E1 --> E2
    end
    subgraph Decoder["Decoder(テキストの生成)"]
        D1["Masked Self-Attention"]
        D2["Cross-Attention\n(Encoderの出力を参照)"]
        D3["Feed-Forward Network"]
        D1 --> D2 --> D3
    end
    Encoder --> Decoder

現代のモデルはこの構造を部分的に採用しており、3つのカテゴリに分類できます。

アーキテクチャ使用する部分代表モデル得意なタスク
Encoder-OnlyEncoderのみBERT、RoBERTa文章理解・分類・固有表現認識
Decoder-OnlyDecoderのみGPT系、Claude、Llamaテキスト生成・対話・コード生成
Encoder-Decoder両方T5、BART、翻訳モデル翻訳・要約・質問応答

Transformerの登場が現代のAI発展に与えた影響は次の2点に集約されます。

並列学習によるスケーラビリティ:全トークンを同時に処理できるため、GPU・TPUの計算能力を最大限に活用できます。これにより、数十億・数千億パラメータの大規模モデルを現実的な時間で学習できるようになりました。

スケーリング則の発見:Transformerはモデルサイズ・データ量・計算量を増やすほど性能が向上するという「スケーリング則」を示しました。これがGPT-3(1750億パラメータ)やそれ以降の大規模モデルの開発を後押しした根拠となっています。

  • Transformerは2017年の論文「Attention Is All You Need」で発表されたアーキテクチャ
  • Self-Attentionにより、全トークンの関係を一度に計算できる
  • Q・K・Vの3ベクトルで関連度を計算し、文脈を捉える
  • Multi-Head Attentionで複数の観点から文脈を同時理解する
  • Encoder-Only(BERT系)・Decoder-Only(GPT系)・Encoder-Decoder(翻訳系)の3種類に分類
  • 並列学習とスケーラビリティにより、現代LLMの基盤となった

Q: TransformerとLLMは同じものですか?

A: 異なります。Transformerはニューラルネットワークのアーキテクチャ(設計図)です。LLM(大規模言語モデル)はTransformerをベースに大量のテキストデータで学習した大規模モデルです。TransformerはLLMの「構造」であり、LLMはTransformerを使って作られた「製品」に相当します。

Q: Self-AttentionとCross-Attentionの違いは何ですか?

A: Self-Attentionは同じシーケンス内のトークン同士の関係を計算します。Cross-AttentionはEncoderの出力とDecoderの入力の間で関係を計算します。Cross-AttentionはEncoder-Decoderモデル(翻訳モデルなど)で使われ、入力文と出力文の対応関係を学習します。

Q: Positional Encodingがなければどうなりますか?

A: 語順の情報がなくなるため、「猫が犬を追いかけた」と「犬が猫を追いかけた」を区別できなくなります。Positional Encodingは文法的・意味的に正確なテキスト処理に不可欠な要素です。

Q: Attention Headはいくつ設定するのが一般的ですか?

A: モデルの規模によって異なります。初期のTransformerでは8ヘッド、GPT-3では96ヘッドが使われています。ヘッド数を増やすと異なる種類の関係を並列で学習できますが、計算コストも増大します。


次のステップ: BERTとGPTの違い

このページへのリンク(英語): Transformer Models