במדריך הזה תשתמשו ב-Model Garden כדי לפרוס את המודל הפתוח Gemma 3 1B בנקודת קצה (endpoint) של Gemini Enterprise Agent Platform שמגובה ב-GPU. כדי להשתמש במודל להצגת חיזויים אונליין, צריך לפרוס אותו בנקודת קצה (endpoint). כשפורסים מודל, משויכים אליו משאבים פיזיים כדי שהוא יוכל להציג תחזיות אונליין עם זמן אחזור קצר.
אחרי שפורסים את המודל Gemma 3 1B, מסיקים מסקנות מהמודל שאומן באמצעות PredictionServiceClient כדי לקבל חיזויים אונליין. חיזויים אונליין הם בקשות סנכרוניות למודל שנפרס בנקודת קצה (endpoint).
מטרות
במדריך הזה מוסבר איך לבצע את הפעולות הבאות:
- פריסת המודל הפתוח Gemma 3 1B בנקודת קצה שמגובה ב-GPU באמצעות Model Garden
- שימוש ב-
PredictionServiceClientכדי לקבל חיזויים אונליין
חסרונות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
-
A
g2-standard-12machine type with one NVIDIA_L4 accelerator - Gemini Enterprise Agent Platform prediction and explanation
בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
כדי לבצע את המדריך הזה, צריך:
- הגדרת פרויקט ב- Google Cloud והפעלת Agent Platform API
- במכונה המקומית:
- התקנה, הפעלה ואימות באמצעות Google Cloud CLI
- התקנת ה-SDK לשפה שלכם
הגדרת פרויקט ב- Google Cloud
מגדירים את הפרויקט ב- Google Cloud ומפעילים את Agent Platform API.
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Agent Platform API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Agent Platform API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
הגדרת Google Cloud CLI
במחשב המקומי, מגדירים את Google Cloud CLI.
-
מתקינים ומפעילים את Google Cloud CLI.
-
אם כבר התקנתם את ה-CLI של gcloud, ודאו שרכיבי
gcloudמעודכנים באמצעות הפקודה הזו.gcloud components update
-
כדי לבצע אימות באמצעות ה-CLI של gcloud, מריצים את הפקודה הבאה כדי ליצור קובץ מקומי של Application Default Credentials (ADC). תהליך האימות באינטרנט שמופעל באמצעות הפקודה משמש כדי לספק את פרטי הכניסה של המשתמש.
gcloud auth application-default login
למידע נוסף, קראו את המאמר הגדרת אימות ב-CLI של gcloud והגדרת ADC.
הגדרת ה-SDK לשפת התכנות שלכם
כדי להגדיר את הסביבה שבה משתמשים במדריך הזה, צריך להתקין את Gemini Enterprise Agent Platform SDK לשפה שלכם ואת ספריית מאגרי האחסון לפרוטוקולים. דוגמאות הקוד משתמשות בפונקציות מספריית מאגר האחסון לפרוטוקולים כדי להמיר את מילון הקלט לפורמט JSON שנדרש על ידי ה-API.
במחשב המקומי, לוחצים על אחת מהכרטיסיות הבאות כדי להתקין את ה-SDK של שפת התכנות שלכם.
Python
במחשב המקומי, לוחצים על אחת מהכרטיסיות הבאות כדי להתקין את ה-SDK בשפת התכנות שלכם.
כדי להתקין ולעדכן את Agent Platform SDK ל-Python, מריצים את הפקודה הזו.
pip3 install --upgrade "google-cloud-aiplatform>=1.64"
מריצים את הפקודה הבאה כדי להתקין את ספריית מאגרי האחסון לפרוטוקולים ל-Python.
pip3 install --upgrade "protobuf>=5.28"
Node.js
מתקינים או מעדכנים את ה-SDK של aiplatform ל-Node.js באמצעות הפקודה הבאה:
npm install @google-cloud/aiplatform
Java
כדי להוסיף את google-cloud-aiplatform כתלות, מוסיפים את הקוד המתאים לסביבה שלכם.
Maven עם BOM
מוסיפים את קוד ה-HTML הבא ל-pom.xml:
<dependencyManagement> <dependencies> <dependency> <artifactId>libraries-bom</artifactId> <groupId>com.google.cloud</groupId> <scope>import</scope> <type>pom</type> <version>26.34.0</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-aiplatform</artifactId> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java-util</artifactId> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> </dependencies>
Maven בלי BOM
מוסיפים את הקוד הבא לקובץ pom.xml:
<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-aiplatform</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java-util</artifactId> <version>5.28</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.11.0</version> </dependency>
Gradle בלי BOM
מוסיפים את הפרטים הבאים אל build.gradle:
implementation 'com.google.cloud:google-cloud-aiplatform:1.1.0'
המשך
כדי להתקין את החבילות האלה של Go, מריצים את הפקודות הבאות.
go get cloud.google.com/go/aiplatform go get google.golang.org/protobuf go get github.com/googleapis/gax-go/v2
פריסת Gemma באמצעות Model Garden
אפשר לפרוס את Gemma 3 1B באמצעות כרטיס המודל שלו במסוף Google Cloud או באופן פרוגרמטי.
מידע נוסף על הגדרת Google Gen AI SDK או Google Cloud CLI זמין בסקירה הכללית של Google Gen AI SDK או במאמר התקנת Google Cloud CLI.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של ה-API מבוסס-Python.
מציגים את רשימת המודלים שאפשר לפרוס ומתעדים את מזהה המודל לפריסה. אתם יכולים להציג את רשימת המודלים הנתמכים של Hugging Face ב-Model Garden, ואפילו לסנן אותם לפי שמות המודלים. הפלט לא כולל מודלים מכווננים.
כדי לראות את מפרטי הפריסה של מודל, משתמשים במזהה המודל מהשלב הקודם. אתם יכולים לראות את סוג המכונה, סוג המאיץ ואת ה-URI של קובץ האימג' של הקונטיינר ש-Model Garden אימת למודל מסוים.
פריסת מודל בנקודת קצה. ב-Model Garden נעשה שימוש בהגדרת הפריסה שמוגדרת כברירת מחדל, אלא אם מציינים ארגומנטים וערכים נוספים.
gcloud
לפני שמתחילים, צריך לציין פרויקט מכסה כדי להריץ את הפקודות הבאות. הפקודות שאתם מריצים נספרות במכסות של הפרויקט הזה. למידע נוסף, קראו את המאמר הגדרת הפרויקט לצורכי מכסה.
מריצים את הפקודה
gcloud ai model-garden models listכדי להציג את רשימת המודלים שאפשר לפרוס. הפקודה הזו מציגה את כל מזהי המודלים ואת המודלים שאפשר לפרוס באופן עצמאי.gcloud ai model-garden models list --model-filter=gemmaבפלט, מחפשים את מזהה המודל לפריסה. בדוגמה הבאה מוצג פלט מקוצר.
MODEL_ID CAN_DEPLOY CAN_PREDICT google/gemma2@gemma-2-27b Yes No google/gemma2@gemma-2-27b-it Yes No google/gemma2@gemma-2-2b Yes No google/gemma2@gemma-2-2b-it Yes No google/gemma2@gemma-2-9b Yes No google/gemma2@gemma-2-9b-it Yes No google/gemma3@gemma-3-12b-it Yes No google/gemma3@gemma-3-12b-pt Yes No google/gemma3@gemma-3-1b-it Yes No google/gemma3@gemma-3-1b-pt Yes No google/gemma3@gemma-3-27b-it Yes No google/gemma3@gemma-3-27b-pt Yes No google/gemma3@gemma-3-4b-it Yes No google/gemma3@gemma-3-4b-pt Yes No google/gemma3n@gemma-3n-e2b Yes No google/gemma3n@gemma-3n-e2b-it Yes No google/gemma3n@gemma-3n-e4b Yes No google/gemma3n@gemma-3n-e4b-it Yes No google/gemma@gemma-1.1-2b-it Yes No google/gemma@gemma-1.1-2b-it-gg-hf Yes No google/gemma@gemma-1.1-7b-it Yes No google/gemma@gemma-1.1-7b-it-gg-hf Yes No google/gemma@gemma-2b Yes No google/gemma@gemma-2b-gg-hf Yes No google/gemma@gemma-2b-it Yes No google/gemma@gemma-2b-it-gg-hf Yes No google/gemma@gemma-7b Yes No google/gemma@gemma-7b-gg-hf Yes No google/gemma@gemma-7b-it Yes No google/gemma@gemma-7b-it-gg-hf Yes Noהפלט לא כולל מודלים מכווננים או מודלים של Hugging Face. כדי לראות אילו מודלים של Hugging Face נתמכים, מוסיפים את הדגל
--can-deploy-hugging-face-models.כדי לראות את מפרטי הפריסה של מודל, מריצים את הפקודה
gcloud ai model-garden models list-deployment-config. אתם יכולים לראות את סוג המכונה, סוג המאיץ וכתובת ה-URI של קובץ האימג' של הקונטיינר שנתמכים ב-Model Garden למודל מסוים.gcloud ai model-garden models list-deployment-config \ --model=MODEL_IDמחליפים את MODEL_ID במזהה המודל מהפקודה הקודמת, כמו
google/gemma@gemma-2bאוstabilityai/stable-diffusion-xl-base-1.0.כדי לפרוס מודל בנקודת קצה, מריצים את הפקודה
gcloud ai model-garden models deploy. ב-Model Garden נוצר שם לתצוגה של נקודת הקצה, ונעשה שימוש בהגדרת ברירת המחדל לפריסה, אלא אם מציינים ארגומנט וערכים נוספים.כדי להריץ את הפקודה באופן אסינכרוני, צריך לכלול את הדגל
--asynchronous.gcloud ai model-garden models deploy \ --model=MODEL_ID \ [--machine-type=MACHINE_TYPE] \ [--accelerator-type=ACCELERATOR_TYPE] \ [--endpoint-display-name=ENDPOINT_NAME] \ [--hugging-face-access-token=HF_ACCESS_TOKEN] \ [--reservation-affinity reservation-affinity-type=any-reservation] \ [--reservation-affinity reservation-affinity-type=specific-reservation, key="compute.googleapis.com/reservation-name", values=RESERVATION_RESOURCE_NAME] \ [--asynchronous]מחליפים את ה-placeholders הבאים:
- MODEL_ID: מזהה המודל מהפקודה הקודמת של הרשימה. במודלים של Hugging Face, צריך להשתמש בפורמט של כתובת ה-URL של המודל של Hugging Face, למשל
stabilityai/stable-diffusion-xl-base-1.0. - MACHINE_TYPE: מגדיר את קבוצת המשאבים לפריסה במודל, כמו
g2-standard-4. - ACCELERATOR_TYPE: מציין את המאיצים שצריך להוסיף לפריסה כדי לשפר את הביצועים כשעובדים עם עומסי עבודה כבדים, כמו
NVIDIA_L4. - ENDPOINT_NAME: שם לנקודת הקצה (endpoint) שנפרסה ב-Gemini Enterprise Agent Platform.
- HF_ACCESS_TOKEN: במודלים של Hugging Face, אם המודל מוגבל, צריך לספק אסימון גישה.
- RESERVATION_RESOURCE_NAME: כדי להשתמש במקום שמור ספציפי ב-Compute Engine, מציינים את שם המקום השמור. אם מציינים הזמנה ספציפית, אי אפשר לציין את
any-reservation.
הפלט כולל את הגדרת הפריסה שבה נעשה שימוש ב-Model Garden, את מזהה נקודת הקצה ואת מזהה פעולת הפריסה, שבאמצעותו אפשר לבדוק את סטטוס הפריסה.
Using the default deployment configuration: Machine type: g2-standard-12 Accelerator type: NVIDIA_L4 Accelerator count: 1 The project has enough quota. The current usage of quota for accelerator type NVIDIA_L4 in region us-central1 is 0 out of 28. Deploying the model to the endpoint. To check the deployment status, you can try one of the following methods: 1) Look for endpoint `ENDPOINT_DISPLAY_NAME` at the [Agent Platform] -> [Online prediction] tab in Cloud Console 2) Use `gcloud ai operations describe OPERATION_ID --region=LOCATION` to find the status of the deployment long-running operation- MODEL_ID: מזהה המודל מהפקודה הקודמת של הרשימה. במודלים של Hugging Face, צריך להשתמש בפורמט של כתובת ה-URL של המודל של Hugging Face, למשל
כדי לראות פרטים על הפריסה, מריצים את הפקודה
gcloud ai endpoints list --list-model-garden-endpoints-only:gcloud ai endpoints list --list-model-garden-endpoints-only \ --region=LOCATION_IDמחליפים את LOCATION_ID באזור שבו פרסתם את המודל.
הפלט כולל את כל נקודות הקצה שנוצרו מ-Model Garden, וכולל מידע כמו מזהה נקודת הקצה, שם נקודת הקצה ואם נקודת הקצה משויכת למודל שנפרס. כדי למצוא את הפריסה, מחפשים את שם נקודת הקצה שהתקבל מהפקודה הקודמת.
REST
מציגים את כל המודלים שאפשר לפרוס ואז מקבלים את המזהה של המודל שרוצים לפרוס. לאחר מכן תוכלו לפרוס את המודל עם הגדרות ברירת המחדל ונקודת הקצה שלו. לחלופין, אתם יכולים להתאים אישית את הפריסה, למשל להגדיר סוג מכונה ספציפי או להשתמש בנקודת קצה ייעודית.
רשימת המודלים שאפשר לפרוס
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- QUERY_PARAMETERS: כדי לרשום מודלים של Model Garden, הוסף את פרמטרי השאילתה הבאים
listAllVersions=True&filter=can_deploy(true). כדי להציג רשימה של מודלים של Hugging Face, מגדירים את המסנן לערךalt=json&is_hf_wildcard(true)+AND+labels.VERIFIED_DEPLOYMENT_CONFIG%3DVERIFIED_DEPLOYMENT_SUCCEED&listAllVersions=True.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
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/v1/publishers/*/models?QUERY_PARAMETERS"
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/v1/publishers/*/models?QUERY_PARAMETERS" | Select-Object -Expand Content
תתקבל תגובת JSON שדומה לזו:
{
"publisherModels": [
{
"name": "publishers/google/models/gemma3",
"versionId": "gemma-3-1b-it",
"openSourceCategory": "GOOGLE_OWNED_OSS_WITH_GOOGLE_CHECKPOINT",
"supportedActions": {
"openNotebook": {
"references": {
"us-central1": {
"uri": "https://colab.research.google.com/github/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/model_garden/model_garden_gradio_streaming_chat_completions.ipynb"
}
},
"resourceTitle": "Notebook",
"resourceUseCase": "Chat Completion Playground",
"resourceDescription": "Chat with deployed Gemma 2 endpoints via Gradio UI."
},
"deploy": {
"modelDisplayName": "gemma-3-1b-it",
"containerSpec": {
"imageUri": "us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250312_0916_RC01",
"args": [
"python",
"-m",
"vllm.entrypoints.api_server",
"--host=0.0.0.0",
"--port=8080",
"--model=gs://vertex-model-garden-restricted-us/gemma3/gemma-3-1b-it",
"--tensor-parallel-size=1",
"--swap-space=16",
"--gpu-memory-utilization=0.95",
"--disable-log-stats"
],
"env": [
{
"name": "MODEL_ID",
"value": "google/gemma-3-1b-it"
},
{
"name": "DEPLOY_SOURCE",
"value": "UI_NATIVE_MODEL"
}
],
"ports": [
{
"containerPort": 8080
}
],
"predictRoute": "/generate",
"healthRoute": "/ping"
},
"dedicatedResources": {
"machineSpec": {
"machineType": "g2-standard-12",
"acceleratorType": "NVIDIA_L4",
"acceleratorCount": 1
}
},
"publicArtifactUri": "gs://vertex-model-garden-restricted-us/gemma3/gemma3.tar.gz",
"deployTaskName": "vLLM 128K context",
"deployMetadata": {
"sampleRequest": "{\n \"instances\": [\n {\n \"@requestFormat\": \"chatCompletions\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"What is machine learning?\"\n }\n ],\n \"max_tokens\": 100\n }\n ]\n}\n"
}
},
...
פריסת מודל
פורסים מודל מ-Model Garden או מ-Hugging Face. אפשר גם להתאים אישית את הפריסה על ידי ציון שדות JSON נוספים.
פריסת מודל עם הגדרות ברירת המחדל שלו.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: אזור שבו המודל פרוס.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- MODEL_ID: המזהה של המודל לפריסה, שאפשר לקבל מרשימת כל המודלים שניתנים לפריסה. המזהה הוא בפורמט הבא: publishers/PUBLISHER_NAME/models/ MODEL_NAME@MODEL_VERSION.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
גוף בקשת JSON:
{
"publisher_model_name": "MODEL_ID",
"model_config": {
"accept_eula": "true"
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json.
כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:
cat > request.json << 'EOF'
{
"publisher_model_name": "MODEL_ID",
"model_config": {
"accept_eula": "true"
}
}
EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
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:deploy"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json.
כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:
@'
{
"publisher_model_name": "MODEL_ID",
"model_config": {
"accept_eula": "true"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$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:deploy" | Select-Object -Expand Content
תתקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata",
"genericMetadata": {
"createTime": "2025-03-13T21:44:44.538780Z",
"updateTime": "2025-03-13T21:44:44.538780Z"
},
"publisherModel": "publishers/google/models/gemma3@gemma-3-1b-it",
"destination": "projects/PROJECT_ID/locations/LOCATION",
"projectNumber": "PROJECT_ID"
}
}
פריסת מודל של Hugging Face
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: אזור שבו המודל פרוס.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- MODEL_ID: מזהה המודל של Hugging Face לפריסה, שאפשר לקבל מרשימת כל המודלים שאפשר לפרוס. המזהה משתמש בפורמט הבא: PUBLISHER_NAME/MODEL_NAME.
- ACCESS_TOKEN: אם המודל מוגבל, צריך לספק אסימון גישה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
גוף בקשת JSON:
{
"hugging_face_model_id": "MODEL_ID",
"hugging_face_access_token": "ACCESS_TOKEN",
"model_config": {
"accept_eula": "true"
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json.
כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:
cat > request.json << 'EOF'
{
"hugging_face_model_id": "MODEL_ID",
"hugging_face_access_token": "ACCESS_TOKEN",
"model_config": {
"accept_eula": "true"
}
}
EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
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:deploy"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json.
כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:
@'
{
"hugging_face_model_id": "MODEL_ID",
"hugging_face_access_token": "ACCESS_TOKEN",
"model_config": {
"accept_eula": "true"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$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:deploy" | Select-Object -Expand Content
תתקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/us-central1LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata",
"genericMetadata": {
"createTime": "2025-03-13T21:44:44.538780Z",
"updateTime": "2025-03-13T21:44:44.538780Z"
},
"publisherModel": "publishers/PUBLISHER_NAME/model/MODEL_NAME",
"destination": "projects/PROJECT_ID/locations/LOCATION",
"projectNumber": "PROJECT_ID"
}
}
פריסת מודל עם התאמות אישיות
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: אזור שבו המודל פרוס.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- MODEL_ID: המזהה של המודל לפריסה, שאפשר לקבל מרשימת כל המודלים שניתנים לפריסה. המזהה הוא בפורמט: publishers/PUBLISHER_NAME/models/MODEL_NAME@MODEL_VERSION, למשל
google/gemma@gemma-2bאוstabilityai/stable-diffusion-xl-base-1.0. - MACHINE_TYPE: מגדיר את קבוצת המשאבים לפריסה במודל, כמו
g2-standard-4. - ACCELERATOR_TYPE:
מציין את המאיצים שצריך להוסיף לפריסה כדי לשפר את הביצועים
כשעובדים עם עומסי עבודה אינטנסיביים, כמו
NVIDIA_L4 - ACCELERATOR_COUNT: מספר המאיצים שבהם משתמשים בפריסה.
-
reservation_affinity_type: כדי להשתמש במקום שמור קיים ב-Compute Engine לפריסה, צריך לציין מקום שמור כלשהו או מקום שמור ספציפי. אם מציינים את הערך הזה, לא מציינים אתspot. -
spot: אם להשתמש במכונות וירטואליות במודל Spot בפריסה. - IMAGE_URI: המיקום של קובץ האימג' של הקונטיינר שבו רוצים להשתמש, למשל
us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20241016_0916_RC00_maas - CONTAINER_ARGS: ארגומנטים שיועברו לקונטיינר במהלך הפריסה.
- CONTAINER_PORT: מספר היציאה של הקונטיינר.
-
fast_tryout_enabled: כשבודקים מודל, אפשר לבחור להשתמש בפריסה מהירה יותר. האפשרות הזו זמינה רק למודלים בשימוש נרחב עם סוגי מכונות מסוימים. אם האפשרות הזו מופעלת, אי אפשר לציין הגדרות של מודל או פריסה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
גוף בקשת JSON:
{
"publisher_model_name": "MODEL_ID",
"deploy_config": {
"dedicated_resources": {
"machine_spec": {
"machine_type": "MACHINE_TYPE",
"accelerator_type": "ACCELERATOR_TYPE",
"accelerator_count": ACCELERATOR_COUNT,
"reservation_affinity": {
"reservation_affinity_type": "ANY_RESERVATION"
}
},
"spot": "false"
}
},
"model_config": {
"accept_eula": "true",
"container_spec": {
"image_uri": "IMAGE_URI",
"args": [CONTAINER_ARGS ],
"ports": [
{
"container_port": CONTAINER_PORT
}
]
}
},
"deploy_config": {
"fast_tryout_enabled": false
},
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json.
כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:
cat > request.json << 'EOF'
{
"publisher_model_name": "MODEL_ID",
"deploy_config": {
"dedicated_resources": {
"machine_spec": {
"machine_type": "MACHINE_TYPE",
"accelerator_type": "ACCELERATOR_TYPE",
"accelerator_count": ACCELERATOR_COUNT,
"reservation_affinity": {
"reservation_affinity_type": "ANY_RESERVATION"
}
},
"spot": "false"
}
},
"model_config": {
"accept_eula": "true",
"container_spec": {
"image_uri": "IMAGE_URI",
"args": [CONTAINER_ARGS ],
"ports": [
{
"container_port": CONTAINER_PORT
}
]
}
},
"deploy_config": {
"fast_tryout_enabled": false
},
}
EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
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:deploy"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json.
כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:
@'
{
"publisher_model_name": "MODEL_ID",
"deploy_config": {
"dedicated_resources": {
"machine_spec": {
"machine_type": "MACHINE_TYPE",
"accelerator_type": "ACCELERATOR_TYPE",
"accelerator_count": ACCELERATOR_COUNT,
"reservation_affinity": {
"reservation_affinity_type": "ANY_RESERVATION"
}
},
"spot": "false"
}
},
"model_config": {
"accept_eula": "true",
"container_spec": {
"image_uri": "IMAGE_URI",
"args": [CONTAINER_ARGS ],
"ports": [
{
"container_port": CONTAINER_PORT
}
]
}
},
"deploy_config": {
"fast_tryout_enabled": false
},
}
'@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$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:deploy" | Select-Object -Expand Content
תתקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata",
"genericMetadata": {
"createTime": "2025-03-13T21:44:44.538780Z",
"updateTime": "2025-03-13T21:44:44.538780Z"
},
"publisherModel": "publishers/google/models/gemma3@gemma-3-1b-it",
"destination": "projects/PROJECT_ID/locations/LOCATION",
"projectNumber": "PROJECT_ID"
}
}
המסוף
נכנסים לדף Model Garden במסוף Google Cloud .
מוצאים מודל נתמך שרוצים לפרוס ולוחצים על כרטיס המודל שלו.
לוחצים על Deploy כדי לפתוח את החלונית Deploy model.
בחלונית Deploy model, מציינים את פרטי הפריסה.
- משתמשים בשמות שנוצרו למודל ולנקודת הקצה, או משנים אותם.
- בוחרים מיקום שבו רוצים ליצור את נקודת הקצה של המודל.
- בוחרים את סוג המכונה לכל צומת בפריסה.
כדי להשתמש בהזמנה של Compute Engine, בקטע Deployment settings בוחרים באפשרות Advanced.
בשדה Reservation type, בוחרים סוג הזמנה. ההזמנה חייבת להתאים למפרט המכונה שציינתם.
- Automatically use created reservation: פלטפורמת Gemini Enterprise Agent בוחרת באופן אוטומטי הקצאת מקום מותרת עם מאפיינים תואמים. אם אין קיבולת במאגר שנבחר אוטומטית, Gemini Enterprise Agent Platform משתמש במאגר המשאבים הכללי של Google Cloud.
- בחירת מקומות שמורים ספציפיים: Gemini Enterprise Agent Platform משתמשת במקום שמור ספציפי. אם אין קיבולת להזמנה שבחרתם, תופיע שגיאה.
- לא להשתמש (ברירת המחדל): פלטפורמת הסוכנים של Gemini Enterprise משתמשת במאגר המשאבים הכללי שלGoogle Cloud . הערך הזה זהה לאי-ציון של הזמנה.
לוחצים על Deploy.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform. למידע נוסף, ראו את מאמרי העזרה לספקים של Terraform.
פריסת מודל
בדוגמה הבאה, המודל gemma-3-1b-it נפרס בנקודת קצה חדשה של Agent Platform ב-us-central1 באמצעות הגדרות ברירת המחדל.
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "6.45.0"
}
}
}
provider "google" {
region = "us-central1"
}
resource "google_vertex_ai_endpoint_with_model_garden_deployment" "gemma_deployment" {
publisher_model_name = "publishers/google/models/gemma3@gemma-3-1b-it"
location = "us-central1"
model_config {
accept_eula = True
}
}
כדי לפרוס מודל עם התאמה אישית, קראו את המאמר פריסה של נקודת קצה של Agent Platform באמצעות Model Garden.
החלת ההגדרות האישיות
terraform init
terraform plan
terraform apply
אחרי שמחילים את ההגדרות, Terraform מקצה נקודת קצה חדשה של Agent Platform ופורסת את המודל הפתוח שצוין.
מחיקה
כדי למחוק את נקודת הקצה ואת פריסת המודל, מריצים את הפקודה הבאה:
terraform destroy
הסקת מסקנות ב-Gemma 3 1B באמצעות PredictionServiceClient
אחרי שפורסים את Gemma 3 1B, משתמשים ב-PredictionServiceClient כדי לקבל חיזויים אונליין להנחיה: "Why is the sky blue?"
פרמטרים של קוד
בדוגמאות הקוד של PredictionServiceClient צריך לעדכן את הפרטים הבאים.
PROJECT_ID: כדי למצוא את מזהה הפרויקט, פועלים לפי השלבים הבאים.נכנסים לדף Welcome במסוף Google Cloud .
בכלי לבחירת פרויקטים שבחלק העליון של הדף, בוחרים את הפרויקט.
שם הפרויקט, מספר הפרויקט ומזהה הפרויקט מופיעים אחרי הכותרת Welcome.
ENDPOINT_REGION: האזור שבו פרסתם את נקודת הקצה.
ENDPOINT_ID: כדי למצוא את מזהה נקודת הקצה, אפשר להציג אותו במסוף או להריץ את הפקודהgcloud ai endpoints list. תצטרכו את שם נקודת הקצה והאזור מהחלונית Deploy model.המסוף
כדי לראות את פרטי נקודת הקצה, לוחצים על Online prediction > Endpoints ובוחרים את האזור. שימו לב למספר שמופיע בעמודה
ID.gcloud
כדי לראות את פרטי נקודת הקצה, מריצים את הפקודה
gcloud ai endpoints list.gcloud ai endpoints list \ --region=ENDPOINT_REGION \ --filter=display_name=ENDPOINT_NAMEהפלט אמור להיראות כך:
Using endpoint [https://us-central1-aiplatform.googleapis.com/] ENDPOINT_ID: 1234567891234567891 DISPLAY_NAME: gemma2-2b-it-mg-one-click-deploy
קוד לדוגמה
בקוד לדוגמה של השפה שלכם, מעדכנים את PROJECT_ID, ENDPOINT_REGION ו-ENDPOINT_ID. ואז מריצים את הקוד.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של ה-API מבוסס-Python.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js שמפורטות במאמר התחלה מהירה של Agent Platform באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java שמפורטות במאמר התחלה מהירה של Agent Platform באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Go
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go שמפורטות במאמר התחלה מהירה של Agent Platform באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים הנפרדים.
מחיקת הפרויקט
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת משאבים ספציפיים
אם אתם רוצים לשמור את הפרויקט, אתם צריכים למחוק את המשאבים שבהם השתמשתם במדריך הזה:
- ביטול הפריסה של המודל ומחיקת נקודת הקצה (endpoint)
- מחיקת המודל ממרשם המודלים
ביטול הפריסה של המודל ומחיקת נקודת הקצה (endpoint)
כדי לבטל פריסה של מודל ולמחוק את נקודת הקצה, אפשר להשתמש באחת מהשיטות הבאות.
המסוף
במסוף Google Cloud , לוחצים על Online prediction ואז על Endpoints.
ברשימה הנפתחת Region, בוחרים את האזור שבו פרסתם את נקודת הקצה.
לוחצים על שם נקודת הקצה כדי לפתוח את דף הפרטים. לדוגמה:
gemma2-2b-it-mg-one-click-deploy.בשורה של המודל
Gemma 2 (Version 1), לוחצים על Actions ואז על Undeploy model from endpoint.בתיבת הדו-שיח Undeploy model from endpoint, לוחצים על Undeploy.
לוחצים על הכפתור הקודם כדי לחזור לדף נקודות קצה (endpoints).
בסוף השורה של
gemma2-2b-it-mg-one-click-deploy, לוחצים על Actions ואז על Delete endpoint.בחלון האישור, לוחצים על אישור.
gcloud
כדי לבטל את פריסת המודל ולמחוק את נקודת הקצה באמצעות Google Cloud CLI:
בפקודות האלה, מחליפים את:
- PROJECT_ID בשם הפרויקט
- LOCATION_ID באזור שבו פרסתם את המודל ואת נקודת הקצה
- ENDPOINT_ID במזהה נקודת הקצה (endpoint)
- DEPLOYED_MODEL_NAME עם השם המוצג של המודל
- DEPLOYED_MODEL_ID עם מזהה המודל
מריצים את הפקודה
gcloud ai endpoints listכדי לקבל את מזהה נקודת הקצה. הפקודה הזו מציגה את המזהים של כל נקודות הקצה בפרויקט. שימו לב למזהה של נקודת הקצה שמשמשת במדריך הזה.gcloud ai endpoints list \ --project=PROJECT_ID \ --region=LOCATION_IDהפלט אמור להיראות כך: בפלט, המזהה נקרא
ENDPOINT_ID.Using endpoint [https://us-central1-aiplatform.googleapis.com/] ENDPOINT_ID: 1234567891234567891 DISPLAY_NAME: gemma2-2b-it-mg-one-click-deployמריצים את הפקודה
gcloud ai models describeכדי לקבל את מזהה המודל. רושמים את מזהה המודל שפרסתם במדריך הזה.gcloud ai models describe DEPLOYED_MODEL_NAME \ --project=PROJECT_ID \ --region=LOCATION_IDהפלט המקוצר נראה כך: בפלט, המזהה נקרא
deployedModelId.Using endpoint [https://us-central1-aiplatform.googleapis.com/] artifactUri: [URI removed] baseModelSource: modelGardenSource: publicModelName: publishers/google/models/gemma2 ... deployedModels: - deployedModelId: '1234567891234567891' endpoint: projects/12345678912/locations/us-central1/endpoints/12345678912345 displayName: gemma2-2b-it-12345678912345 etag: [ETag removed] modelSourceInfo: sourceType: MODEL_GARDEN name: projects/123456789123/locations/us-central1/models/gemma2-2b-it-12345678912345 ...מבטלים את פריסת המודל מנקודת הקצה. תצטרכו את מזהה נקודת הקצה ומזהה המודל מהפקודות הקודמות.
gcloud ai endpoints undeploy-model ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID \ --deployed-model-id=DEPLOYED_MODEL_IDהפקודה הזו לא יוצרת פלט.
מריצים את הפקודה
gcloud ai endpoints deleteכדי למחוק את נקודת הקצה.gcloud ai endpoints delete ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_IDכשמופיעה בקשה, מקלידים
yכדי לאשר. הפקודה הזו לא יוצרת פלט.
מחיקת המודל
המסוף
במסוף Google Cloud , בקטע Agent Platform, נכנסים לדף Model Registry.
ברשימה הנפתחת Region, בוחרים את האזור שבו פרסתם את המודל.
בסוף השורה של
gemma2-2b-it-1234567891234, לוחצים על Actions.לוחצים על מחיקת המודל.
כשמוחקים את המודל, כל הגרסאות וההערכות שמשויכות למודל נמחקות מהפרויקט ב- Google Cloud .
בהודעת האישור, לוחצים על מחיקה.
gcloud
כדי למחוק את המודל באמצעות Google Cloud CLI, צריך להזין את השם המוצג של המודל ואת האזור בפקודה gcloud ai models delete.
gcloud ai models delete DEPLOYED_MODEL_NAME \
--project=PROJECT_ID \
--region=LOCATION_ID
מחליפים את DEPLOYED_MODEL_NAME בשם המוצג של המודל. מחליפים את PROJECT_ID בשם הפרויקט. מחליפים את LOCATION_ID באזור שבו פרסתם את המודל.
המאמרים הבאים
- מידע נוסף על המודלים הפתוחים של Gemma
- קוראים את התנאים וההגבלות של Gemma.
- מידע נוסף על מודלים פתוחים
- איך פורסים מודל מכוונן
- איך פורסים את Gemma 2 ב-Google Kubernetes Engine באמצעות HuggingFace Textgen Inference (TGI)
- מידע נוסף על
PredictionServiceClientבשפה המועדפת עליכם: Python, Node.js, Java או Go.