メモリとモデル

プロンプトキャッシュで短くなるのはどの待ち時間か

同じドキュメントで2回目の質問をした結果、1回目よりもはるかに速く回答しています。機器が急に速くなったのでしょうか?以前計算した部分を再利用した可能性があります。プロンプトキャッシュは繰り返し作業の待ち時間を減らすことができますが、どの部分が同じでなければならないかを理解しないと効果を維持できません。

再利用するのは回答ではなく、入力の前半の計算

長い共通の指示とドキュメントを毎回送るツールを考えてみましょう。最後の質問だけが変わったとしても、前半を常に再処理してしまうため、同じ作業を繰り返します。Prefix Cacheは共通の接頭辞部分のKV状態を検索して再使用します。

以前の回答をそのまま返す応答キャッシュとは異なります。新しい質問と回答については計算がまだ必要です。減少するのは、共通入力の処理時間の割合に主にあり、最初のトークン後の生成速度が同じ割合で速くなるわけではありません。

共通システムプロンプトおよびドキュメント計算結果をキャッシュして、複数の質問で再使用するキャッシュ図
プロンプトキャッシュは、同じ前綴の計算結果を再利用できますが、モデルまたは量子化が異なる場合、同じキャッシュを共有することはできません。

意味が同じであってもトークンが異なると変わります。

プログラムは一般的に最初のトークンの一致を確認します。スペース、チャットテンプレート、ツールの定義が異なる場合でも、前半が変更される可能性があります。人間にとって同じドキュメントのように見える場合でも、キャッシュを再使用できなくなる可能性があります。

日付やリクエスト情報などの変動する要素を先に置くと、その後の長い共通指示まで一致する区間が続きにくくなります。固定された内容を先に、変動する質問を後ろに配置する構成を検討してくださいが、指示の意味や必要な情報は変更しないでください。

一つの長い共通前綴から複数の質問枝が分かれ、各回答に続いていく図
共通の接頭辞で長いシステム指示とドキュメントを固定することで、複数の質問が同じ計算セクションを再使用できます。

保存するスペースも必要です

共通ドキュメントが1つだけなら管理は簡単ですが、種類が増えるとキャッシュが占用するメモリも大きくなります。メモリが不足すると長期間使用されていない状態を放出してしまうため、以前は速かった質問が次の回では再び遅くなる可能性があります。

複数のユーザーが同じサーバーを使用する場合、ユーザー・モデル・設定が一致した状態のみが再使用されるべきです。計算記録を異なる条件で混同する機能は存在しません。アプリがキャッシュをどのような単位で区別し、削除するかを確認することは運用の一部です。

前半部分が正確に同じ入力はキャッシュを使用し、初期トークンが変更された入力は再計算する図
接頭詞キャッシュはトークンが正確に一致しなければならないため、日付やユーザー別表現は可能な限り後方へ配置するのが有利です。

初回と繰り返し実行の時間を、別々に測る

最初のドキュメントを1回読み、同じドキュメントの質問を変えて再び実行してみます。それぞれ、最初のトークンまでの時間と、新たに処理された入力、再使用された入力を記録します。準備実行後、同じ条件で3回の中央値を比較することで、結果を理解しやすくなります。

キャッシュが残っているデバイスと空のデバイスの数を混ぜると、ハードウェアの違いのように見えます。純粋な入力処理性能と実際の繰り返し業務の体感はどちらも有用ですが、異なる測定です。どの状況を比較したかは、結果の側に残す必要があります。

繰り返されるドキュメントがある場合は、機器よりも先に確認すること

エージェントが毎回同じルールを送信する場合や、1つのドキュメントに対して複数の質問を投げることを繰り返すツールではキャッシュが役立つ可能性があります。逆に短く、毎回異なる質問を投げることになると効果は限定的になる可能性があります。すべての用途に対して同じ比率で反映することはできません。

もし現在のデバイスが遅いと感じた場合は、共通ドキュメントを毎回新たに処理しているかどうかを確認してください。すでに計算されたものを再び使用するだけでも十分になる可能性があります。ただし、モデルがまだ読み込んでいない新しいデータの最初の処理まで消えてしまうわけではありませんので、新しいドキュメントでも待つべきかどうかは別途確認してください。