生成AIパスポート試験対策 トランスフォーマーを完全整理

こんにちは。ゆうせいです。

生成AIパスポート試験の第2章「生成AIの誕生まで」を学習していると、トランスフォーマーのところで急に専門用語が増えます。セルフアテンション、クエリ、キー、バリュー、位置エンコーディング、エンコーダ、デコーダ。この章で挫折する受験者は少なくありません。

しかし、仕組みを分解して順番に見ていけば、決して難しい内容ではありません。この記事では、試験で問われる範囲を、用語の丸暗記ではなく「なぜそうなっているか」から整理します。

結論

トランスフォーマーは、2017年の論文「Attention Is All You Need」で提案された、言葉の並びを扱うためのニューラルネットワークの設計です。

試験対策として押さえるべきは、次の四つの柱です。

内容
アテンション関連度に応じて情報を重み付きで集める仕組み
位置情報語順を外から与える仕組み
フィードフォワード各位置の表現を個別に変換する層
残差接続と正規化深い層でも学習を安定させる工夫

そして、最も出題されやすく、最も間違えやすいのが次の一点です。

トランスフォーマーは、学習時には並列処理ができます。しかし文章を生成する推論時には、一単語ずつの逐次処理になります。「常に並列」ではありません。

この区別を理解しているかどうかで、正答率が大きく変わります。

学習の到達目標

この分野では、次の六つを自分の言葉で説明できることが目標になります。

  1. アテンション機構は何のためにあるのか
  2. セルフアテンションは同じ文章の中で単語同士の関係をどう捉えるのか
  3. クエリ、キー、バリューの三つの役割はどう違うのか
  4. 位置エンコーディングはなぜ必要なのか
  5. エンコーダとデコーダはそれぞれ何を担当するのか
  6. RNNとの違い、およびトランスフォーマーの強みと留意点は何か

以下、この順に解説します。

1 トランスフォーマーが生まれた背景

2017年の転換点

トランスフォーマーは、2017年に発表された論文で初めて提案されました。タイトルは「Attention Is All You Need」です。直訳すれば「必要なのはアテンションだけ」となります。

それまで、言葉を扱うAIは主に次の二つの構造を使っていました。

構造特徴
RNN(再帰型ニューラルネットワーク)前から順番に一語ずつ処理する
CNN(畳み込みニューラルネットワーク)局所的な範囲をまとめて処理する

この論文は、再帰も畳み込みも一切使わず、アテンションだけを中心に据えて、ある言語を別の言語へ翻訳する系列変換モデルを構築しました。

なぜ革命的だったのか

理由は二つあります。

一つ目は、文中のすべての単語同士の関係を、直接一度に計算できるようになったことです。RNNでは、離れた単語の関係を捉えるために、間の単語を一つずつ経由する必要がありました。

二つ目は、学習時に並列計算ができるようになったことです。RNNは前の処理が終わらないと次に進めません。順番待ちが構造的に発生します。トランスフォーマーは、この順番待ちをなくしました。

結果として、学習時間が大幅に短縮され、より大規模なモデルを訓練できるようになりました。現在の大規模言語モデルは、いずれもこの構造を基礎としています。

2 アテンション機構の目的

基本的な考え方

アテンション機構とは、入力されたすべての情報を同じ重さで扱うのではなく、今の処理に関係が深い情報に重点を置く仕組みです。

身近な例で考えてみます。

黒板一面に文字が書かれた教室で、先生から質問されたとします。あなたは黒板全体を均等に眺めるでしょうか。おそらく、答えに関係のありそうな部分を探し、そこを集中して読むはずです。関係のない部分は流し読みします。

この「重要な場所に注目する」という人間の情報処理を、計算として実現したのがアテンションです。

四つのステップ

処理の流れは、次のように整理できます。

段階内容
1 注目先を決める関係のありそうな入力要素を探す
2 重要度を計算するどれくらい関連するかを数値化し、合計が1になる重みに変換する
3 情報を集約する重みに応じて情報を混ぜ合わせる
4 結果を出力する文脈が反映された新しい表現を作る

試験で問われる重要点

この重み付けは、人間が手作業でルールを決めたものではありません。AIが学習によって獲得したパラメータから、自動的に計算されます。

だからこそ、どんな文脈にも柔軟に対応できます。「関連度を求め、その重みに応じて情報を集める」という点が、アテンションの本質です。

