コンテキストウィンドウ
大規模言語モデル(LLM)におけるコンテキストウィンドウとは、モデルが応答を生成する際に考慮できるテキストの量であり、一貫性のあるテキストを理解し生成する能力に影響します。
大規模言語モデル(LLM)のコンテキストウィンドウは、モデルが出力を生成する際に同時に処理および考慮できる最大トークン数(単語、サブワード、または文字)を定義します。このウィンドウは、モデルの短期記憶として機能し、入力プロンプトとそれ以前に生成されたテキストを含みます。より大きなコンテキストウィンドウにより、LLMは会話やドキュメントからより多くの情報を保持でき、一貫性、関連性、および複雑な指示や長い物語の理解が向上します。たとえば、4,096トークンのコンテキストウィンドウを持つモデルは、約3,000語のテキストまで「記憶」できます。LLMのアーキテクチャ、特にアテンションメカニズム(例:Transformerにおける自己アテンション)は、このウィンドウをどれだけ効率的に利用できるかを決定します。トレードオフが存在します。より大きなコンテキストウィンドウは、大幅に多くの計算リソース(メモリと処理能力)を必要とし、推論中のレイテンシの増加につながる可能性があります。さらに、モデルは「真ん中で迷子になる」現象に苦労する可能性があり、非常に長いコンテキストの真ん中にある情報は、最初または最後の情報よりも効果的に利用されない場合があります。スライディングウィンドウアテンション、スパースアテンション、または検索拡張生成(RAG)などの技術は、これらの制限を緩和し、効果的なコンテキスト処理を拡張するために使用されます。
graph LR
Center["コンテキストウィンドウ"]:::main
Pre_computer_science["computer-science"]:::pre --> Center
click Pre_computer_science "/terms/computer-science"
Rel_large_language_model["large-language-model"]:::related -.-> Center
click Rel_large_language_model "/terms/large-language-model"
Rel_hallucination_ai["hallucination-ai"]:::related -.-> Center
click Rel_hallucination_ai "/terms/hallucination-ai"
Rel_token["token"]:::related -.-> Center
click Rel_token "/terms/token"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 理解度チェック
🧒 5歳でもわかるように説明
[LLM](/ja/terms/llm)のノートのようなもので、回答を書くときに現在のページに収まるものしか覚えていられません。
🤓 Expert Deep Dive
コンテキストウィンドウのサイズは、通常トークンで測定され、LLMが長距離の依存関係を必要とするタスクを実行する能力に直接影響を与える重要なアーキテクチャパラメータです。現代のLLMで主流となっているTransformerベースのアーキテクチャは、自己アテンションメカニズムを採用しています。標準的な自己アテンションの計算複雑度は、シーケンス長N(コンテキストウィンドウサイズ)に対して二次関数的に($O(N^2)$)スケールするため、非常に大きなウィンドウはメモリと計算の観点から費用がかかりすぎます。このため、スパースアテンション(例:Longformer、BigBird)、線形アテンション、検索拡張生成(RAG)などの効率的なアテンションバリアントに関する研究が促進されています。たとえば、RAGは、外部知識検索システムでLLMを拡張し、関連情報を動的に取得することで、固定ウィンドウを超えてアクセス可能な「コンテキスト」を効果的に拡張します。位置エンコーディング(例:絶対、相対、ロータリー)などのアーキテクチャの選択も、モデルがウィンドウ内のトークンの位置をどれだけうまく解釈できるかに影響します。エッジケースには、新しいデータでファインチューニングする際の破滅的忘却や、前述の「真ん中で迷子になる」問題が含まれます。これは、プロンプトの最初または最後のトークンから遠く離れた位置にあるトークンのアテンションスコアが低下する可能性があります。