AI・機械学習
中級

セレクティブコンテキスト圧縮(セレクティブコンテキストアッシュク)

LLMへの入力コンテキストから自己情報(Self-Information)スコアが低い冗長な文を選択的に削除するプロンプト圧縮手法。外部モデル不要でPerplexityベースの簡易実装が可能。

0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
プロンプト圧縮
自己情報量
Perplexity
コンテキスト削減
RAG

セレクティブコンテキスト圧縮

セレクティブコンテキスト圧縮(Selective Context Compression)は、LLMへの入力を自己情報量(Self-Information)に基づいてフィルタリングする手法。2023年にXin et al.が提案した初期のプロンプト圧縮アプローチのひとつ。

自己情報量の概念

情報理論における自己情報量 I(x) = -log P(x)。

  • P(x)が高い(よく出現するトークン)→ 自己情報量低い → 冗長・削除候補
  • P(x)が低い(希少なトークン)→ 自己情報量高い → 重要・保持候補

これをLLMのPerplexityで近似することで、文中の「情報量の低い部分」を特定できる。

処理手順

  1. 小規模LLM(GPT-2 / OPT等)でコンテキストの各センテンスのPerplexityを計算
  2. Perplexityが低い(冗長な)文を除去
  3. 残った文をLLMへの入力として使用
from transformers import GPT2LMHeadModel, GPT2Tokenizer
import torch

def compute_perplexity(text, model, tokenizer):
    inputs = tokenizer(text, return_tensors="pt")
    with torch.no_grad():
        loss = model(**inputs, labels=inputs["input_ids"]).loss
    return torch.exp(loss).item()

他手法との比較

手法精度速度追加学習実装難易度
セレクティブコンテキスト中速い不要低
LLMLingua高中不要中
LLMLingua-2高速い要(済モデル利用可)中
RECOMP非常に高遅い要高

限界

  • センテンス単位の削除のため細かい粒度制御が難しい
  • Perplexityが低くても文脈的に重要な文が削除されるリスク
  • LLMLingua系と比べると精度が劣るケースが多い

まとめ

セレクティブコンテキスト圧縮は「追加学習なしで即実装できる」シンプルなプロンプト圧縮の入門手法。本番環境ではLLMLingua-2等に移行することが多い。

この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/6