👻

Transformerとは何か?LLMにおけるその役割と仕組み

2024/09/08に公開

Transformerとは何か?LLMにおけるその役割と仕組み

自然言語処理(NLP)の分野における大規模言語モデル(LLM)は、近年大きな進展を遂げており、その中心技術がTransformerです。数式とともにTransformerの構造と役割について解説し、LLMにおけるTransformerの重要性を紹介します。

Transformerの概要

Transformerは、2017年に発表された「Attention Is All You Need」という論文で初めて提案されました。このモデルは、従来のリカレントニューラルネットワーク(RNN)などに比べ、並列処理を用いることで効率的に大規模データを処理することができるため、大規模言語モデルの学習に特に適しています。

Transformerは、主に2つの構造から成り立っています。

  1. エンコーダ(Encoder):入力データを処理し、内部表現を生成する。
  2. デコーダ(Decoder):エンコーダから得られた内部表現をもとに、出力を生成する。

LLMの種類によって、エンコーダのみ、デコーダのみ、あるいはその両方を使用します。たとえば、GPTシリーズはデコーダを利用する代表的なモデルです。

Attention(アテンション)機構の理解

Transformerの最大の革新はアテンション機構です。アテンション機構は、入力シーケンス内の各単語の関連性を評価し、重要な情報に注目する仕組みです。ここでは、アテンション機構を数式で説明します。

アテンション機構の計算式

アテンション機構では、QueryKey、およびValueのベクトルを使用します。

\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V
  • Q:Queryベクトル
  • K:Keyベクトル
  • V:Valueベクトル
  • d_k:Keyベクトルの次元数

まず、QKの内積を取り、その結果をKeyの次元数 d_k の平方根でスケーリングします。その後、softmax関数を適用してスコアを正規化し、Valueベクトル V に使用します。これにより、モデルは入力シーケンス内の重要な単語やトークンに重点を置いた処理が可能になります。

Multi-Head Attention

マルチヘッドアテンションは、複数のアテンション機構を並列で処理する仕組みです。これにより、モデルは異なる部分に焦点を当て、より多角的にデータを学習できます。

Multi-Head Attentionの計算式

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

各ヘッドの計算は次のように行われます。

\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)
  • W_i^Q, W_i^K, W_i^V:各ヘッドに対する線形変換行列
  • W^O:出力重み行列

複数のヘッドによるアテンションの結果を連結し、最終的に出力重み行列 W^Oを用いて統合します。この処理により、異なる視点からの情報を効率よく学習することができます。

Positional Encoding

Transformerはシーケンシャルなデータ処理を行わないため、単語やトークンの順序情報を保持するためにPositional Encodingを使用します。論文では、位置情報を固定のサイン波とコサイン波を用いてエンコーディングしています。

具体的には、次のように位置情報が埋め込まれます。

PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{\frac{2i}{d}}}\right)
PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{\frac{2i}{d}}}\right)
  • pos:単語の位置
  • i:次元インデックス
  • d:埋め込みベクトルの次元数

このように、単語の位置に基づく情報がベクトルに追加されます。ただし、後続の研究では、学習可能な位置エンコーディングも採用されています。

Feed Forward Networks

各アテンションブロックの後には、フィードフォワードネットワーク(FFN)が存在します。FFNは、各単語ごとに独立して使用される2層の全結合ネットワークです。

\text{FFN}(x) = \text{max}(0, xW_1 + b_1)W_2 + b_2
  • W_1, W_2:重み行列
  • b_1, b_2:バイアス

ReLU関数を用いて非線形変換を行い、各トークンに対する処理を行います。

残差接続とレイヤー正規化

Transformerの各サブレイヤー(Add,Norm)には、残差接続レイヤー正規化が施されています。これにより、モデルの学習が安定し、勾配消失や爆発問題を防ぐことができます。

  • 残差接続:各サブレイヤーの入力と出力を加算します。
  • レイヤー正規化:データの分布を正規化し、学習効率を向上させます。

出力層

  • 線形変換は、前の層からの出力 h に対して次のように定義されます。

    z = W_o h + b
    • ここで、W_o は出力層の重み行列、b はバイアスです。
  • Softmax関数は、線形変換の結果 z に適用され、各単語に対する確率分布を計算します。

    y = \mathrm{softmax}(z)
    • ここで、y は語彙内の各単語の確率分布を表します。

この出力層によって、次に生成される単語の確率分布が求められ、テキスト生成や翻訳の際に利用されます。

まとめ

このようにTransformerは、NLPにおいて革新的な技術です。特に、アテンション機構を活用することで、長距離依存関係を効率的に学習し、LLMの性能を大きく向上させました。さらに、Transformerは大規模なデータセットでの学習に適しており、GPTなどのモデルで採用されています。

Discussion