コンテキストウィンドウ

コンテキストウィンドウとは

コンテキストウィンドウは、[[生成AI・LLM]] が一度に扱える情報量の上限です。単位は [[トークンとトークナイザ]] で学ぶトークン数で表され、入力(プロンプトや会話履歴)と出力の合計がこの枠に収まる必要があります。

人間に例えると「作業机の広さ」です。机に載せた資料は参照できますが、載り切らない資料は見えません。LLM も、コンテキストウィンドウに入っていない情報は存在しないのと同じです。

何が起きるのか:会話が「忘れられる」仕組み

チャットで長く会話していると、AIが最初の方の話を忘れたように見えることがあります。これは記憶力の問題ではなく、古い履歴がウィンドウから押し出された(または要約されて省略された)ためです。

  • LLM 自体は会話を記憶しません。毎回、履歴全体をまとめて入力し直しているだけです
  • 履歴がウィンドウを超えると、古い部分を削るか要約する必要があります
  • ウィンドウが大きいモデルほど長い文書・長い会話を扱えますが、処理コスト(料金)も増えます

大きければ万能ではない

近年は数十万トークン級の大きなウィンドウを持つモデルも登場していますが、注意点があります。

観点内容
コスト入力トークン数に応じて課金されるため、長文を毎回入れると高額になる
精度長い入力の中間部分の情報を見落としやすい傾向が報告されている(lost in the middle)
設計全文を詰め込むより、[[RAG(検索拡張生成)]] で必要な部分だけ渡す方が効率的な場合が多い

初学者向けポイント

  • 「このモデルは128Kトークン対応」のような表記がコンテキストウィンドウのサイズです。モデル選定時の基本スペックとして確認しましょう
  • 長い文書を扱うときは「全部入れる」「分割して要約する」「RAG で検索する」の選択肢を比較する習慣をつけましょう
  • 必要な情報をウィンドウ内にどう配置するかは [[プロンプトエンジニアリング]] の腕の見せどころです

関連技術とのつながり

  • [[生成AI・LLM]] — コンテキストウィンドウは LLM の基本スペックの1つ
  • [[トークンとトークナイザ]] — ウィンドウサイズを数える単位
  • [[RAG(検索拡張生成)]] — ウィンドウに入り切らない知識を扱うための代表的手法
  • [[プロンプトエンジニアリング]] — 限られたウィンドウを有効活用する技術
Q: コンテキストウィンドウの説明として正しいものはどれ?
- [x] LLMが一度に扱えるトークン数の上限
- [ ] LLMの学習に使ったデータの総量
- [ ] 画面に表示できる文字数の上限
解説: 入力と出力の合計トークン数の上限がコンテキストウィンドウです。この外にある情報を LLM は参照できません。

Q: 長い会話でAIが最初の話を「忘れた」ように見える主な理由はどれ?
- [ ] モデルの学習データが古いから
- [x] 古い履歴がコンテキストウィンドウから押し出されたから
- [ ] 会話のたびにモデルが再学習されるから
解説: LLM は毎回履歴全体を入力し直しており、ウィンドウを超えた古い部分は削られるか要約されます。

Q: 長大な社内文書をLLMに扱わせるとき、効率的な場合が多いアプローチはどれ?
- [ ] 常に全文をプロンプトに詰め込む
- [x] RAGで必要な部分だけ検索して渡す
- [ ] 文書を画像に変換して渡す
解説: 全文投入はコストが高く中間の情報を見落とす傾向もあるため、必要部分だけ渡す RAG が効率的な場合が多いです。