コンテンツにスキップ

6.5.1 Transformer ロードマップ:Attention で token 同士を見る

Transformer は深層学習から現代 LLM への橋です。最初の直感は単純です。各 token が、どの他 token を重要視するかを決めます。

Transformer 章関係図

Transformer グローバル文脈モデリング図

概念最初の意味
token系列内の1つの位置
Q / K / Vtoken の query、key、value 視点
attention weightある token が別の token をどれくらい見るか
blockattention と feed-forward による表現の更新
mask生成時に未来 token を見ないための制御

transformer_first_loop.py を作り、torch をインストールしてから実行します。

import torch
attention = torch.nn.MultiheadAttention(embed_dim=8, num_heads=2, batch_first=True)
tokens = torch.randn(1, 4, 8)
output, weights = attention(tokens, tokens, tokens)
print("tokens_shape:", tuple(tokens.shape))
print("output_shape:", tuple(output.shape))
print("attention_shape:", tuple(weights.shape))

出力:

tokens_shape: (1, 4, 8)
output_shape: (1, 4, 8)
attention_shape: (1, 4, 4)

attention_shape[batch, query_position, key_position] です。4つの位置それぞれが4つの位置を見られます。

順番読むまず見ること
16.5.2 Attention 機構QKV、attention 重み、mask
26.5.3 Transformer アーキテクチャblock 構造、残差、feed-forward 層

Attention bridge note を 1 つ作ります。

トークン
シーケンス内の位置
attention の形状
[batch, query_position, key_position]
QKVの意味
query が問い、key が一致を見つけ、value が内容を運ぶ
マスクの理由
生成は未来のトークンを見てはいけない
LLM への橋渡し
デコーダーブロックはコンテキストを次トークンのスコアに変換する

attention 重みの形を読み、attention がなぜグローバル文脈を持てるかを説明し、mask をテキスト生成と結びつけられれば合格です。

確認の考え方と解説
  1. 合格レベルの答えでは、tensor、model layer、loss、backward()、optimizer update を1つの学習ループとしてつなげます。
  2. 証拠には、動く小さな実験、tensor shape の確認、説明できる loss または validation curve を含めます。
  3. shape mismatch、loss が下がらない、過学習、data leakage、Attention/Transformer の data flow を説明できない、といった失敗例を1つ言えればよいです。