AI英会話のアプリで話し続けていると、返事が返るまでの間が最初の1往復より短くなることがある。この体感に効いているのがキャッシュだ。
ただし、保存されているのは答えではない。
OpenAI の Prompt caching は、この仕組みを、送った内容の先頭部分が前回と同じだったときに、処理そのものを使い回すものだと説明している。
言い換えると、同じ下ごしらえを二度やらない、という話だ。
しかもこれは、開発者が有効化しなくても、対応するモデルでは初めから働くと書かれている。
音声の会話にも同じ仕掛けが載っており、Realtime のコストの章は、複数ターンの会話で自動的に適用されると書いている。
この記事では、開発者向けの公式ドキュメントに書かれた条件だけを材料に、何が使い回され、何をすると使い回せなくなるのかを開けていく。
サービスの順位づけはしない。
【結論】AI英会話のキャッシュは、会話の「頭の部分」を作り直さないための仕組み
先に答えを置いておく。
モデルは入力を処理するとき、あとから前の語を参照できるようにするための中間状態を作っている。
公式はこれをキー・バリューの状態と呼び、キャッシュが取っておくのはその状態のほうであって、語そのものではない、とわざわざ明記している。
取っておける範囲は、先頭から変わっていない部分に限られる。
ドキュメントは、この使い回しで何が変わるかを3つに整理している。
| 変わるところ | 公式の説明 | 学習者から見えるもの |
|---|---|---|
| 計算 | すでに処理した先頭部分を計算し直さずに済む | ― |
| 入力の扱い | 使い回した分は安い側の扱いになり、最大90%引きと書かれている | ― |
| 速さ | 返事が始まる前の、入力を処理する時間が減る | 最初の音が出るまでの間 |
⇒ AI英会話で会話が進むほど反応が軽く感じる場面があるとしたら、この3つ目が効いている。
AI英会話のキャッシュ①|毎回、会話の全部を送り直している
前提として、音声の会話は毎ターン身軽になっていくわけではない。
Realtime のコストの章は、返事を1つ作るたびに会話の全体がモデルへ送られる、と書いている。
作られた返事も会話へ足されるので、後ろのターンほど送るものが増えていく。
音声がどう数えられるかも具体的に書かれている。
| どちらの音声か | 数え方 |
|---|---|
| 利用者のメッセージ | 音声100ミリ秒につき1トークン |
| アシスタントのメッセージ | 音声50ミリ秒につき1トークン |
数分しゃべれば、送り直される量は無視できない大きさになる。
だから同じ章は、複数ターンのセッションで入力側を大きく軽くできる手段として、キャッシュを名指しで挙げている。
ただし、保証はされていない。
当たるのはあくまで最善努力であって確実ではない、という但し書きが同じ場所に置かれている。
AI英会話のキャッシュ②|使い回せるのは、先頭が丸ごと一致したときだけ
条件は思っているより厳しい。
公式は、使い回しには組み立てられた先頭部分が丸ごと一致することが要る、と書いている。
しかも、その「先頭部分」に含まれるものが広い。
もう1つ、長さの下限がある。
先頭部分は、そのモデルが決めた最小の長さに届いて初めてキャッシュの対象になる、と書かれている。
新しい世代のモデルでは、その下限が1,024トークンと具体的に示されている。
なお、この長さを数えるとき、OpenAI 側が内部で付けている分は勘定に入らない、とも断られている。
⇒ 短い指示文しか置いていないアプリでは、そもそもキャッシュの土俵に乗らないことがある。
AI英会話のキャッシュ③|設定を1つ変えると、そこから先は当たらない
変わってはいけないのは、会話の中身だけではない。
ドキュメントは、先頭部分に影響する設定を表で並べている。
| 設定 | なぜ効いてくるか |
|---|---|
| 使うモデル | 別のモデルは重みもキャッシュの挙動も違う |
| 道具の一覧 | 名前・説明・引数の形・並び順が変わると先頭が変わる |
| 道具を同時に呼ぶ設定 | 1ターンで複数呼ぶかどうかの指示文が変わる |
| 出力の形式 | 形式の指示と、求めるひな型が足される |
| 考える深さ・返事の詳しさ | モデル側の指示文が書き換わりうる |
| 文脈の圧縮 | 前の会話を要約で置き換えるので、変わった地点から先が一致しなくなる |
Realtime 側の書き方はもっと生々しい。
指示文と道具の定義は会話の先頭に置かれるので、セッションの途中でこれを変えると、そのあとのターンの当たり方が落ちる、と説明されている。
同じ趣旨の文言へ少し書き直しただけでも、一致の判定はその地点で途切れることになる。
⇒ 会話の途中でモードや先生役を切り替える機能は、速さと引き換えになりうる。
AI英会話のキャッシュ④|古い発言を捨てる処理が、いちばん壊す
長い会話には、必ず打ち切りが来る。
入力に入れられる量を超えると、古いものから順に会話が落とされていく、と書かれている。
具体例も添えられていて、32kの文脈を持ち、出力の上限が4,096トークンのモデルなら、打ち切りが起きるまでに入れられるのは28,224トークンまでだ、とされている。
問題は、落とされる場所が会話の先頭だという点にある。
公式は、打ち切りが会話の頭のあたりでキャッシュを壊すと書き、毎ターン打ち切りが起きるなら当たり方は非常に低くなる、と続けている。
その対処として書かれているのが、必要より多めに捨てるという設定だ。
既定は、必要な分だけを落とす値になっている。
ここを下げると、上限の8割だけを残して残りを追加で落とす、といった動きになり、次の打ち切りまでの余裕が伸びる。
ただし同じ場所に、引き換えの断りがある。
そのターンでモデルが覚えている範囲は狭くなる、という但し書きだ。
AI英会話のキャッシュ⑤|当てたいなら、増やし方を「後ろに足す」に寄せる
当て方の要点は、公式が短くまとめている。
- 安定した指示文と共通の資料を先に置く。
- 日時や利用者ごとに変わる内容は後ろへ回すか、あとの会話へ移す。
- 前のやり取りを書き換えず、新しいものを足す形で伸ばす。
- 道具は消さずに、呼べないようにする指定で切り替える。
Realtime 側の言い方はさらに端的で、セッションの履歴を動かさないことが当て方の最良の策だ、とされている。
中身を消したり書き換えたりすると、その地点までさかのぼって当たらなくなる、という説明も添えられている。
落とし穴も別立てで書かれている。
前半が共通しているだけでは、それが取っておかれた先頭部分になるとは限らない。
すでにあるメッセージを後ろへ書き足す形で伸ばすと、かつての区切りがメッセージの内側へ入ってしまい、そこでの使い回しができなくなる場合がある、とも書かれている。
AI英会話のキャッシュ⑥|期限があり、置き場は1台ごとに分かれている
取っておかれた状態は、いつまでも残るわけではない。
| 世代 | 保たれる目安 | 設定できる値 |
|---|---|---|
| 新しい世代 | 最後に書かれたか使われてから、少なくとも30分 | 30m のみ |
| 以前の世代(既定側) | 使われない時間が5〜10分ほど、長くて1時間 | in_memory |
| 以前の世代(延長側) | おおむね30分、条件しだいで最大24時間 | 24h |
使い直すたびに期限が延び、そのときに書き込みの料が重ねてかかることはない、とも書かれている。
保持の既定値が、データの扱いの方針で変わる点も押さえておきたい。
データを残さない運用にしている組織は短いほうが既定になり、そうでない組織は長いほうが既定になる、と整理されている。
置き場そのものにも制約がある。
取っておかれた状態は個々のマシンの上にあり、そのマシンへ届いたリクエストでなければ使い回せない、と書かれている。
加えて、組織をまたいで共有されることはなく、処理する地域の境を越えた使い回しもできない、と明記されている。
AI英会話のキャッシュ⑦|当たっているかどうかは数えられる
効いているかどうかは、感想ではなく数字で確かめる作りになっている。
公式が挙げている見どころは、使い回された入力の量と、書き込まれた量の2つだ。
当たり方は、使い回された量を入力の総量で割って出す、という計算まで示されている。
当たらない原因を調べるための診断の道具も、別に用意されている。
書き込める回数にも上限があり、1回のリクエストで作れるのは最大4つまでとされている。
実例として載っている数字は2つある。
採点のように毎回同じ物差しを置く使い方で、当たり方がおよそ70%だった例。
そして、会話を足し続ける使い方で90%を超えた例だ。
ただしドキュメントは、これは起こりうる一例であり、上限は使い方しだいだと釘を刺している。
AI英会話のキャッシュが、学習者の画面に出てくる場面
仕様の話を、使っているときに見えるものへ置き換えておく。
- 1往復目だけ間が長い=先頭部分がまだ取っておかれていない状態に当たる。
- 途中でモードを変えると重くなる=指示文と道具の定義は先頭にあり、変えると以降の当たり方が落ちる。
- 長く話すと急に間が伸びる=古い発言を落とす打ち切りが、会話の頭のあたりで使い回しを壊す。
- しばらく放置して再開すると遅い=取っておかれる時間には期限が決められている。
- 同じ操作でも日によって違う=当たるのは最善努力で、保証されるものではないと書かれている。
どれも英語力とは関係がなく、アプリの組み方と会話の長さで決まっている部分だ。
逆に言えば、この5つは仕様を見れば説明がつく範囲にとどまる。
AI英会話のキャッシュ|よくある質問
Q. 前に話した内容が保存されているのか。 A. 公式ドキュメントは、取っておかれるのはキー・バリューの状態であって語そのものではない、と明記している。
中身の文章がそのまま置かれているという書き方ではない。
Q. 開発者が有効にしないと働かないのか。 A. 対応するモデルでは既定で有効だと書かれている。
Realtime 側でも自動的に適用されると説明されている。
Q. 途中で設定を変えるとどうなるのか。 A. 先頭部分が変わった地点から先は、以前のものと一致しなくなる。
指示文と道具の定義は会話の先頭に置かれるため、影響はそのあとのターン全体に及ぶと書かれている。
Q. 会話を要約して短くすれば速くなるのか。 A. その逆が書かれている。
要約や圧縮、古い発言の切り落としは先頭部分を変えるので、使い回しがそこで切れると説明されている。
Q. いつまで取っておかれるのか。 A. 新しい世代では、最後に書かれたか使われてから少なくとも30分とされている。
以前の世代では設定によって幅があり、使われない時間が5〜10分ほどのものから、最大24時間のものまで書き分けられている。
まとめ|AI英会話のキャッシュは「先頭を動かさない」ほど効く
もう一度、要点だけを並べ直す。
- 使い回されるのは答えではなく先頭部分の下ごしらえで、保たれるのは状態であって語ではない。
- 条件は先頭が丸ごと一致すること。指示文・道具の定義・履歴まで含めて数えられる。
- 設定を1つ変えるだけでも先頭は変わる。会話の途中での切り替えは、そのあと全体に効いてくる。
- いちばん壊すのは古い発言を落とす打ち切り。残す割合の設定で、次の打ち切りまでの余裕を伸ばせる。
- 期限と置き場の制約がある。時間が経てば消え、組織や地域をまたいだ使い回しはできない。
⇒ AI英会話の速さを仕組みから見るときは、「モデルが速いか」ではなく「会話の先頭がどれだけ動いていないか」で線を引く。
そこが分かっていれば、途中から重くなる会話も、日によって違う反応も、仕様の側から読み解ける。
※本記事の一次ソースは、各公式ドキュメントを2026-09-20に取得した生テキストで確認した。
仕様は更新されるため、最新は各公式ドキュメントで確認してほしい。
会話を区切るトークンと、長さの上限が生む挙動を分解した記事です。
長さの上限まで分解した記事
Comments