Sie können das Kontext-Caching für Ihre feinabgestimmten Gemini-Modelle verwenden, um die Leistung zu verbessern und die Kosten für Prompts mit großen Mengen an Kontext zu senken. Durch das Caching von häufig verwendetem Kontext vermeiden Sie, dass bei jeder Anfrage an Ihr feinabgestimmtes Modell große Datenmengen noch einmal gesendet werden müssen.
Die Verwaltungsoperationen (Read
, Update
, Delete
) des Kontext-Cache für abgestimmte Gemini-Modelle sind mit denen von Basismodellen identisch. Nur für die Erstellung und Inferenz von gecachten Inhalten sind spezielle Anpassungen erforderlich, die im Folgenden beschrieben werden.
Unterstützte Modelle
Das Zwischenspeichern von Kontext wird für Modelle unterstützt, die auf dem folgenden Basismodell feinabgestimmt wurden:
gemini-2.0-flash-001
Vorbereitung
Feinabstimmung eines Gemini-Modells:Sie benötigen ein bereitgestelltes, feinabgestimmtes Gemini-Modell, das auf einem unterstützten Basismodell basiert (siehe Unterstützte Modelle). Weitere Informationen zum Optimieren eines Gemini-Modells finden Sie unter Gemini-Modell optimieren. Informationen zum Abrufen des Endpunkts für Ihr bereitgestelltes feinabgestimmtes Modell finden Sie unter Abgestimmtes Modell bereitstellen.
Sie benötigen die folgenden Informationen:
- Die ID und die Version des abgestimmten Gemini-Modells
- Der Name der Endpunktressource für das bereitgestellte feinabgestimmte Modell
Kontext-Cache für ein abgestimmtes Modell erstellen
Das unterstützte Basismodell ist unter Unterstützte Modelle aufgeführt.
Das Erstellen eines Kontext-Cache für ein feinabgestimmtes Modell folgt weitgehend den Schritten unter Kontext-Cache erstellen. Informationen zum allgemeinen Prozess finden Sie in der verlinkten Dokumentation. In diesem Leitfaden wird der Unterschied beim Erstellen eines Kontext-Cache für feinabgestimmte Gemini-Modelle beschrieben.
Anstelle des Basismodells in Form von projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}
müssen Sie Ihr feinabgestimmtes Modell in Form von projects/{PROJECT}/locations/{LOCATION}/models/{MODEL}@{VERSION}
verwenden.
Die folgenden Beispiele zeigen, wie Sie einen Kontext-Cache mit einem optimierten Gemini-Modell erstellen.
REST
Sie können mit REST einen Kontext-Cache erstellen. Dazu senden Sie mit der Vertex AI API eine POST-Anfrage an den Endpunkt des Publisher-Modells. Im folgenden Beispiel wird gezeigt, wie ein Kontext-Cache mithilfe einer in einem Cloud Storage-Bucket gespeicherten Datei erstellt wird.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Die Region, in der die Anfrage verarbeitet wird und in der die zwischengespeicherten Inhalte gespeichert sind. Eine Liste der unterstützten Regionen finden Sie unter Verfügbare Regionen.
- MODEL_ID: Die ID des feinabgestimmten Gemini-Modells.
- MODEL_VERSION: Die feinabgestimmte Gemini-Modellversion.
- CACHE_DISPLAY_NAME: Ein aussagekräftiger Anzeigename, mit dem Sie die einzelnen Kontextcaches beschreiben und identifizieren können.
- MIME_TYPE: Der MIME-Typ des zu cachenden Inhalts.
- CONTENT_TO_CACHE_URI: Der Cloud Storage-URI des Inhalts, der im Cache gespeichert werden soll.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents
JSON-Text der Anfrage:
{ "model": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID@MODEL_VERSION", "displayName": "CACHE_DISPLAY_NAME", "contents": [{ "role": "user", "parts": [{ "fileData": { "mimeType": "MIME_TYPE", "fileUri": "CONTENT_TO_CACHE_URI" } }] }, { "role": "model", "parts": [{ "text": "This is sample text to demonstrate explicit caching." }] }] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Beispiel: cURL-Befehls
LOCATION="us-central1"
MODEL_ID="model-id"
PROJECT_ID="test-project"
MODEL_VERSION=1
MIME_TYPE="video/mp4"
CACHED_CONTENT_URI="gs://path-to-bucket/video-file-name.mp4"
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/cachedContents -d \
'{
"model":"projects/${PROJECT_ID}/locations/${LOCATION}/models/${MODEL_ID}@${MODEL_VERSION}",
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "${MIME_TYPE}",
"fileUri": "${CACHED_CONTENT_URI}"
}
}
]
}
]
}'
Kontext-Cache für ein abgestimmtes Modell verwenden
Die Vorgehensweise zum Verwenden eines Kontext-Caches für ein feinabgestimmtes Modell entspricht weitgehend den Schritten, die unter Kontext-Cache verwenden beschrieben werden. Informationen zum allgemeinen Prozess finden Sie in der verlinkten Dokumentation. In diesem Leitfaden wird der Unterschied bei der Verwendung des Kontext-Cache für feinabgestimmte Gemini-Modelle beschrieben.
Anstatt die Anfrage im Format projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}
an den Endpunkt des Basismodells zu senden, müssen Sie sie im Format projects/{PROJECT}/locations/{LOCATION}/endpoints/{ENDPOINT_ID}
an den Endpunkt des bereitgestellten optimierten Modells senden.
Das folgende Codebeispiel zeigt, wie ein Kontext-Cache mit einem optimierten Gemini-Modell verwendet wird.
Wenn Sie einen Kontext-Cache verwenden, können Sie die folgenden Eigenschaften nicht angeben:
GenerativeModel.system_instructions
GenerativeModel.tool_config
GenerativeModel.tools
REST
Sie können mit REST einen Kontext-Cache mit einem Prompt angeben. Dazu senden Sie mit der Vertex AI API eine POST-Anfrage an den Endpunkt des Publisher-Modells.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Die Region, in der die Anfrage zum Erstellen des Kontext-Cache verarbeitet wurde.
- ENDPOINT_ID: Der Endpunkt, an dem das optimierte Modell bereitgestellt wird.
- MIME_TYPE: Der Text-Prompt, der an das Modell gesendet werden soll.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent
JSON-Text der Anfrage:
{ "cachedContent": "projects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID", "contents": [ {"role":"user","parts":[{"text":"PROMPT_TEXT"}]} ], "generationConfig": { "maxOutputTokens": 8192, "temperature": 1, "topP": 0.95, }, "safetySettings": [ { "category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE" }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_MEDIUM_AND_ABOVE" }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_MEDIUM_AND_ABOVE" }, { "category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_MEDIUM_AND_ABOVE" } ], }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Beispiel: cURL-Befehls
LOCATION="us-central1"
PROJECT_ID="test-project"
ENDPOINT_ID=987654321
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}:generateContent" -d \
'{
"cachedContent": "projects/${PROJECT_NUMBER}/locations/${LOCATION}/cachedContents/${CACHE_ID}",
"contents": [
{"role":"user","parts":[{"text":"What are the benefits of exercise?"}]}
],
"generationConfig": {
"maxOutputTokens": 8192,
"temperature": 1,
"topP": 0.95,
},
"safetySettings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
],
}'