Transformer
注意機構(Attention)ベースの系列モデリング用ニューラルネットワークアーキテクチャ
概要
Transformerは、系列中のトークン間の関係を自己注意機構(Self-Attention)のみでモデル化するニューラルネットワークアーキテクチャ。従来主流だったRNNの逐次処理やCNNの局所的な畳み込みを用いず、系列内の全トークンペア間の関連度を一度に計算することで、離れた位置にある単語同士の依存関係も直接捉えられる。この設計により学習を系列長方向に並列化でき、GPUクラスタでの大規模分散学習が現実的になった。テキストのみならず画像(Vision Transformer)、音声、マルチモーダル入力にも応用範囲が拡大しており、現在の深層学習モデルの大半が何らかの形でTransformerブロックを採用している。
背景
RNNの逐次処理によるボトルネックを解消するために考案された。並列学習を可能にし、長距離依存関係のモデリング性能を向上させる。
歴史
2017年: Vaswani らが「Attention Is All You Need」を発表。2018-2019年: BERTとGPTがTransformerを事前学習へ応用。2020年代: NLP・画像・音声を横断する支配的アーキテクチャに。
アーキテクチャ
エンコーダ・デコーダ(またはデコーダのみ)構成。マルチヘッド自己注意層と位置ごとのフィードフォワード層を、残差接続と層正規化とともに積み重ねる。
ワークフロー
入力トークン → 埋め込み+位置エンコーディング → 注意機構/FFNブロックの積み重ね → 出力射影(例: 次トークンのロジット)。
コード例
最小構成の自己注意機構(PyTorch)
import torch.nn.functional as F
def self_attention(q, k, v):
scores = q @ k.transpose(-2, -1) / (q.size(-1) ** 0.5)
weights = F.softmax(scores, dim=-1)
return weights @ v利点
- RNNと比較して学習の並列化が容易
- 注意機構により長距離依存関係を捉えられる
- データと計算量に対して性能が予測可能にスケールする
欠点
- 系列長に対して計算量が2乗で増加する
- 汎化には大量の学習データを要する
比較
- LLM — LLMはTransformerアーキテクチャを大規模に応用したもの
- ニューラルネットワーク — Transformerはニューラルネットワークの一種で、自己注意機構に特化したアーキテクチャ
- RNN — TransformerはRNNの逐次処理によるボトルネックを解消し、並列学習を可能にしたアーキテクチャ
- Attention — TransformerはAttention機構(特に自己注意)のみで構成されたアーキテクチャ
関連用語
よくある質問
Transformerはテキスト専用?
いいえ。画像(ViT)、音声、マルチモーダルタスクにも使われる。
参考文献
- Research PaperAttention Is All You Need
- GitHubtensor2tensor reference implementation