AIが膨大な資料を扱うには、質問のたびに資料を読み直すか、RAG(検索拡張生成)によって断片的な情報を集める必要があるが、CAGは一度読み込んだ情報の「計算処理が終わった状態(KVキャッシュ)」をメモリ上に保存(キャッシュ)しておくことができる。
例えるなら、試験のたびに教科書を本棚から探して該当ページをめくるのが従来のRAGである。対して、教科書の内容をあらかじめ頭の中に完全にインストールし、質問された瞬間に記憶から即答するのがCAGである。 これにより、AIは圧倒的な応答速度を実現し、文脈を途切れさせることなく深い理解に基づいた対話が可能になる。
CAGの仕組み
CAGの実現は驚くほどシンプルである。開発者がRAGのように複雑な検索エンジンを構築する必要はない。
1. データのプリロード(事前読み込み)
対象となる大量のドキュメント(数千行のソースコード、数百ページの法的文書など)をAIモデルに送信する。この際、APIを通じて「このデータは後で何度も使うため、キャッシュしてほしい」という命令を添える。
2. KVキャッシュの生成と保存
入力テキストが計算処理される際、AIは単なる文字列としてではなく、単語間の関係性を計算した中間データであるKVキャッシュ(Key-Value Cache)として情報をメモリ上に保持する。これは、AIが単語の『索引』と『中身』を、すぐに引き出せる状態で整理した数値データで、次回以降の計算を大幅にショートカットするためのものである。
この保存された「理解済みの状態」には固有の識別子(Cache ID)が発行され、開発者はこのIDを指定することで特定の記憶をいつでも呼び出すことができる。なお、この記憶は無限に保持されるわけではなく、保存期間(TTL)という有効期限が設定されている。用途に合わせて数分から数日間といった範囲で保持期間を選択する。
保存期間(TTL)の決定は、いわば「ホテルの部屋をいつまで予約しておくか」を決める作業に似ている。長く予約すればいつでも使えて便利だが、キャッシュの作成費用や維持費用といったコストが発生するため、利用シーンに合わせた「最適解」を選ぶ必要がある。具体的には、以下の3点を基準に設定を行う。
- ユーザーのセッション(対話)時間
- 情報の「鮮度」と更新頻度
- コストの損益分岐点
例えば、「社内規定ボット」であれば、社員が勤務時間中にいつでも質問できるよう、TTLを9時間に設定し、朝一番のアクセスでキャッシュを生成する運用が適している。一方で、「契約書のレビュー」のように短時間の集中作業で使う場合は、TTLを2時間程度に設定し、対話が途切れたら自動で消去されるようにしてコストを最適化するのが一般的である。
3. キャッシュを指定した高速対話
2回目以降の質問では、ユーザーの質問とともに発行されたCache IDを送信する。AIは最初から資料を読み直すことなく、メモリ上の「理解済み状態」から直接回答を生成する。これにより、数秒かかっていた処理がコンマ数秒まで短縮される。
CAGの仕組み
RAGとCAGの使い分け
CAGは万能ではなく、RAGと適材適所で使い分けることが重要である。選ぶ基準は、「情報の鮮度・量」と「対話の頻度」で判断するとよい。
1. RAG(検索型)を使ったほうがいい場合
「広大な図書館から、必要な1ページを探すとき」
- データが無限に近い場合:社内の全過去メールやインターネット上の全記事など、データ量が膨大で一度に読み込めない場合。
- 情報が頻繁に更新される場合:今日のニュースや株価など、刻々と変わる情報を扱う場合。キャッシュしてもすぐ古くなるため、その都度検索するRAGが適している。
- 質問が「一回きり」の場合:ユーザーが一つだけ質問して終わるなら、全データを記憶させる必要はない。
2. CAG(キャッシュ型)を使ったほうがいい場合
「一冊の教科書を徹底的に使い倒すとき」
- 同じ資料について何度も会話する場合:長い契約書やマニュアルなど、一度読み込んだら何度も質問される場合。2回目以降の回答が劇的に速くなり、コストも下がる。
- 全体像の把握が必要な場合:「このミステリー小説の伏線をすべて教えて」のように、資料の最初と最後をつなげて考える必要がある場合。断片的な検索(RAG)では解けない問題に強い。
- 即答性が求められる場合:音声対話など、人間を待たせられないリアルタイムのやり取りが必要な場合。
まとめ:選び方の目安
| 判断基準 | RAG(検索型) | CAG(キャッシュ型) |
|---|---|---|
| データの量 | 無限・超巨大 | 1冊の本〜数冊分(制限あり) |
| 情報の鮮度 | 毎日変わる最新情報 | しばらく変わらない固定情報 |
| 対話のスタイル | 一問一答 | 長いやり取り・議論 |
| 得意なこと | 広い範囲から探す | 深い文脈を理解する |
特徴
CAGには主に3つの大きな特徴がある。
- 圧倒的な応答速度(低レイテンシ): 資料を読み込む処理を事前に済ませているため、質問後の待ち時間が極めて短い。ユーザーはストレスなく対話を続けられる。
- 全体を俯瞰した回答精度: RAGのように情報を切り取らず、資料全体をAIの視野に入れて処理する。そのため、「資料の冒頭と結末の矛盾を指摘する」など、全体把握が必要な高度な推論が可能である。
- コストの削減(繰り返し利用時): 同じ資料に何度も質問する場合、毎回読み込み直す必要がなく、計算リソースを節約できる。結果として運用コストが下がるケースが多い。
提唱・開発の歴史
「CAG(Cache-Augmented Generation)」は特定の個人の単独発明ではなく、AIモデルの進化に伴う必然的な流れとして2024年頃から急速に確立された。
特に、Google DeepMindチームが2024年2月に発表した Gemini 1.5 Pro は大きな転換点である。彼らは「100万トークン」という膨大な情報を一度に扱い、その情報を保持する「Context Caching(コンテキスト・キャッシング)」機能を実装した。これにより、CAGは理論だけでなく実用的な技術として現場に導入された。
また、Anthropic社も「Prompt Caching」という名称で同様の技術を提供しており、この二社が事実上の提唱・推進役となっている。
ファインチューニングとの違い
CAGは「AIに専門知識を覚えさせる」という点で、ファインチューニング(微調整)とも比較される。しかし、そのアプローチは根本的に異なる。
ファインチューニングは「脳そのもの(重み)」を書き換える手術のようなものだが、CAGは「巨大な資料を机に広げたまま固定する」ようなものである。
| 比較項目 | ファインチューニング | CAG(キャッシュ型) |
|---|---|---|
| 反映時間 | 数時間〜数日(再学習が必要) | 数秒〜数分(即座に利用可能) |
| 情報の正確性 | 幻覚(ハルシネーション)のリスク | 元資料に基づく正確な回答 |
| コスト | 高額な計算リソースが必要 | キャッシュ維持費のみ(安価) |
| データの更新 | 頻繁な更新には不向き | 資料を差し替えるだけで即完了 |
| 主な目的 | 口調、形式、特定のタスク特化 | 特定の膨大な知識への即時アクセス |
「法律用語を使い、弁護士のような口調で話してほしい」ならファインチューニングが適している。一方で、「特定の裁判記録5,000ページの内容に基づいて事実を答えてほしい」ならCAGが圧倒的に有利である。
デザイン上での利用方法
CAGの登場は、UX(ユーザー体験)デザインにおいて「待ち時間」と「情報の深さ」のトレードオフを解消する鍵となる。
これまでは「正確に答えようとすると時間がかかる(RAGの検索待ち)」、「早く答えようとすると情報量が減る」というジレンマがあった。しかしCAGを使えば、「重厚なマニュアルをすべて知っているのに、レスポンスはチャットのように軽い」という体験をデザインできる。
特に、ユーザーが特定のタスクに集中する数十分〜数時間の間、同じ背景情報を使い続けるアプリケーションで真価を発揮する。
「この場面に使える」シーンと具体例
プロダクトやコンテンツデザインにおいて、CAGは以下のような「固定された大量の情報」×「繰り返しの対話」が発生するシーンで最適である。
1. 複雑な製品のカスタマーサポート
- シーン: ユーザーが500ページある家電やソフトウェアの取扱説明書について質問したい。
- CAGの活用: マニュアル全ページを事前にキャッシュしておく。
- UXの変化: ユーザーが「エラーコードE-01が出たけど、これって34ページの注意書きと関係ある?」と聞いても、AIは即座にページを行き来して、「はい、34ページの条件に該当するため、修理が必要です」と瞬時に回答する。検索待ちのグルグル表示が出ない。
2. プログラミングや法務の専門アシスタント
- シーン: エンジニアが巨大なプログラムコード全体を把握しながら修正案を考えたい。弁護士が数百ページの契約書群からリスクを洗い出したい。
- CAGの活用: プロジェクトの全コードや関連契約書をキャッシュする。
- UXの変化: 「この変更で他のどのファイルに影響が出るか」という質問に、AIが即座に影響範囲を特定して回答する。
3. ロールプレイング・学習アプリ
- シーン: 英会話の練習や、歴史上の人物との対話アプリ。
- CAGの活用: キャラクターの性格や過去の発言、詳細な世界観設定をキャッシュする。
- UXの変化: 会話が長くなっても設定を忘れず、以前の内容を踏まえた一貫性のある深い対話が遅延なくスムーズに行われる。