コンテンツにスキップ
LinkedInX

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

約10分

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

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

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

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

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

逐次処理で並列化しにくい:RNNは前のステップの出力を使って次のステップを計算するため、すべてのステップを順番に処理する必要があります。Transformer論文は、この逐次性が長い系列の学習効率を制約する問題として説明しています。[1]

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

問題点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ベースの構造で系列変換を行う設計を示したものです。[1]

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

例えば、「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を複数並列で実行し、異なる表現部分空間から情報を集める仕組みです。[1]

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(位置エンコーディング)とは、トークンの順序情報をモデルに伝えるための仕組みです。[1]

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

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

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

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点に集約されます。

並列学習によるスケーラビリティ:全トークン間の関係を一度に計算できるため、RNNの逐次処理に比べて並列化しやすくなります。[1]

スケーリング則の研究:言語モデルでは、モデルサイズ・データ量・計算量を増やすほど性能が予測可能に向上する傾向が報告されています。この観察は、大規模モデル開発を考えるうえで重要な根拠になっています。[2]

  • 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: モデルの規模と設計によって異なります。ヘッド数を増やすと複数の表現部分空間から情報を集められますが、計算コストや実装上の制約も増えます。

  1. Ashish Vaswani et al., Attention Is All You Need, 2017年6月12日
  2. Jared Kaplan et al., Scaling Laws for Neural Language Models, 2020年1月23日
クイズ