プロンプトキャッシュ
MLflow は、読み込まれたプロンプトをメモリに自動的にキャッシュして、パフォーマンスを向上させ、繰り返しの API 呼び出しを減らします。キャッシュ戦略は、プロンプトにバージョン別にアクセスするか、エイリアス別にアクセスするかによって異なります。
前提条件
- プロンプト キャッシュは、MLflow バージョン 3.8 以降でサポートされています。
デフォルトのキャッシュ動作
MLflow は差別化されたキャッシュを実装します。
- バージョンベースのプロンプト : プロンプトのバージョンは作成後に変更できないため、無期限にキャッシュされます。たとえば、
prompts:/summarization-prompt/1。 - エイリアスベースのプロンプト : エイリアスは時間の経過とともに異なるバージョンを指す可能性があるため、デフォルトでは 60 秒間キャッシュされます。たとえば、
prompts:/summarization-prompt@production。
リクエストごとのキャッシュ制御
load_prompt() cache_ttl_seconds問題を使用してキャッシュ動作をオーバーライドします。
Python
import mlflow
# Custom TTL: cache for 5 minutes
prompt = mlflow.genai.load_prompt(
"prompts:/summarization-prompt/1",
cache_ttl_seconds=300
)
# Bypass cache: always fetch fresh data
prompt = mlflow.genai.load_prompt(
"prompts:/summarization-prompt@production",
cache_ttl_seconds=0
)
# Infinite caching for alias-based prompts
prompt = mlflow.genai.load_prompt(
"prompts:/summarization-prompt@production",
cache_ttl_seconds=float("inf")
)
グローバルキャッシュ構成
環境変数を使用してシステム全体のキャッシュのデフォルトを設定します。
MLFLOW_ALIAS_PROMPT_CACHE_TTL_SECONDS: エイリアスベースのプロンプトのデフォルトのTTLMLFLOW_VERSION_PROMPT_CACHE_TTL_SECONDS: バージョンベースのプロンプトのデフォルトのTTL
キャッシュをグローバルに無効にするには、変数を0に設定します。
キャッシュの無効化
次のようなプロンプトが変更されると、キャッシュは自動的にクリアされます。
- タグの更新
- エイリアスの変更
- バージョンの削除