קבלת תחזיות באצווה ממודל ב-Model Garden שפרסתם בעצמכם

חלק מהמודלים שזמינים ב-Model Garden יכולים להיות בפריסה עצמית בפרויקט Google Cloud שלכם, ולשמש לחיזויים של קבוצות נתונים. תחזיות אצווה מאפשרות להשתמש ביעילות במודל כדי לעבד כמה הנחיות טקסט בלבד שלא רגישות לזמן האחזור.

הכנת קלט

לפני שמתחילים, מכינים את נתוני הקלט בטבלה ב-BigQuery או כקובץ JSONL ב-Cloud Storage. הקלט בשני המקורות צריך להיות בפורמט JSON של סכימת OpenAI API, כמו בדוגמה הבאה:

{"body": {"messages": [{"role": "user", "content": "Give me a recipe for banana bread"}], "max_tokens": 1000}}

BigQuery

טבלת הקלט ב-BigQuery צריכה להיות תואמת לסכימה הבאה:

שם עמודה תיאור
custom_id מזהה לכל בקשה כדי להתאים את הקלט לפלט.
method שיטת הבקשה.
url נקודת הקצה של הבקשה.
body(JSON) פרומפט הקלט שלכם.
  • טבלת הקלט יכולה לכלול עמודות אחרות, שהמשימה באצווה מתעלמת מהן ומעבירה אותן ישירות לטבלת הפלט.
  • משימות של חיזוי באצווה שומרות שני שמות של עמודות לפלט של החיזוי באצווה: response(JSON) ו-id. אל תשתמשו בעמודות האלה בטבלת הקלט.
  • העמודות method ו-url מושמטות ולא נכללות בטבלת הפלט.

Cloud Storage

ב-Cloud Storage, קובץ הקלט צריך להיות קובץ JSONL שנמצא בקטגוריה של Cloud Storage.

קבלת המשאבים הנדרשים למודל

בוחרים מודל ומריצים שאילתה כדי לראות את דרישות המשאבים שלו. המקורות הנדרשים מופיעים בתגובה בשדה dedicatedResources, שאתם מציינים בהגדרות של משימת החיזוי באצווה.

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PUBLISHER: מפרסם המודל, לדוגמה, meta,‏ google,‏ mistral-ai או deepseek-ai.
  • ‫PUBLISHER_MODEL_ID: מזהה המודל של המוציא לאור עבור המודל, לדוגמה, llama3_1.
  • ‫VERSION_ID: מזהה הגרסה של המודל שמוגדר על ידי המוציא לאור, לדוגמה, llama-3.1-8b-instruct.

ה-method של ה-HTTP וכתובת ה-URL:

GET "https://us-central1-aiplatform.googleapis.com/ui/publishers/PUBLISHER/models/PUBLISHER_MODEL_ID@VERSION_ID" | jq '.supportedActions.multiDeployVertex'

כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
""https://us-central1-aiplatform.googleapis.com/ui/publishers/PUBLISHER/models/PUBLISHER_MODEL_ID@VERSION_ID" | jq '.supportedActions.multiDeployVertex'"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri ""https://us-central1-aiplatform.googleapis.com/ui/publishers/PUBLISHER/models/PUBLISHER_MODEL_ID@VERSION_ID" | jq '.supportedActions.multiDeployVertex'" | Select-Object -Expand Content

אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.

שליחת בקשה ליצירת תחזית באצווה

ליצור חיזוי באצווה על מודל Model Garden שפרסתם בעצמכם באמצעות קלט מ-BigQuery או מ-Cloud Storage. אתם יכולים לבחור באופן עצמאי אם להוציא את התחזיות לטבלה ב-BigQuery או לקובץ JSONL בקטגוריה של Cloud Storage.

BigQuery

מציינים את טבלת הקלט, המודל ומיקום הפלט ב-BigQuery. הטבלה ועבודת התחזית באצווה צריכות להיות באותו אזור.

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫LOCATION: אזור שתומך במודלים שניתנים לפריסה עצמית ב-Model Garden.
  • ‫PROJECT_ID: מזהה הפרויקט. .
  • ‫MODEL: השם של המודל לכוונון, לדוגמה, llama-3.1-8b-instruct.
  • ‫PUBLISHER: מפרסם המודל, לדוגמה, meta,‏ google,‏ mistral-ai או deepseek-ai.
  • ‫INPUT_URI: הטבלה ב-BigQuery שבה נמצא קובץ הקלט של התחזית באצווה, למשל myproject.mydataset.input_table.
  • ‫OUTPUT_FORMAT: כדי להגדיר פלט לטבלה ב-BigQuery, מציינים bigquery. כדי להגדיר פלט לקטגוריה של Cloud Storage, מציינים jsonl.
  • ‫DESTINATION: ב-BigQuery, מציינים bigqueryDestination. ב-Cloud Storage, מציינים gcsDestination.
  • ‫OUTPUT_URI_FIELD_NAME: ב-BigQuery, מציינים outputUri. ב-Cloud Storage, מציינים outputUriPrefix.
  • ‫OUTPUT_URI: ב-BigQuery, מציינים את מיקום הטבלה, למשל myproject.mydataset.output_result. ב-Cloud Storage, מציינים את המיקום של הקטגוריה והתיקייה, כמו gs://mybucket/path/to/outputfile.
  • ‫MACHINE_TYPE: הגדרת קבוצת המשאבים לפריסה של המודל, לדוגמה, g2-standard-4.
  • ‫ACC_TYPE: מציינים מאיצים להוספה למשימת החיזוי באצווה כדי לשפר את הביצועים כשעובדים עם עומסי עבודה אינטנסיביים, לדוגמה, NVIDIA_L4.
  • ‫ACC_COUNT: מספר המאיצים לשימוש במשימת חיזוי באצווה.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs

