AI・機械学習
上級
Landmark Attention(ランドマークアテンション)
UIUCが提案した検索ベースのLLMコンテキスト延長手法。コンテキストをブロック分割しランドマークトークンで索引化、必要なブロックのみを選択的に取得することで大規模コンテキストを効率的に処理する。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
長文コンテキスト
検索拡張
ブロックアテンション
KVキャッシュ
コンテキスト圧縮
Landmark Attention
Landmark Attention(ランドマークアテンション)は、イリノイ大学アーバナシャンペーン校(UIUC)の研究者によって2023年に提案されたコンテキスト延長手法で、長いシーケンスを効率よく処理するために検索ベースのアテンション機構を採用している。
基本的な考え方
Landmark Attentionの核心的なアイデアは「コンテキスト全体を等しく処理しない」こと:
- 入力シーケンスをブロック(例: 50トークンごと)に分割
- 各ブロックの末尾に「ランドマークトークン(landmark token)」を挿入
- ランドマークトークンは対応するブロックの内容を集約した埋め込みを持つ
- クエリ生成時にランドマークトークンに対してのみ第一段階のアテンションを計算
- アテンションスコアが高い上位kブロックのKVキャッシュのみを最終アテンションに使用
この2段階検索により、O(n²)のアテンション計算をO(n/B × k)に削減する(B: ブロックサイズ、k: 選択ブロック数)。
実装詳細
# Landmark Attention のブロック選択概念(擬似コード)
class LandmarkAttention:
def __init__(self, block_size=50, top_k_blocks=8):
self.block_size = block_size
self.top_k = top_k_blocks
def forward(self, query, context_blocks, landmark_tokens):
# Step 1: ランドマークトークンへの高速アテンション計算
landmark_scores = attention(query, landmark_tokens)
# Step 2: スコア上位kブロックを選択
top_k_indices = landmark_scores.topk(self.top_k).indices
# Step 3: 選択ブロックのKVキャッシュのみでアテンション計算
selected_kv = [context_blocks[i] for i in top_k_indices]
output = attention(query, selected_kv)
return output
ランドマークトークンの学習
ランドマークトークンは通常のファインチューニングで学習される:
- 学習時に特殊なランドマークトークン識別子を語彙に追加
- 各ブロック末尾に配置して前方のコンテキストを自然言語処理で集約
- ランドマークへのアテンションが後続ブロックへのアクセスを制御する
StreamingLLM・LM-Infiniteとの比較
| 手法 | 情報保持 | 計算効率 | ファインチューニング |
|---|---|---|---|
| StreamingLLM | 冒頭+直近のみ | 高 | 不要 |
| LM-Infinite | 冒頭+直近のみ | 高 | 不要 |
| Landmark Attention | 関連ブロック選択 | 中 | 必要 |
| YaRN | 全コンテキスト | 低(長文で低下) | 少量必要 |
Landmark Attentionは「情報の損失なし、ただし関連性に基づいて選択」というRAG的な思想をアテンション機構に直接統合した点が独自性。
性能評価
論文では、LLaMAをLandmark Attentionでファインチューニングしたモデルが:
- 元の学習コンテキスト(2048トークン)の10-25倍の長さ(20K-50Kトークン)を処理
- 標準的な長文ベンチマークで全コンテキストモデルに匹敵する精度
- KVキャッシュメモリ使用量を70-90%削減
限界
- ランドマークトークンによるファインチューニングが必須(既存モデルに直接適用不可)
- ブロック境界での情報分断リスク(適切なブロック分割が重要)
- RAG同様、ランドマークスコアで重要ブロックを正確に特定できない場合に情報損失
- 追加の特殊トークンにより実効的なシーケンス長が伸びる
実用的な位置づけ
Landmark Attentionは純粋な「長文対応のためのアーキテクチャ改変」アプローチとして、YaRN(位置エンコーディング改良)やStreamingLLM(キャッシュ管理)とは異なる解法を提示している。特に特定ドメインに特化したLLMを大規模長文コーパスでファインチューニングするシナリオで強みを発揮する。