3 セルフアテンションの仕組み

普通のアテンションとの違い

セルフアテンション(自己注意)の最大の特徴は、問い合わせ元と参照先に、まったく同じ一つの入力系列を使うことです。

自分自身に注目するため、セルフという名前が付いています。

文中のそれぞれの単語が、同じ文中の他のすべての単語との関連度を計算し、周囲の文脈に応じた新しいベクトル表現へと自分を更新します。

長距離依存関係の解決

セルフアテンションの強みは、離れた単語同士の関係を捉えられることです。これを長距離依存関係といいます。

例文で確認します。

「公園にいた犬が走ってきて、彼はボールをくわえた」

この「彼」が何を指しているかを判断するには、文のかなり前にある「犬」との結びつきを捉える必要があります。

RNNでは、間にある単語を一つずつ経由するため、距離が離れるほど情報が失われやすくなります。セルフアテンションであれば、どれだけ離れていても、途中を経由せず1ステップで直接結びつけられます。

4 クエリ、キー、バリュー

検索システムに例える

この三つの役割は、データベースの検索に例えると理解しやすくなります。

役割検索での対応内容
クエリ(Q)検索キーワード今探したい情報、注目したい単語そのもの
キー(K)見出し、索引各データが何を表すかを示すラベル
バリュー(V)データの中身実際に取り出して使う情報の本体

図書館で考えると、探したい言葉がクエリ、棚の見出しラベルがキー、本の中身がバリューです。

どこから作られるのか

重要なのは、この三つが元は同じデータから作られるという点です。

入力された単語の埋め込み表現に対し、それぞれ別の重み行列を掛ける線形変換を行うことで、Q、K、Vの三つを作り出します。

Q = XW^{Q}, \quad K = XW^{K}, \quad V = XW^{V}

同じ単語のデータを、検索キーワード用、見出し用、中身用の三種類に変身させている、と考えてください。

スケールドドットプロダクトアテンション

計算全体の流れには名前が付いています。式は次の通りです。

\text{Attention}(Q, K, V) = \text{softmax}\left( \frac{QK^{T}}{\sqrt{d_k}} \right) V

三つの段階に分けて見ていきます。

段階1はスコアの計算です。クエリとキーの内積を計算し、単語同士の関連度を表すスコアを求めます。

段階2は確率化です。スコアをキーの次元数の平方根で割ってスケーリングし、その後にソフトマックス関数を適用します。これにより、合計が1になる重みへ変換されます。

段階3は集約です。求めた重みをバリューに掛け合わせて足し合わせ、最終的な文脈表現を出力します。

なぜ平方根で割るのか

ここは試験でも問われる部分です。

ベクトルの次元が大きくなると、内積の値が極端に大きくなります。大きすぎる値にソフトマックスを適用すると、出力が0か1に極端に振れてしまい、学習が進みにくくなります。

これを防ぐためにスケーリングを行います。名前に「スケールド」が付いているのは、この処理があるためです。

数値で確認する

実際に計算してみます。三つの単語があり、あるクエリに対するスコアが次のように出たとします。

(2, 1, 4)

キーの次元数を d_k = 4 とすると、\sqrt{d_k} = 2 です。

\left( \frac{2}{2}, \frac{1}{2}, \frac{4}{2} \right) = (1, 0.5, 2)

ソフトマックスを計算します。数値の桁あふれを防ぐため、最大値の2を引いてから計算します。

(1-2, ; 0.5-2, ; 2-2) = (-1, -1.5, 0)

指数を計算します。

e^{-1} \approx 0.368, \quad e^{-1.5} \approx 0.223, \quad e^{0} = 1

合計を求めます。

0.368 + 0.223 + 1 = 1.591

各値を合計で割ります。

\left( \frac{0.368}{1.591}, \frac{0.223}{1.591}, \frac{1}{1.591} \right) \approx (0.231, 0.140, 0.629)

合計が1になっていることを確認してください。

0.231 + 0.140 + 0.629 = 1.000

この重みをバリューに掛けて足し合わせたものが、出力になります。三番目の単語の情報が最も濃く反映されることが分かります。

5 マルチヘッドアテンション

複数の視点で同時に見る

マルチヘッドアテンションは、今説明したアテンションを一つだけでなく、複数並べて同時に計算する仕組みです。

