בדף הזה מוסבר איך להציג בקשות הסקה באמצעות NVIDIA Triton inference server באמצעות Gemini Enterprise Agent Platform. NVIDIA Triton inference server (Triton) הוא פתרון בקוד פתוח להצגת היקשים מ-NVIDIA, שעבר אופטימיזציה למעבדי CPU ולמעבדי GPU, ומפשט את תהליך הצגת ההיקשים.
NVIDIA Triton ב-Gemini Enterprise Agent Platform
Gemini Enterprise Agent Platform תומך בפריסת מודלים בשרת ההסקה של Triton שפועל בקונטיינר בהתאמה אישית שפורסם על ידי NVIDIA GPU Cloud (NGC) – תמונה של שרת ההסקה של NVIDIA Triton. קובצי אימג' של Triton מ-NVIDIA מכילים את כל החבילות וההגדרות הנדרשות שעומדות בדרישות של Gemini Enterprise Agent Platform לקובצי אימג' של קונטיינרים בהתאמה אישית להצגת מודלים. התמונה מכילה את שרת ההסקה של Triton עם תמיכה במודלים של TensorFlow, PyTorch, TensorRT, ONNX ו-OpenVINO. התמונה כוללת גם קצה עורפי של FIL (Forest Inference Library) שתומך בהרצת framework של ML כמו XGBoost, LightGBM ו-Scikit-Learn.
Triton טוען את המודלים וחושף נקודות קצה של REST להסקת מסקנות, לבדיקת תקינות ולניהול מודלים, שמשתמשות בפרוטוקולים סטנדרטיים להסקת מסקנות. בזמן פריסת מודל ב-Gemini Enterprise Agent Platform, Triton מזהה סביבות של Gemini Enterprise Agent Platform ומאמץ את פרוטוקול ההסקה של Vertex AI עבור בדיקות תקינות ובקשות הסקה.
הרשימה הבאה מתארת תכונות מרכזיות ותרחישי שימוש בשרת ההסקה של NVIDIA Triton:
- תמיכה במספר מסגרות של למידה עמוקה ולמידת מכונה: Triton תומך בפריסה של מספר מודלים ובשילוב של מסגרות ופורמטים של מודלים – TensorFlow (SavedModel ו-GraphDef), PyTorch (TorchScript), TensorRT, ONNX, OpenVINO ו-FIL backends לתמיכה במסגרות כמו XGBoost, LightGBM, Scikit-Learn וכל פורמט מודל מותאם אישית של Python או C++.
- הרצה מקבילה של כמה מודלים: Triton מאפשר להריץ במקביל כמה מודלים, כמה מופעים של אותו מודל או שילוב של שניהם באותו משאב מחשוב עם אפס או יותר מעבדי GPU.
- שילוב מודלים (שרשור או פייפליין): Triton ensemble תומך בתרחישי שימוש שבהם כמה מודלים מורכבים כפייפליין (או כ-DAG, גרף אציקלי מכוון) עם טנסורים של קלט ופלט שמחוברים ביניהם. בנוסף, עם קצה עורפי של Triton Python, אפשר לכלול כל לוגיקה של עיבוד מקדים, עיבוד פוסט או זרימת בקרה שמוגדרת על ידי Business Logic Scripting (BLS).
- הפעלה ב-backends של CPU ו-GPU: Triton תומך בהסקת מסקנות לגבי מודלים שנפרסו בצמתים עם מעבדי CPU ו-GPU.
- חבילות (batching) דינמיות של בקשות הסקה: למודלים שתומכים בחבילות, ל-Triton יש אלגוריתמים מובנים לתזמון ולחבילות. האלגוריתמים האלה משלבים באופן דינמי בקשות היסק בודדות לאצוות בצד השרת כדי לשפר את קצב העברת הנתונים של ההיסק ולהגדיל את השימוש ב-GPU.
מידע נוסף על שרת ההסקה של NVIDIA Triton זמין במאמרי העזרה בנושא Triton.
קובצי אימג' זמינים של קונטיינרים של NVIDIA Triton
בטבלה הבאה מפורטות תמונות ה-Docker של Triton שזמינות בקטלוג NVIDIA NGC. בוחרים תמונה על סמך מסגרת המודל, העורף וגודל תמונת המאגר שבה משתמשים.
xx ו-yy מתייחסים לגרסאות ראשיות ומשניות של Triton, בהתאמה.
| תמונה של NVIDIA Triton | תמיכה |
|---|---|
xx.yy-py3 |
מאגר מלא עם תמיכה במודלים של TensorFlow, PyTorch, TensorRT, ONNX ו-OpenVINO |
xx.yy-pyt-python-py3 |
רק בקצה העורפי של PyTorch ו-Python |
xx.yy-tf2-python-py3 |
רק TensorFlow 2.x ו-Python backends |
xx.yy-py3-min |
התאמה אישית של מאגר Triton לפי הצורך |
תחילת העבודה: הצגת מסקנות עם NVIDIA Triton
באיור הבא מוצגת הארכיטקטורה ברמה גבוהה של Triton ב-Vertex AI Inference:

- מודל ML שמופעל על ידי Triton רשום במרשם המודלים של Gemini Enterprise Agent Platform. המטא-נתונים של המודל מפנים למיקום של ארטיפקטים של המודל ב-Cloud Storage, למאגר התגים המותאם אישית להצגת מודלים ולתצורה שלו.
- המודל ממרשם המודלים של Gemini Enterprise Agent Platform נפרס לנקודת קצה של Vertex AI Inference שמופעל בה שרת Triton inference כקונטיינר בהתאמה אישית בצמתי מחשוב עם CPU ו-GPU.
- בקשות הסקה מגיעות לשרת ההסקה של Triton דרך נקודת קצה של Vertex AI Inference, ומנותבות לתזמן המתאים.
- הקצה העורפי מבצע הסקה באמצעות נתוני הקלט שסופקו בבקשות באצ' ומחזיר תגובה.
- Triton מספק נקודות קצה (endpoints) של מוכנות ופעילות, שמאפשרות לשלב את Triton בסביבות פריסה כמו Gemini Enterprise Agent Platform.
במדריך הזה נסביר איך להשתמש בקונטיינר בהתאמה אישית שמריץ שרת הסקה של NVIDIA Triton כדי לפרוס מודל של למידת מכונה (ML) ב-Gemini Enterprise Agent Platform, שמשרת הסקות אונליין. תפרסו קונטיינר שמופעל בו Triton כדי להכניס לשימוש בסביבת הייצור היקשים ממודל לזיהוי אובייקטים מ-TensorFlow Hub שעבר אימון מראש על מערך הנתונים COCO 2017. אחר כך תוכלו להשתמש ב-Gemini Enterprise Agent Platform כדי לזהות אובייקטים בתמונה.
כדי להריץ את המדריך הזה בפורמט notebook:
פתיחה ב-Colab | פתיחה ב-Colab Enterprise | הצגה ב-GitHub | פתיחה ב-Vertex AI Workbench |לפני שמתחילים
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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 Cloud de Confiance project.
Enable the Agent Platform API and Artifact Registry API APIs, if any are 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.-
במסוף Cloud de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
במהלך המדריך הזה, מומלץ להשתמש ב-Cloud Shell כדי ליצור אינטראקציה עם Cloud de Confiance by S3NS. אם אתם רוצים להשתמש במעטפת Bash אחרת במקום ב-Cloud Shell, אתם צריכים לבצע את ההגדרה הנוספת הבאה:
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init - פועלים לפי ההוראות להתקנת Docker במסמכי התיעוד של Artifact Registry.
יצירה והעברה בדחיפה של תמונת הקונטיינר
כדי להשתמש בקונטיינר בהתאמה אישית, צריך לציין קובץ אימג' של קונטיינר Docker שעומד בדרישות לקונטיינר בהתאמה אישית. בקטע הזה מוסבר איך ליצור את קובץ אימג' של קונטיינר ולהעביר אותו בדחיפה ל-Artifact Registry.
הורדת ארטיפקטים של מודל
ארטיפקטים של מודלים הם קבצים שנוצרים על ידי אימון של מודלים ללמידת מכונה, ואפשר להשתמש בהם כדי להציג מסקנות. הם מכילים, לכל הפחות, את המבנה והמשקלים של מודל ה-ML שאומן. הפורמט של ארטיפקטים של מודלים תלוי ב-framework של ML שבו אתם משתמשים לאימון.
במדריך הזה, במקום לאמן מודל מאפס, תורידו את המודל לזיהוי אובייקטים מ-TensorFlow Hub, שאומן על מערך הנתונים COCO 2017.
Triton מצפה שמאגר המודלים יהיה מאורגן במבנה הבא כדי להציג את הפורמט TensorFlow SavedModel:
└── model-repository-path
└── model_name
├── config.pbtxt
└── 1
└── model.savedmodel
└── <saved-model-files>
בקובץ config.pbtxt מתואר הגדרת המודל של המודל. כברירת מחדל, צריך לספק את קובץ התצורה של המודל שמכיל את ההגדרות הנדרשות. עם זאת, אם מפעילים את Triton עם האפשרות --strict-model-config=false, במקרים מסוימים אפשר ליצור את הגדרות המודל באופן אוטומטי על ידי Triton, ולא צריך לספק אותן באופן מפורש.
באופן ספציפי, מודלים של TensorRT, TensorFlow SavedModel ו-ONNX לא מצריכים קובץ הגדרות של מודל, כי Triton יכול להסיק את כל ההגדרות הנדרשות באופן אוטומטי. בכל שאר סוגי המודלים צריך לספק קובץ הגדרות של המודל.
# Download and organize model artifacts according to the Triton model repository spec
mkdir -p models/object_detector/1/model.savedmodel/
curl -L "https://tfhub.dev/tensorflow/faster_rcnn/resnet101_v1_640x640/1?tf-hub-format=compressed" | \
tar -zxvC ./models/object_detector/1/model.savedmodel/
ls -ltr ./models/object_detector/1/model.savedmodel/
אחרי הורדת המודל באופן מקומי, מאגר המודלים יסודר באופן הבא:
./models
└── object_detector
└── 1
└── model.savedmodel
├── saved_model.pb
└── variables
├── variables.data-00000-of-00001
└── variables.index
העתקת ארטיפקטים של מודל לקטגוריה של Cloud Storage
הארטיפקטים של המודל שהורדו, כולל קובץ התצורה של המודל, מועלים לקטגוריה של Cloud Storage שצוינה באמצעות MODEL_ARTIFACTS_REPOSITORY. אפשר להשתמש בהם כשיוצרים את משאב המודל של Gemini Enterprise Agent Platform.
gcloud storage cp ./models/object_detector MODEL_ARTIFACTS_REPOSITORY/ --recursive
יצירת מאגר Artifact Registry
יוצרים מאגר ב-Artifact Registry כדי לאחסן את קובץ האימג' של קונטיינר שייווצר בקטע הבא.
מפעילים את שירות Artifact Registry API בפרויקט.
gcloud services enable artifactregistry.googleapis.com
מריצים את הפקודה הבאה במעטפת כדי ליצור מאגר של Artifact Registry:
gcloud artifacts repositories create getting-started-nvidia-triton \
--repository-format=docker \
--location=LOCATION_ID \
--description="NVIDIA Triton Docker repository"
מחליפים את LOCATION_ID באזור שבו Artifact Registry מאחסן את קובץ האימג' של קונטיינר. בהמשך, תצטרכו ליצור משאב של מודל Gemini Enterprise Agent Platform בנקודת קצה למיקום שמתאימה לאזור הזה, לכן חשוב לבחור אזור שבו ל-Gemini Enterprise Agent Platform יש נקודת קצה למיקום, כמו us-central1.
אחרי שהפעולה מסתיימת, הפקודה מדפיסה את הפלט הבא:
Created repository [getting-started-nvidia-triton].
יוצרים את קובץ האימג' של הקונטיינר
NVIDIA מספקת קובצי אימג' של Docker ליצירת קובץ אימג' של קונטיינר שמריץ את Triton ומתאים לדרישות הקונטיינר בהתאמה אישית של Gemini Enterprise Agent Platform לצורך הצגה. אפשר למשוך את התמונה באמצעות docker ולתייג את הנתיב ב-Artifact Registry שאליו התמונה תידחף.
NGC_TRITON_IMAGE_URI="nvcr.io/nvidia/tritonserver:22.01-py3"
docker pull $NGC_TRITON_IMAGE_URI
docker tag $NGC_TRITON_IMAGE_URI LOCATION_ID-docker.pkg.dev/PROJECT_ID/getting-started-nvidia-triton/vertex-triton-inference
מחליפים את מה שכתוב בשדות הבאים:
- LOCATION_ID: האזור של מאגר Artifact Registry, כפי שצוין בקטע הקודם
- PROJECT_ID: המזהה של Cloud de Confianceהפרויקט
הפעלת הפקודה עשויה להימשך כמה דקות.
הכנת קובץ מטען ייעודי (payload) לבדיקת בקשות הסקה
כדי לשלוח לשרת של הקונטיינר בקשת הסקה, צריך להכין את מטען הייעודי (payload) עם קובץ תמונה לדוגמה באמצעות Python. מריצים את סקריפט Python הבא כדי ליצור את קובץ המטען הייעודי (payload):
import json
import requests
# install required packages before running
# pip install pillow numpy --upgrade
from PIL import Image
import numpy as np
# method to generate payload from image url
def generate_payload(image_url):
# download image from url and resize
image_inputs = Image.open(requests.get(image_url, stream=True).raw)
image_inputs = image_inputs.resize((200, 200))
# convert image to numpy array
image_tensor = np.asarray(image_inputs)
# derive image shape
image_shape = [1] + list(image_tensor.shape)
# create payload request
payload = {
"id": "0",
"inputs": [
{
"name": "input_tensor",
"shape": image_shape,
"datatype": "UINT8",
"parameters": {},
"data": image_tensor.tolist(),
}
],
}
# save payload as json file
payload_file = "instances.json"
with open(payload_file, "w") as f:
json.dump(payload, f)
print(f"Payload generated at {payload_file}")
return payload_file
if __name__ == '__main__':
image_url = "https://github.com/tensorflow/models/raw/master/research/object_detection/test_images/image2.jpg"
payload_file = generate_payload(image_url)
סקריפט Python יוצר מטען ייעודי (payload) ומדפיס את התגובה הבאה:
Payload generated at instances.json
הפעלת הקונטיינר באופן מקומי (אופציונלי)
לפני שמעבירים את תמונת מאגר התגים אל Artifact Registry כדי להשתמש בה עם פלטפורמת הנציגים של Gemini Enterprise, אפשר להריץ אותה כמאגר תגים בסביבה המקומית כדי לוודא שהשרת פועל כמו שציפיתם:
כדי להריץ את קובץ אימג' של קונטיינר באופן מקומי, מריצים את הפקודה הבאה במעטפת:
docker run -t -d -p 8000:8000 --rm \ --name=local_object_detector \ -e AIP_MODE=True \ LOCATION_ID-docker.pkg.dev/PROJECT_ID/getting-started-nvidia-triton/vertex-triton-inference \ --model-repository MODEL_ARTIFACTS_REPOSITORY \ --strict-model-config=falseמחליפים את הערכים הבאים, כמו שעשיתם בקטע הקודם:
- LOCATION_ID: האזור של מאגר Artifact Registry, כפי שצוין בקטע הקודם.
- PROJECT_ID: המזהה של Cloud de Confiance. פרויקט
- MODEL_ARTIFACTS_REPOSITORY: הנתיב ב-Cloud Storage שבו נמצאים ארטיפקטים של המודל.
הפקודה הזו מריצה קונטיינר במצב מנותק, וממפה את יציאה
8000של הקונטיינר ליציאה8000של הסביבה המקומית. קובץ האימג' של Triton מ-NGC מגדיר את Triton לשימוש ביציאה8000.כדי לשלוח לשרת של הקונטיינר בדיקת תקינות, מריצים את הפקודה הבאה במעטפת:
curl -s -o /dev/null -w "%{http_code}" http://localhost:8000/v2/health/readyאם הפעולה מצליחה, השרת מחזיר את קוד הסטטוס
200.מריצים את הפקודה הבאה כדי לשלוח לשרת של מאגר התגים בקשת הסקה באמצעות מטען הייעודי (payload) שנוצר קודם, ומקבלים תשובות הסקה:
curl -X POST \ -H "Content-Type: application/json" \ -d @instances.json \ localhost:8000/v2/models/object_detector/infer | jq -c '.outputs[] | select(.name == "detection_classes")'הבקשה הזו משתמשת באחת מתמונות הבדיקה שכלולות בדוגמה של זיהוי אובייקטים ב-TensorFlow.
אם הפעולה מצליחה, השרת מחזיר את ההסקה הבאה:
{"name":"detection_classes","datatype":"FP32","shape":[1,300],"data":[38,1,...,44]}כדי לעצור את הקונטיינר, מריצים את הפקודה הבאה במעטפת:
docker stop local_object_detector
דחיפת קובץ האימג' של הקונטיינר אל Artifact Registry
מגדירים את Docker כדי לגשת ל-Artifact Registry. אחר כך מעבירים את קובץ אימג' של קונטיינר למאגר ב-Artifact Registry.
כדי לתת להתקנת Docker המקומית הרשאה לשלוח ל-Artifact Registry באזור שבחרתם, מריצים את הפקודה הבאה במעטפת:
gcloud auth configure-docker LOCATION_ID-docker.pkg.dev- מחליפים את LOCATION_ID באזור שבו יצרתם את המאגר בקטע הקודם.
כדי לדחוף את קובץ האימג' של קונטיינר שנוצר זה עתה אל Artifact Registry, מריצים את הפקודה הבאה במעטפת:
docker push LOCATION_ID-docker.pkg.dev/PROJECT_ID/getting-started-nvidia-triton/vertex-triton-inferenceמחליפים את הערכים הבאים, כמו שעשיתם בקטע הקודם:
- LOCATION_ID: האזור של מאגר Artifact Registry, כפי שצוין בקטע הקודם.
- PROJECT_ID: מזהה Cloud de Confianceהפרויקט.
פריסת המודל
בקטע הזה יוצרים מודל ונקודת קצה, ואז פורסים את המודל בנקודת הקצה.
יצירת מודל
כדי ליצור משאב Model שמשתמש בקונטיינר בהתאמה אישית שמריץ את Triton, משתמשים בפקודה gcloud ai models upload.
לפני שיוצרים את המודל, כדאי לקרוא את המאמר הגדרות של מאגרי תגים בהתאמה אישית כדי להבין אם צריך לציין את השדות האופציונליים sharedMemorySizeMb, startupProbe ו-healthProbe במאגר התגים.
gcloud ai models upload \
--region=LOCATION_ID \
--display-name=DEPLOYED_MODEL_NAME \
--container-image-uri=LOCATION_ID-docker.pkg.dev/PROJECT_ID/getting-started-nvidia-triton/vertex-triton-inference \
--artifact-uri=MODEL_ARTIFACTS_REPOSITORY \
--container-args='--strict-model-config=false'
- LOCATION_ID: האזור שבו משתמשים ב-Agent Platform.
- PROJECT_ID: המזהה של Cloud de Confianceהפרויקט
-
DEPLOYED_MODEL_NAME: שם ל-
DeployedModel. אפשר גם להשתמש בשם המוצג שלModelבשבילDeployedModel.
הארגומנט --container-args='--strict-model-config=false' מאפשר ל-Triton ליצור את הגדרות המודל באופן אוטומטי.
יצירת נקודת קצה
כדי להשתמש במודל להצגת מסקנות אונליין, צריך לפרוס אותו לנקודת קצה. אם אתם פורסים מודל לנקודת קצה קיימת, אתם יכולים לדלג על השלב הזה. בדוגמה הבאה משתמשים בפקודה gcloud ai endpoints create:
gcloud ai endpoints create \
--region=LOCATION_ID \
--display-name=ENDPOINT_NAME
מחליפים את מה שכתוב בשדות הבאים:
- LOCATION_ID: האזור שבו משתמשים ב-Agent Platform.
- ENDPOINT_NAME: השם המוצג של נקודת הקצה.
יכול להיות שיעברו כמה שניות עד שנקודת הקצה תיווצר באמצעות הכלי Google Cloud CLI.
פריסת המודל בנקודת קצה
אחרי שנקודת הקצה מוכנה, פורסים את המודל בנקודת הקצה. כשפורסים מודל לנקודת קצה, השירות משייך משאבים פיזיים למודל שרץ ב-Triton כדי להציג מסקנות אונליין.
בדוגמה הבאה השתמשנו בפקודה gcloud ai endpoints deploy-model כדי לפרוס את Model אל endpoint שמריץ את Triton במעבדים גרפיים כדי להאיץ את ההסקה, בלי לפצל את התנועה בין כמה משאבי DeployedModel:
ENDPOINT_ID=$(gcloud ai endpoints list \ --region=LOCATION_ID\ --filter=display_name=ENDPOINT_NAME\ --format="value(name)") MODEL_ID=$(gcloud ai models list \ --region=LOCATION_ID\ --filter=display_name=DEPLOYED_MODEL_NAME\ --format="value(name)") gcloud ai endpoints deploy-model $ENDPOINT_ID \ --region=LOCATION_ID\ --model=$MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME\ --machine-type=MACHINE_TYPE\ --min-replica-count=MIN_REPLICA_COUNT\ --max-replica-count=MAX_REPLICA_COUNT\ --accelerator=count=ACCELERATOR_COUNT,type=ACCELERATOR_TYPE\ --traffic-split=0=100
מחליפים את מה שכתוב בשדות הבאים:
- LOCATION_ID: האזור שבו משתמשים ב-Agent Platform.
- ENDPOINT_NAME: השם המוצג של נקודת הקצה.
-
DEPLOYED_MODEL_NAME: שם ל-
DeployedModel. אפשר גם להשתמש בשם המוצג שלModelבשבילDeployedModel. -
MACHINE_TYPE: אופציונלי. משאבי המכונה שמשמשים לכל צומת בפריסה הזו. הגדרת ברירת המחדל היא
n1-standard-2. מידע נוסף על סוגי מכונות - MIN_REPLICA_COUNT: מספר הצמתים המינימלי לפריסה הזו. אפשר להגדיל או להקטין את מספר הצמתים לפי הצורך בהתאם לעומס ההסקה, עד למספר המקסימלי של הצמתים, אבל אף פעם לא פחות ממספר הצמתים הזה.
- MAX_REPLICA_COUNT: המספר המקסימלי של הצמתים לפריסה הזו. אפשר להגדיל או להקטין את מספר הצמתים בהתאם לעומס ההסקה, עד למספר הזה של צמתים ולעולם לא פחות ממספר הצמתים המינימלי.
ACCELERATOR_COUNT: מספר המאיצים לצירוף לכל מכונה שמריצה את המשימה. בדרך כלל זה 1. אם לא מציינים ערך, ערך ברירת המחדל הוא 1.
ACCELERATOR_TYPE: ניהול הגדרות התאוצה להצגת GPU. כשפורסים מודל עם סוגי מכונות של Compute Engine, אפשר גם לבחור מאיץ GPU ולציין את הסוג שלו. האפשרויות הן:
nvidia-tesla-a100,nvidia-tesla-p100,nvidia-tesla-p4,nvidia-tesla-t4ו-nvidia-tesla-v100.
יכול להיות שיחלפו כמה שניות עד שהמודל ייפרס לנקודת הקצה ב-Google Cloud CLI. כשהמודל נפרס בהצלחה, הפקודה הזו מדפיסה את הפלט הבא:
Deployed a model to the endpoint xxxxx. Id of the deployed model: xxxxx.
קבלת מסקנות אונליין מהמודל שנפרס
כדי להפעיל את המודל דרך נקודת הקצה של Vertex AI Inference, צריך לעצב את בקשת ההסקה באמצעות אובייקט JSON סטנדרטי של בקשת הסקה
או אובייקט JSON של בקשת הסקה עם תוסף בינארי
, ולשלוח בקשה לנקודת הקצה של rawPredictREST ב-Gemini Enterprise Agent Platform.
בדוגמה הבאה משתמשים בפקודה gcloud ai endpoints raw-predict:
ENDPOINT_ID=$(gcloud ai endpoints list \
--region=LOCATION_ID \
--filter=display_name=ENDPOINT_NAME \
--format="value(name)")
gcloud ai endpoints raw-predict $ENDPOINT_ID \
--region=LOCATION_ID \
--http-headers=Content-Type=application/json \
--request=@instances.json
מחליפים את מה שכתוב בשדות הבאים:
- LOCATION_ID: האזור שבו משתמשים ב-Agent Platform.
- ENDPOINT_NAME: השם המוצג של נקודת הקצה.
נקודת הקצה מחזירה את התגובה הבאה לבקשה תקינה:
{
"id": "0",
"model_name": "object_detector",
"model_version": "1",
"outputs": [{
"name": "detection_anchor_indices",
"datatype": "FP32",
"shape": [1, 300],
"data": [2.0, 1.0, 0.0, 3.0, 26.0, 11.0, 6.0, 92.0, 76.0, 17.0, 58.0, ...]
}]
}
הסרת המשאבים
כדי להימנע מחיובים נוספים על Gemini Enterprise Agent Platform ועל Artifact Registry, צריך למחוק את Cloud de Confiance המשאבים שיצרתם במהלך המדריך הזה:
כדי לבטל את הפריסה של המודל מנקודת הקצה ולמחוק את נקודת הקצה, מריצים את הפקודה הבאה במעטפת:
ENDPOINT_ID=$(gcloud ai endpoints list \ --region=LOCATION_ID \ --filter=display_name=ENDPOINT_NAME \ --format="value(name)") DEPLOYED_MODEL_ID=$(gcloud ai endpoints describe $ENDPOINT_ID \ --region=LOCATION_ID \ --format="value(deployedModels.id)") gcloud ai endpoints undeploy-model $ENDPOINT_ID \ --region=LOCATION_ID \ --deployed-model-id=$DEPLOYED_MODEL_ID gcloud ai endpoints delete $ENDPOINT_ID \ --region=LOCATION_ID \ --quietמחליפים את LOCATION_ID באזור שבו יצרתם את המודל בקטע הקודם.
כדי למחוק את המודל, מריצים את הפקודה הבאה במעטפת:
MODEL_ID=$(gcloud ai models list \ --region=LOCATION_ID \ --filter=display_name=DEPLOYED_MODEL_NAME \ --format="value(name)") gcloud ai models delete $MODEL_ID \ --region=LOCATION_ID \ --quietמחליפים את LOCATION_ID באזור שבו יצרתם את המודל בקטע הקודם.
כדי למחוק את מאגר Artifact Registry ואת קובץ אימג' של קונטיינר שנמצא בו, מריצים את הפקודה הבאה במעטפת:
gcloud artifacts repositories delete getting-started-nvidia-triton \ --location=LOCATION_ID \ --quietמחליפים את LOCATION_ID באזור שבו יצרתם את מאגר Artifact Registry בקטע הקודם.
המאמרים הבאים
- כדי לקבל מידע נוסף על דפוסי פריסה עם שרת ההסקה NVIDIA Triton בפלטפורמת הסוכנים של Gemini Enterprise, אפשר לעיין במדריכים לשימוש במחברת NVIDIA Triton.