גוף בקשת JSON:

'{
  "displayName": "JOB_NAME",
  "model": "publishers/PUBLISHER/models/MODEL",
  "inputConfig": {
    "instancesFormat":"bigquery",
    "bigquerySource":{
      "inputUri" : "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat":"OUTPUT_FORMAT",
    "DESTINATION":{
      "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI"
    }
  },
  "dedicated_resources": {
    "machine_spec": {
      "machine_type": "MACHINE_TYPE",
      "accelerator_type": "ACC_TYPE",
      "accelerator_count": ACC_COUNT,
    },
    "starting_replica_count": 1,
  },
}'

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

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/batchPredictionJobs"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$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/batchPredictionJobs" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

Cloud Storage

מציינים את המיקום של קובץ ה-JSONL ב-Cloud Storage, את המודל ואת מיקום הפלט.

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫LOCATION: אזור שתומך במודלים שניתנים לפריסה עצמית ב-Model Garden.
  • ‫PROJECT_ID: מזהה הפרויקט. .
  • ‫MODEL: השם של המודל לכוונון, לדוגמה, llama-3.1-8b-instruct.
  • ‫PUBLISHER: מפרסם המודל, לדוגמה, meta,‏ google,‏ mistral-ai או deepseek-ai.
  • ‫INPUT_URI: המיקום ב-Cloud Storage של קובץ הקלט של התחזית באצווה בפורמט JSONL, כמו gs://bucketname/path/to/jsonl.
  • ‫OUTPUT_FORMAT: כדי להגדיר פלט לטבלה ב-BigQuery, מציינים bigquery. כדי להגדיר פלט לקטגוריה של Cloud Storage, מציינים jsonl.
  • ‫DESTINATION: ב-BigQuery, מציינים bigqueryDestination. ב-Cloud Storage, מציינים gcsDestination.
  • ‫OUTPUT_URI_FIELD_NAME: ב-BigQuery, מציינים outputUri. ב-Cloud Storage, מציינים outputUriPrefix.
  • ‫OUTPUT_URI: ב-BigQuery, מציינים את מיקום הטבלה, למשל myproject.mydataset.output_result. ב-Cloud Storage, מציינים את המיקום של הקטגוריה והתיקייה, כמו gs://mybucket/path/to/outputfile.
  • ‫MACHINE_TYPE: הגדרת קבוצת המשאבים לפריסה של המודל, לדוגמה, g2-standard-4.
  • ‫ACC_TYPE: מציינים מאיצים להוספה למשימת החיזוי באצווה כדי לשפר את הביצועים כשעובדים עם עומסי עבודה אינטנסיביים, לדוגמה, NVIDIA_L4.
  • ‫ACC_COUNT: מספר המאיצים לשימוש במשימת חיזוי באצווה.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs

גוף בקשת JSON:

'{
  "displayName": "JOB_NAME",
  "model": "publishers/PUBLISHER/models/MODEL",
  "inputConfig": {
    "instancesFormat":"jsonl",
    "gcsDestination":{
      "uris" : "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat":"OUTPUT_FORMAT",
    "DESTINATION":{
      "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI"
    }
  },
  "dedicated_resources": {
    "machine_spec": {
        "machine_type": "MACHINE_TYPE",
        "accelerator_type": "ACC_TYPE",
        "accelerator_count": ACC_COUNT,
    },
    "starting_replica_count": 1,
  },
}'

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

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/batchPredictionJobs"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$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/batchPredictionJobs" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

קבלת הסטטוס של משימת תחזית אצווה

אפשר לקבל את הסטטוס של משימת חיזוי בקבוצה כדי לבדוק אם היא הושלמה בהצלחה. משך העבודה תלוי במספר פריטי הקלט ששלחתם.

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט. .
  • ‫LOCATION: האזור שבו נמצאת משימת האצווה שלך.
  • ‫JOB_ID: מזהה העבודה באצווה שהוחזר כשיוצרים את העבודה.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID

כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

אחזור פלט

כשמשימת חיזוי אצווה מסתיימת, מאחזרים את הפלט מהמיקום שציינתם:

  • ב-BigQuery, הפלט נמצא בעמודה response(JSON) של טבלת היעד ב-BigQuery.
  • ב-Cloud Storage, הפלט נשמר כקובץ JSONL במיקום הפלט ב-Cloud Storage.

מודלים נתמכים

‫Gemini Enterprise Agent Platform תומכת בתחזיות אצווה עבור המודלים הבאים שפריסתם בוצעה באופן עצמאי:

  • Llama
    • publishers/meta/models/llama3_1@llama-3.1-8b-instruct
    • publishers/meta/models/llama3_1@llama-3.1-70b-instruct
    • publishers/meta/models/llama3_1@llama-3.1-405b-instruct-fp8
    • publishers/meta/models/llama3-2@llama-3.2-1b-instruct
    • publishers/meta/models/llama3-2@llama-3.2-3b-instruct
    • publishers/meta/models/llama3-2@llama-3.2-90b-vision-instruct
  • Gemma
    • publishers/google/models/gemma@gemma-1.1-2b-it
    • publishers/google/models/gemma@gemma-7b-it
    • publishers/google/models/gemma@gemma-1.1-7b-it
    • publishers/google/models/gemma@gemma-2b-it
    • publishers/google/models/gemma2@gemma-2-2b-it
    • publishers/google/models/gemma2@gemma-2-9b-it
    • publishers/google/models/gemma2@gemma-2-27b-it
  • ‫Mistral
    • publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.2
    • publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.3
    • publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.1
    • publishers/mistral-ai/models/mistral@mistral-nemo-instruct-2407
  • Deepseek
    • publishers/deepseek-ai/models/deepseek-r1@deepseek-r1-distill-llama-8b