各ヘッドは独立したパラメータを持ち、並列にアテンションを計算します。

何が良いのか

一つの視点だけでは、捉えられる関係が限られます。複数のヘッドを並べることで、異なる角度から同時に観察できます。

たとえば、あるヘッドは文法的な係り受けに注目し、別のヘッドは意味の近さに注目し、さらに別のヘッドは離れた代名詞との関係に注目する、といった具合です。

一人で一つの視点から見るのではなく、専門分野の異なるチームで同時に点検する、と考えると分かりやすいでしょう。

最後に統合する

各ヘッドから出た結果は、横方向に連結され、線形変換を通して一つの出力ベクトルに統合されます。

\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) W^{O}

分けて調べ、最後に一つにまとめる。この流れが、マルチヘッドアテンションの全体像です。

なお、実務上の補足として、各ヘッドの役割は設計者が指定したものではありません。学習の結果として、自然に傾向が分かれます。試験範囲を超えますが、この点を知っておくと理解が深まります。

6 位置エンコーディング

なぜ必要なのか

ここが、セルフアテンションの構造上の弱点にあたる部分です。

セルフアテンションは、文中の単語を同時に並列計算します。その代わり、単語がどういう順番で並んでいるかを自動的には認識できません。

具体例で確認します。

「猫が魚を食べる」と「魚が猫を食べる」

使われている単語はまったく同じです。しかし順番が違うだけで、意味は正反対になります。単語を袋に詰め込んで関係を調べるだけでは、どちらが主語でどちらが目的語かを区別できません。

どうやって解決するか

トランスフォーマーでは、位置エンコーディングという仕組みで、入力データに順番の情報を付け足します。

方法は、意外なほど単純です。単語の意味を表す埋め込みベクトルに、その単語が文の何番目にあるかを示す位置情報ベクトルを、そのまま足し算します。

\text{入力} = \text{単語の埋め込み} + \text{位置情報}

別のデータとして連結するのではなく、足し合わせます。これにより、意味と並び順の両方の情報を持ったベクトルができあがります。

位置情報ベクトルの作り方

元の論文では、周期の異なる三角関数、つまりサイン関数とコサイン関数を組み合わせ、位置ごとに固有の波のパターンを作る方法が採用されました。

PE_{(pos, 2i)} = \sin\left( \frac{pos}{10000^{2i/d}} \right)

PE_{(pos, 2i+1)} = \cos\left( \frac{pos}{10000^{2i/d}} \right)

ここで pos は位置、i は次元の番号、d は埋め込みの次元数です。

波の周期を変えることで、近い位置同士の関係も、遠い位置同士の関係も滑らかに表現できます。

この方法のほかに、学習を通じて最適な位置表現を自動で獲得する、学習可能な位置埋め込みという手法も広く使われています。

試験対策のまとめ

覚えておくべきは次の一点です。

トランスフォーマーへの入力は、単語の埋め込み表現に位置情報を足し合わせたものである。

7 エンコーダの構造

役割

エンコーダは、入力された文章を読み取り、文脈をたっぷり含んだ表現へと変換する役割を持ちます。

二つのサブ層

エンコーダの一つの層は、大きく二つのサブ層で構成されます。

サブ層役割
マルチヘッドセルフアテンション単語同士のつながりを計算する
フィードフォワードネットワーク各位置の表現を個別に変換する

フィードフォワードネットワークは、それぞれの位置の単語に対して、同じ構造の全結合ネットワークを個別に適用します。表現をより複雑で扱いやすい形へと非線形変換する役割です。

単語同士の関わりを整理した後、各単語のデータをさらに加工して整えるステップ、と理解してください。

二つの工夫

この二つのサブ層を安定して学習させるため、重要な工夫が組み込まれています。

一つ目は残差接続です。英語ではレジデュアルコネクションといいます。処理前の入力をそのまま迂回させ、処理後の結果に足し合わせるバイパス経路です。

\text{出力} = \text{入力} + F(\text{入力})

これにより、層を深く重ねても元の情報が失われにくくなります。また、学習時の勾配がスムーズに流れ、勾配消失を防げます。

二つ目はレイヤー正規化です。層ごとのデータのばらつきを整え、数値を安定させる仕組みです。計算の途中で数値が極端に大きくなったり小さくなったりしないよう、バランスを取ります。

