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 モデルの「作業記憶」のようなものです。大きければ大きいほど多くの情報を同時に扱えますが、コストや処理時間との トレードオフがあります。

重要なポイント

  1. サイズの違い - モデルによって 8K〜2M トークンと大きく異なる
  2. トークン換算 - 日本語は1文字あたり約1〜2トークン
  3. 用途に応じた選択 - 短い会話なら小さいウィンドウ、長文分析なら大きいウィンドウ
  4. 管理戦略 - 要約、スライディングウィンドウ、重要度ベース保持などで効率化
  5. 注意力の低下 - 長すぎると中間部分の情報を見落とす可能性

コンテキストウィンドウを理解し、適切に管理することで、AI の性能を最大限に引き出すことができます。タスクの性質に合わせて、最適なモデルと戦略を選びましょう。