- HOME >
- Jamstack用語集 >
- Context Window
Context Window
コンテキストウィンドウ
Context Window を分かりやすく
Context Window(コンテキストウィンドウ)は、AI が一度に「見ることができる」テキストの量です。
例え話をしましょう。あなたが本を読んでいるとき、一度に見える範囲は限られていますよね。
短い記憶の人
- 1ページしか覚えられない
- 前のページの内容は忘れてしまう
- 長い物語の流れを追うのが難しい
長い記憶の人
- 100ページ分覚えられる
- 最初から最後まで一貫して理解できる
- 伏線も覚えていて、後の展開に気づける
AI のコンテキストウィンドウも同じです。ウィンドウが大きいほど、多くの情報を同時に考慮できます。
トークンとは何か
コンテキストウィンドウのサイズは「トークン」という単位で表されます。トークンは、AI がテキストを処理する際の最小単位です。
日本語の場合
- 1文字 ≈ 1〜2トークン
- 「こんにちは」≈ 5〜6トークン
- 「今日は良い天気ですね」≈ 10〜12トークン
英語の場合
- 1単語 ≈ 1〜2トークン
- "Hello" ≈ 1トークン
- "Today is a beautiful day" ≈ 6トークン
つまり、8,000トークンのコンテキストウィンドウなら、日本語で約4,000〜6,000文字、英語なら約6,000単語を一度に処理できます。
主要モデルのコンテキストウィンドウ
各 AI モデルのコンテキストウィンドウは大きく異なります。
| モデル | コンテキストウィンドウ | 日本語換算 | 用途 |
|---|---|---|---|
| GPT-3.5 Turbo | 16K トークン | 約8,000〜12,000文字 | 一般的な会話 |
| GPT-4 | 8K〜128K トークン | 約4,000〜96,000文字 | 短文〜長文 |
| GPT-4 Turbo | 128K トークン | 約64,000〜96,000文字 | 長文書類 |
| Claude 3 Haiku | 200K トークン | 約100,000〜150,000文字 | 超長文 |
| Claude 3.5 Sonnet | 200K トークン | 約100,000〜150,000文字 | 超長文 |
| Gemini 1.5 Pro | 最大2M トークン | 約1,000,000〜1,500,000文字 | 書籍丸ごと |
Gemini 1.5 Pro の 2M トークンは、小説1冊分以上を一度に処理できる驚異的なサイズです。
コンテキストウィンドウの重要性
コンテキストウィンドウのサイズは、AI ができることに直接影響します。
短いコンテキストウィンドウの制限
問題1: 長文が処理できない
- 長い文書を要約できない
- 複数の資料を同時に参照できない
- 書類全体の分析ができない
問題2: 会話履歴が失われる
ユーザー: 私の名前は田中です
AI: はじめまして、田中さん
(50回のやり取り後...コンテキストが溢れる)
ユーザー: 私の名前を覚えていますか?
AI: 申し訳ございません、以前のやり取りが見えなくなっています問題3: 複雑なタスクが難しい
- 複数のステップを踏む推論ができない
- コードの全体像を把握できない
- 長い文脈を必要とする創作ができない
長いコンテキストウィンドウの利点
利点1: 長文書類の分析
- 契約書全体を一度に確認
- 論文の詳細な分析
- 小説の構成や伏線の分析
利点2: 複数資料の比較
同時に処理できるもの:
- 3つの企画書を比較分析
- 複数の論文から共通点を抽出
- 異なる時期のレポートを対比利点3: 長い会話の維持
- 数時間の会話履歴を保持
- 以前の発言を正確に参照
- 一貫性のある対話
コンテキストウィンドウの管理戦略
実際のアプリケーションでは、コンテキストウィンドウを効率的に管理する必要があります。
戦略1: 要約して圧縮
古い会話を要約することで、重要な情報だけを残します。
【圧縮前】(1,500トークン)
ユーザー: 今日の天気はどうですか?
AI: 今日は晴れで、気温は25度です。
ユーザー: 傘は必要ですか?
AI: 今日は晴れなので、傘は不要です。
...(長い会話)
【圧縮後】(200トークン)
過去の会話要約: ユーザーは天気について質問。今日は晴れで25度、傘不要。戦略2: スライディングウィンドウ
最新のN件の会話だけを保持し、古いものは破棄します。
ウィンドウサイズ: 最新10件
[古] メッセージ1 ← 破棄
[古] メッセージ2 ← 破棄
[新] メッセージ3 ← 保持
[新] メッセージ4 ← 保持
...
[新] メッセージ12 ← 保持(最新)戦略3: 重要度に基づく保持
すべてのメッセージを平等に扱うのではなく、重要なものだけを残します。
保持優先度:
1. ユーザーの名前や基本情報(最優先)
2. タスクの目的や制約条件
3. 最近の会話
4. その他の雑談(最低優先)戦略4: 外部メモリの活用
コンテキストウィンドウに入りきらない情報は、データベースに保存します。
コンテキストウィンドウ内:
- 現在の会話(最新5件)
- ユーザーの基本情報
- 現在のタスク
データベース:
- 過去の全会話履歴
- ユーザーの詳細プロフィール
- 以前のタスク結果コンテキストウィンドウの限界
長いコンテキストウィンドウにも課題があります。
課題1: コストの増加 コンテキストウィンドウが大きいほど、処理コストが高くなります。
料金例(仮想):
- 8K トークン: $0.01 / リクエスト
- 128K トークン: $0.10 / リクエスト(10倍)
- 2M トークン: $1.00 / リクエスト(100倍)課題2: レスポンス時間 処理するテキストが多いほど、応答が遅くなります。
課題3: 注意力の低下
興味深いことに、コンテキストが長すぎると、AI が重要な情報を見落とすことがあります。これを「迷子問題(Lost in the Middle)」と呼びます。
[最初の部分] ← よく見る
[中間の部分] ← 見落としがち(重要な情報が埋もれる)
[最後の部分] ← よく見る実用的なヒント
コンテキストウィンドウを効果的に使うためのヒントです。
ヒント1: 重要な情報は最初と最後に AI は最初と最後の情報をよく認識するため、重要な指示や質問はこの位置に配置しましょう。
ヒント2: モデルの選択 タスクに応じて適切なモデルを選びます。
- 短い会話: GPT-3.5 Turbo(コスト効率が良い)
- 長文要約: Claude 3.5 Sonnet(200K トークン)
- 超長文分析: Gemini 1.5 Pro(2M トークン)
ヒント3: チャンクに分割 非常に長い文書は、意味のある単位で分割して処理します。
【分割前】
書籍全体(300,000文字)→ 一度に処理できない
【分割後】
第1章(30,000文字)→ 処理 ✓
第2章(35,000文字)→ 処理 ✓
第3章(28,000文字)→ 処理 ✓
...
最後に全体を統合まとめ
Context Window は、AI モデルの「作業記憶」のようなものです。大きければ大きいほど多くの情報を同時に扱えますが、コストや処理時間との トレードオフがあります。
重要なポイント
- サイズの違い - モデルによって 8K〜2M トークンと大きく異なる
- トークン換算 - 日本語は1文字あたり約1〜2トークン
- 用途に応じた選択 - 短い会話なら小さいウィンドウ、長文分析なら大きいウィンドウ
- 管理戦略 - 要約、スライディングウィンドウ、重要度ベース保持などで効率化
- 注意力の低下 - 長すぎると中間部分の情報を見落とす可能性
コンテキストウィンドウを理解し、適切に管理することで、AI の性能を最大限に引き出すことができます。タスクの性質に合わせて、最適なモデルと戦略を選びましょう。