メインコンテンツへスキップ

7.3.1 Transformer 深掘りロードマップ:Block、Mask、コスト

この章では Transformer の内部を少し深く見ます。LLM の挙動をデバッグし、context length、attention、KV cache、モデル変種がなぜ重要かを理解します。

まず内部フローを見る

Transformer 深掘り章関係図

Transformer 情報フロー、計算コスト、タスク適合図

causal mask を作る

seq_len = 4
mask = []
for query_pos in range(seq_len):
row = []
for key_pos in range(seq_len):
row.append("allow" if key_pos <= query_pos else "block")
mask.append(row)

for row in mask:
print(row)

出力:

['allow', 'block', 'block', 'block']
['allow', 'allow', 'block', 'block']
['allow', 'allow', 'allow', 'block']
['allow', 'allow', 'allow', 'allow']

Causal mask 実行結果図

生成ではこの「未来を見ない」ルールを使います。token は前の token を見られますが、未来 token は見られません。

この順番で学ぶ

順番読むまず見ること
17.3.2 アーキテクチャ復習attention、残差、正規化
27.3.3 現代 Decoder Blockdecoder-only LLM block
37.3.4 モデル変種encoder、decoder、encoder-decoder
47.3.5 効率的 AttentionKV cache、MQA/GQA、長い context
57.3.6 スケールと計算コスト、遅延、メモリ

合格ライン

decoder-only モデルになぜ causal mask が必要か、context が長くなるほど attention が高価になる理由、KV cache が生成を助ける理由を説明できれば合格です。