何層積むのか

エンコーダは、マルチヘッドセルフアテンション、フィードフォワードネットワーク、残差接続、レイヤー正規化をセットにしたブロックを、何段も積み重ねて使います。元の論文では6層でした。

同じブロックを繰り返し通すことで、段階的に豊かな文脈表現が作られていきます。

8 デコーダの構造

役割

デコーダは、エンコーダが作った文脈表現と、すでに自分で生成した過去の出力の二つを手がかりにして、次の単語を一つずつ予測します。

三つのサブ層

デコーダの一つの層は、三つのサブ層で構成されます。エンコーダより一つ多い構成です。

順序サブ層役割
1マスク付きマルチヘッドアテンション過去の単語だけに注目する
2クロスアテンションエンコーダの情報を受け取る
3フィードフォワードネットワーク表現を変換する

マスク付きアテンション

これは、すでに生成し終わった過去の単語だけに注目し、これから生成する未来の単語を見えなくする特別なセルフアテンションです。

未来の答えを先に見てしまっては、予測の訓練になりません。目隠しをかけている、と考えてください。

クロスアテンション

エンコーダとデコーダの架け橋となる層です。エンコーダデコーダアテンションとも呼ばれます。

ここでのQ、K、Vの出どころが、試験でよく問われます。

要素出どころ
クエリデコーダ側
キーエンコーダが作った文脈表現
バリューエンコーダが作った文脈表現

自分が今書きたい続きの内容をクエリにして、元の文章の文脈表現から関係のある部分を引っ張ってくる、という構造です。

自己回帰的な生成

出力された単語は、次のステップの入力に付け足されます。そしてまた計算し、次の単語を予測します。

このように、自分の出力を次の入力に戻しながら一単語ずつ進める生成方法を、自己回帰的な生成といいます。

9 強みと留意点

試験では、この対比が重要な出題ポイントになります。

二つの強み

強み内容
学習時の並列化系列内の複数の位置をまとめて計算でき、GPUやTPUの性能を引き出せる
長距離依存関係の把握離れた要素同士を短い経路で直接関連付けられる

三つの留意点

一つ目は、計算量の問題です。標準的なセルフアテンションでは、すべての単語同士の総当たりで関連度を計算します。そのため、計算量とメモリ消費量が、文章の長さの2乗に比例して増加します。

系列長を n とすると、計算量は次のように表されます。

O(n^2)

具体的に確認します。文章の長さが2倍になった場合、計算量は次のようになります。

\frac{(2n)^2}{n^2} = \frac{4n^2}{n^2} = 4

4倍に膨らみます。10倍の長さであれば100倍です。極端に長い文章を一度に扱うのが難しい理由が、ここにあります。

二つ目は、位置情報を外部に依存することです。セルフアテンションは語順を自前で認識できません。位置エンコーディングを別途足さなければ、単語の順番が分からなくなります。

並列に一気に計算するからこそ、順番の目印を外から補う必要がある。この因果関係を理解しておいてください。

三つ目は、生成時の逐次処理です。

最も間違えやすい落とし穴

トランスフォーマーは並列処理が得意である。この理解は正しいのですが、条件が付きます。

場面処理の仕方理由
学習時並列処理できる正解データが揃っているため、全体をまとめて計算できる
推論時(生成時)逐次処理になる直前に出力した語を使って次を予測するため

つまり、トランスフォーマーは「常にすべてを並列処理するモデル」ではありません。学習時は並列化できるが、文章を生成するときは一要素ずつ進む逐次処理になる。この区別が、試験でも実務でも重要です。

確認問題

理解度を確認してください。解答は各問題の直後にあります。

問題1

スケールドドットプロダクトアテンションにおいて、スコアをキーの次元数の平方根で割る理由として、最も適切なものはどれか。

ア 計算量を削減するため イ 内積の値が大きくなりすぎて学習が不安定になるのを防ぐため ウ 単語の順番を表現するため エ 出力の合計を1にするため

解答 イ

解説します。次元数が大きくなると内積の値が極端に大きくなり、ソフトマックスの出力が偏って勾配が小さくなります。これを防ぐためのスケーリングです。

アは誤りです。この除算は計算量を減らしません。ウは位置エンコーディングの役割です。エはソフトマックス関数の役割であり、スケーリングとは別の処理です。

問題2

