Transformerとは
注意機構(Attention)ベースの系列モデリング用ニューラルネットワークアーキテクチャ
ひとことで言うと
文章中の単語同士の関係を見比べながら処理する仕組み。今のほとんどのAIモデルの土台になっている技術。
概要
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利点
欠点
- 系列長に対して計算量が2乗で増加する
- 汎化には大量の学習データを要する
比較
- LLM — LLMはTransformerアーキテクチャを大規模に応用したもの
- ニューラルネットワーク — Transformerはニューラルネットワークの一種で、自己注意機構に特化したアーキテクチャ
- RNN — TransformerはRNNの逐次処理によるボトルネックを解消し、並列学習を可能にしたアーキテクチャ
- Attention — TransformerはAttention機構(特に自己注意)のみで構成されたアーキテクチャ
- BERT — BERTはTransformerのエンコーダ部分のみを用いた双方向の事前学習済み言語モデル
- KVキャッシュ — KVキャッシュは、Transformerの自己回帰生成におけるAttention再計算を省く最適化手法
- Seq2Seq — TransformerはSeq2Seqの発展形で、RNNの代わりに自己注意機構でEncoder・Decoderを構成する
関連用語
よくある質問
参考文献
- Research PaperAttention Is All You Need
- GitHubtensor2tensor reference implementation