Panduan ini menunjukkan cara menggunakan penyimpanan cache konteks dengan model Gemini yang di-fine-tune untuk meningkatkan performa dan mengurangi biaya untuk perintah yang menyertakan konteks dalam jumlah besar. Halaman ini menjelaskan hal berikut:
- Model yang didukung: Pelajari model yang di-fine-tune yang mendukung penyiapan cache konteks.
- Prasyarat: Siapkan lingkungan dan model yang di-fine-tune sebelum Anda memulai.
- Membuat context cache untuk model yang telah disesuaikan: Ikuti langkah-langkah untuk membuat cache khusus untuk model yang telah disesuaikan.
- Menggunakan cache konteks untuk model yang telah disesuaikan: Pelajari cara mengirim permintaan ke model yang telah disesuaikan menggunakan cache yang dibuat.
Dengan menyimpan cache konteks yang sering digunakan, Anda tidak perlu mengirim ulang data dalam jumlah besar dengan setiap permintaan ke model yang di-fine-tune.
Proses untuk mengelola (Read
, Update
, Delete
) cache konteks sama untuk model Gemini yang di-tune dan model Gemini dasar. Halaman ini berfokus pada langkah-langkah khusus untuk membuat dan menggunakan cache dengan model yang di-tuning secara halus.
Model yang didukung
Penyimpanan cache konteks didukung untuk model yang di-fine-tune dari model dasar berikut:
gemini-2.0-flash-001
Prasyarat
Sebelum memulai, Anda memerlukan hal berikut:
- Model yang disesuaikan dan di-deploy: Anda memerlukan model Gemini yang disesuaikan dan di-deploy berdasarkan model dasar yang didukung. Untuk mengetahui detailnya, lihat Menyesuaikan model Gemini.
- Informasi model:
- ID dan versi model Gemini yang di-tune.
- Nama resource endpoint untuk model yang telah disesuaikan dan di-deploy. Untuk mendapatkan endpoint, lihat Men-deploy model yang disesuaikan.
Membuat context cache untuk model yang di-fine-tune
Proses pembuatan cache konteks untuk model yang di-fine-tune mirip dengan proses untuk model dasar. Untuk mengetahui langkah-langkah umum, lihat Membuat context cache.
Perbedaan utamanya adalah Anda harus menentukan versi model yang di-fine-tune di kolom model
, bukan model dasar. Gunakan format projects/{PROJECT}/locations/{LOCATION}/models/{MODEL}@{VERSION}
Contoh berikut menunjukkan cara membuat cache konteks dengan model Gemini yang telah disesuaikan.
REST
Anda dapat menggunakan REST untuk membuat cache konteks menggunakan Vertex AI API guna mengirim permintaan POST ke endpoint model penayang. Contoh berikut menunjukkan cara membuat cache konteks menggunakan file yang disimpan di bucket Cloud Storage.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan dan tempat konten yang di-cache disimpan. Untuk mengetahui daftar region yang didukung, lihat Region yang tersedia.
- MODEL_ID: ID model Gemini yang di-fine-tune.
- MODEL_VERSION: Versi model Gemini yang disesuaikan.
- CACHE_DISPLAY_NAME: Nama tampilan yang bermakna untuk mendeskripsikan dan membantu Anda mengidentifikasi setiap cache konteks.
- MIME_TYPE: Jenis MIME konten yang akan di-cache.
- CONTENT_TO_CACHE_URI: URI Cloud Storage konten yang akan di-cache.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents
Isi JSON permintaan:
{ "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." }] }] }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
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
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$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
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Contoh perintah curl
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}"
}
}
]
}
]
}'
Menggunakan context cache untuk model yang di-fine-tune
Proses penggunaan cache konteks dengan model yang di-fine-tune mirip dengan proses untuk model dasar. Untuk mengetahui langkah-langkah umumnya, lihat Menggunakan cache konteks.
Perbedaan utamanya adalah Anda mengirim permintaan ke endpoint model yang telah disesuaikan dan di-deploy (.../endpoints/{ENDPOINT_ID}
), bukan ke endpoint model dasar (.../publishers/google/models/{MODEL}
).
Saat menggunakan cache konteks, Anda tidak dapat menentukan properti berikut dalam permintaan:
GenerativeModel.system_instructions
GenerativeModel.tool_config
GenerativeModel.tools
Contoh kode berikut menunjukkan cara menggunakan cache konteks dengan model Gemini yang dioptimalkan.
REST
Anda dapat menggunakan REST untuk menentukan cache konteks dengan prompt menggunakan Vertex AI API untuk mengirim permintaan POST ke endpoint model penayang.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region tempat permintaan untuk membuat cache konteks diproses.
- ENDPOINT_ID: Endpoint tempat model yang telah disesuaikan di-deploy.
- MIME_TYPE: Perintah teks yang akan dikirimkan ke model.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent
Isi JSON permintaan:
{ "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" } ], }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
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
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$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
Anda akan melihat respons JSON yang mirip seperti berikut:
Contoh perintah curl
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"
}
],
}'