Transformer
transformer
一言で言うと
2017 年の論文「Attention Is All You Need」で発表された深層学習アーキテクチャ。Self-Attention を中心にして GPT・BERT・Claude などの基盤になっている。
もう少し詳しく
一言で言うと
2017 年の論文「Attention Is All You Need」で発表された深層学習アーキテクチャ。Self-Attention を中心にして GPT・BERT・Claude などの基盤になっている。
詳細
Transformer 以前の RNN / LSTM は文章を 1 トークンずつ順番に処理していたため、長文での記憶喪失と並列化の難しさが課題でした。Transformer は Self-Attention という仕組みで「文の中のどの単語がどの単語に注目すべきか」を全単語間で同時に計算します。これにより GPU 並列化が一気に進み、巨大モデルの学習が現実的になりました。
オリジナルは Encoder (理解) と Decoder (生成) の 2 段構成でした。その後、用途別に派生しています。
具体例
# Hugging Face transformers で BERT を呼ぶ最小例
from transformers import AutoTokenizer, AutoModel
import torchtok = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModel.from_pretrained("bert-base-uncased")
inputs = tok("Transformers changed NLP forever.", return_tensors="pt")
with torch.no_grad():
out = model(inputs)
# 各トークンの 768 次元ベクトル (= attention で文脈を取り込んだ状態)
print(out.last_hidden_state.shape) # torch.Size([1, 7, 768])
中核の Multi-Head Attention は、入力を 8 や 12 個の「ヘッド」に分け、それぞれ別の観点 (主語-動詞関係、固有名詞、共参照など) で重み付けを学習します。最後にそれらを結合することで、複数の文脈関係を同時に捉えます。
使い分け / トレードオフ
「自分で Transformer を学習する」場面は 2026 年現在ほぼゼロです。事前学習済みモデル (Llama、Qwen、GPT-OSS) をファインチューニングするか、API (OpenAI / Anthropic / Google) を叩くのが現実解です。
計算量は系列長 N に対して O(N²)** で、長文ほど二乗で重くなります(N が 2 倍になると計算量は約 4 倍に増えます)。これを緩和する FlashAttention・Sliding Window・MoE (Mixture of Experts) などの工夫が現役のフロンティアです。