セルフアテンションについて、正しい記述はどれか。

ア クエリとキーに異なる系列を使う イ 単語の順番を自動的に認識できる ウ 同じ系列の要素同士の関連度を計算する エ 再帰的な構造によって文脈を保持する

解答 ウ

解説します。セルフアテンションは、クエリ、キー、バリューのすべてに同じ入力系列を使い、系列内の要素同士の関係を計算します。

アはクロスアテンションの説明です。イは誤りで、語順を認識できないため位置エンコーディングが必要になります。エはRNNの説明です。

問題3

デコーダのクロスアテンションにおいて、キーとバリューの出どころとして正しいものはどれか。

ア どちらもデコーダ側 イ どちらもエンコーダの出力 ウ キーはデコーダ側、バリューはエンコーダの出力 エ キーはエンコーダの出力、バリューはデコーダ側

解答 イ

解説します。クロスアテンションでは、クエリがデコーダ側から、キーとバリューがエンコーダの出力から供給されます。デコーダが「今書きたい内容」を問い合わせ、入力文の文脈表現から関連情報を取り出す構造です。

アはセルフアテンションの構成です。ウとエは、キーとバリューを分離しており誤りです。

問題4

トランスフォーマーの並列処理について、正しい記述はどれか。

ア 学習時も推論時も完全に並列処理される イ 学習時は並列処理できるが、生成時は逐次処理になる ウ 学習時は逐次処理で、生成時は並列処理になる エ どちらの場面でも逐次処理である

解答 イ

解説します。学習時は正解データが揃っているため全体をまとめて計算できますが、生成時は直前の出力を次の入力に使うため、一語ずつ進む必要があります。

アは最も選ばれやすい誤答です。並列処理という特徴が強調されるため、条件を見落としやすくなります。ウは並列と逐次が逆です。エはRNNに近い記述であり、学習時の特徴を捉えていません。

問題5

セルフアテンションの計算量について、系列長を n としたときの関係として正しいものはどれか。

ア n に比例する イ n の2乗に比例する ウ n の対数に比例する エ n に依存しない

解答 イ

解説します。すべての要素同士の組み合わせについて関連度を計算するため、計算量とメモリ消費は O(n^2) となります。

アは線形の計算量で、一部の効率化手法が目指す水準です。ウとエは、総当たりの計算という性質と矛盾します。

学習の進め方

この分野を学習する際の順序を示します。

  1. RNNの限界を先に理解する。順番待ちと情報の消失
  2. アテンションの目的を、黒板の例のような直感で押さえる
  3. Q、K、Vを検索システムに対応づける
  4. 計算の三段階を、実際に数値で追う
  5. 位置エンコーディングがなぜ必要かを、語順が逆の例文で確認する
  6. エンコーダとデコーダの構成要素を表で整理する
  7. 強みと留意点を対比で覚える

所要時間は、演習を含めて3時間程度が目安です。

つまずきやすいのは、4番と7番です。4番は計算を飛ばして用語だけ覚えようとすると定着しません。7番は、並列処理の条件を見落としやすい部分です。

まとめと次の学習ステップ

トランスフォーマーは、アテンション、位置情報、フィードフォワード、残差接続と正規化という四つの柱で成り立っています。

アテンションは関連度に応じて情報を重み付きで集める仕組みです。セルフアテンションは同じ系列内の要素同士の関係を捉えます。クエリとキーで注目度を計算し、バリューの情報を集約します。マルチヘッドにより複数の見方を同時に扱えます。位置エンコーディングが語順の情報を与えます。原型は、文脈表現を作るエンコーダと、文章を生成するデコーダで構成されます。

そして、学習時は並列化しやすい一方、長い系列での計算量の増大と、生成時の逐次処理には留意が必要です。

次の学習ステップとしては、この基礎の上に立つ発展モデルへ進んでください。エンコーダを中心に据えたBERT、デコーダを中心に据えたGPT。どちらもトランスフォーマーの一部を取り出して発展させたものです。今回の内容を理解していれば、両者の違いが構造から説明できるようになります。

なお、生成AIパスポート試験のシラバスは改定されます。2026年2月試験から新しいシラバスが適用され、最新技術や法制度に関する項目が追加されています。学習を始める前に、生成AI活用普及協会の公式サイトで最新の出題範囲をご確認ください。

セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。