במדריך הזה נרשום נקודת קצה של פלטפורמת סוכני Gemini Enterprise כמודל מרוחק ב-BigQuery. לאחר מכן נשתמש בפונקציה ML.PREDICT כדי ליצור תחזיות באמצעות המודל המרוחק.
אפשר להשתמש במודלים מרוחקים כשהמודל גדול מדי לייבוא ל-BigQuery. הם גם שימושיים כשרוצים לקבל נקודת הסקה אחת לתרחישי שימוש אונליין, באצווה ובמיקרו-אצווה.
מטרות
- ייבוא מודל TensorFlow שאומן מראש אל Gemini Enterprise Agent Platform מרשם המודלים.
- פורסים את המודל לנקודת קצה של Gemini Enterprise Agent Platform.
- יוצרים קישור למשאבים ב-Cloud.
- משתמשים בהצהרת
CREATE MODELכדי ליצור מודל מרוחק ב-BigQuery. - משתמשים בפונקציה
ML.PREDICTכדי ליצור תחזיות באמצעות המודל המרוחק.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
- נכנסים לחשבון 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.
-
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.
מפעילים את ממשקי ה-API של BigQuery, Vertex AI, Cloud Storage ו-BigQuery Connection.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים- חשוב לוודא שיש לכם את ההרשאות הנדרשות לביצוע המשימות שמתוארות במסמך הזה.
התפקידים הנדרשים
אם יוצרים פרויקט חדש, אתם הבעלים של הפרויקט, ויש לכם את כל הרשאות ה-IAM שנדרשות כדי להשלים את המדריך הזה.
אם אתם משתמשים בפרויקט קיים, צריך לבצע את הפעולות הבאות.
צריך לוודא שיש לכם בפרויקט את התפקיד או התפקידים הבאים:
- אדמין של BigQuery Studio (
roles/bigquery.studioAdmin) - משתמש ב-Agent Platform (
roles/aiplatform.user) - אדמין של חיבור ל-BigQuery (
roles/bigquery.connectionAdmin)
בדיקת התפקידים
-
נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - בוחרים את הפרויקט.
-
בעמודה Principal (חשבון המשתמש), מוצאים את כל השורות שבהן מופיע השם שלכם או של קבוצה שאתם נכללים בה. כדי לברר באילו קבוצות אתם נכללים, פנו לאדמין.
- בודקים את העמודה Role בכל השורות שבהן מצוין או מופיע השם שלכם, כדי לראות אם רשימת התפקידים כוללת את התפקידים הנדרשים.
מתן התפקידים
-
נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - בוחרים את הפרויקט.
- לוחצים על Grant access.
-
בשדה New principals, מזינים את מזהה המשתמש. בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.
- לוחצים על Select a role ומחפשים את התפקיד.
- כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
- לוחצים על Save.
מידע נוסף על הרשאות IAM ב-BigQuery זמין במאמר הרשאות ב-BigQuery.
ייבוא המודל ל-Gemini Enterprise Agent Platform מרשם המודלים
במדריך הזה משתמשים במודל TensorFlow שאומן מראש וזמין ב-Cloud Storage בכתובת gs://cloud-samples-data/bigquery/ml/remote_model_tutorial/. הקטגוריה של Cloud Storage נמצאת במיקום US במספר אזורים.
המודל הוא מודל TensorFlow שנקרא saved_model.pb. זהו מודל מותאם אישית לניתוח סנטימנטים שנוצר על ידי כוונון עדין של מודל BERT באמצעות ביקורות על סרטים ב-IMDB בטקסט פשוט. המודל משתמש בקלט טקסט מביקורות על סרטים ומחזיר ציוני סנטימנטים בין אפס לאחד. כשמייבאים את המודל למאגר המודלים, משתמשים במאגר TensorFlow שנבנה מראש.
כדי לייבא את המודל:
במסוף Google Cloud , נכנסים לדף Model Registry של Gemini Enterprise Agent Platform.
לוחצים על Import.
בשלב ראשון: שם ואזור, מבצעים את הפעולות הבאות:
בוחרים באפשרות ייבוא כמודל חדש.
בשדה Name (שם), מזינים
bert_sentiment.בשדה תיאור, מזינים
BQML tutorial model.בשדה אזור, בוחרים באפשרות
us-central1. צריך לבחור אזור שמבוסס בארה"ב כי הקטגוריה של Cloud Storage נמצאת במיקוםUSשל מספר אזורים.לוחצים על Continue.
בשלב שני: הגדרות המודל, מבצעים את הפעולות הבאות:
בוחרים באפשרות ייבוא של ארטיפקטים של מודל למאגר חדש שנבנה מראש.
בקטע Prebuilt container settings (הגדרות של מאגר תגים מוכן מראש), מבצעים את הפעולות הבאות:
בשדה Model framework (מסגרת מודל), בוחרים באפשרות TensorFlow.
בשדה גרסת מסגרת המודל, בוחרים באפשרות 2.15.
בקטע סוג המאיץ, בוחרים באפשרות GPU.
בשדה מיקום פריט מידע שנוצר בתהליך פיתוח (Artifact) של המודל, מזינים את הערך
gs://cloud-samples-data/bigquery/ml/remote_model_tutorial/.משאירים את ערכי ברירת המחדל לכל שאר האפשרויות ולוחצים על ייבוא.
אחרי שהייבוא יסתיים, המודל יופיע בדף מרשם המודלים.
פריסת המודל לנקודת קצה של Gemini Enterprise Agent Platform
כדי לפרוס את המודל לנקודת קצה:
במסוף Google Cloud , נכנסים לדף Model Registry של Gemini Enterprise Agent Platform.
בעמודה שם, לוחצים על
bert_sentiment.לוחצים על הכרטיסייה פריסה ובדיקה.
לוחצים על Deploy to endpoint.
בשלב הראשון, הגדרת נקודת הקצה, מבצעים את הפעולות הבאות:
לוחצים על יצירת נקודת קצה חדשה.
בשדה Endpoint name (שם נקודת הקצה), מזינים
bert sentiment endpoint.משאירים את ערכי ברירת המחדל בשדות שנותרו ולוחצים על המשך.
בשלב השני, הגדרות המודל, מבצעים את הפעולות הבאות:
בקטע Compute settings (הגדרות מחשוב), בשדה Minimum number of compute nodes (מספר מינימלי של צמתי מחשוב), מזינים
1. זה מספר הצמתים שצריכים להיות זמינים למודל בכל רגע.בקטע Advanced scaling options, בשדה סוג מכונה, בוחרים באפשרות Standard (n1-standard-2). מכיוון שבחרתם GPU כסוג המאיץ כשייבאתם את המודל, אחרי שתבחרו את סוג המכונה, סוג המאיץ ומספר המאיצים יוגדרו אוטומטית.
משאירים את ברירות המחדל בשדות שנותרו ולוחצים על Deploy.
כשהמודל נפרס בנקודת הקצה, הסטטוס משתנה ל-
Active.מעתיקים את מזהה נקודת הקצה המספרי בעמודה מזהה ואת הערך בעמודה אזור. תצטרכו אותם בהמשך.
יצירת מערך נתונים
יוצרים מערך נתונים ב-BigQuery לאחסון מודל ה-ML.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית Explorer, לוחצים על שם הפרויקט.
לוחצים על הצגת פעולות > יצירת מערך נתונים.
בדף Create dataset, מבצעים את הפעולות הבאות:
בשדה Dataset ID (מזהה מערך הנתונים), מזינים
bqml_tutorial.בקטע Location type, בוחרים באפשרות Multi-region ואז בוחרים באפשרות US.
משאירים את הגדרות ברירת המחדל שנותרו כמו שהן ולוחצים על Create dataset (יצירת מערך נתונים).
BQ
כדי ליצור מערך נתונים חדש, משתמשים בפקודה bq mk --dataset.
יוצרים מערך נתונים בשם
bqml_tutorialעם מיקום הנתונים שמוגדר ל-US.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
בודקים שמערך הנתונים נוצר:
bq ls
API
מבצעים קריאה לשיטה datasets.insert
עם משאב מוגדר של מערך נתונים.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
יצירת קישור למשאבים ב-Cloud ב-BigQuery
כדי להתחבר לנקודת קצה של Gemini Enterprise Agent Platform, צריך חיבור למשאבים ב-Cloud.
המסוף
עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, לוחצים על Add data.
תיבת הדו-שיח הוספת נתונים נפתחת.
בחלונית Filter By, בקטע Data Source Type, בוחרים באפשרות Databases.
אפשרות אחרת היא להזין
Vertex AIבשדה חיפוש מקורות נתונים.בקטע מקורות נתונים מומלצים, לוחצים על Vertex AI.
לוחצים על כרטיס הפתרון Vertex AI Models: BigQuery Federation.
ברשימה Connection type (סוג החיבור), בוחרים באפשרות Vertex AI remote models, remote functions and BigLake (Cloud Resource) (מודלים מרוחקים של Vertex AI, פונקציות מרוחקות ו-BigLake (משאב בענן)).
בשדה מזהה החיבור, מזינים את הערך
bqml_tutorial.מוודאים שהאפשרות Multi-region—US (מספר אזורים – ארה"ב) נבחרה.
לוחצים על יצירת קישור.
בתחתית החלון, לוחצים על מעבר לחיבור. אפשר גם ללחוץ על Connections בחלונית Explorer ואז על
us.bqml_tutorial.בחלונית פרטי החיבור, מעתיקים את מזהה חשבון השירות. תצטרכו את המזהה הזה כשמגדירים הרשאות לחיבור. כשיוצרים משאב חיבור, BigQuery יוצר חשבון שירות ייחודי של המערכת ומקשר אותו לחיבור.
BQ
יצירת חיבור:
bq mk --connection --location=US --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE bqml_tutorial
מחליפים את
PROJECT_IDבמזהה הפרויקט ב-Google Cloud . הפרמטר--project_idמבטל את הגדרת ברירת המחדל של הפרויקט.כשיוצרים משאב חיבור, מערכת BigQuery יוצרת חשבון שירות ייחודי ומקשרת אותו לחיבור.
פתרון בעיות: אם מופיעה שגיאת החיבור הבאה, צריך לעדכן את Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
מאחזרים ומעתיקים את מזהה חשבון השירות כדי להשתמש בו בשלב מאוחר יותר:
bq show --connection PROJECT_ID.us.bqml_tutorial
הפלט אמור להיראות כך:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
הגדרת גישה לחיבור
מקצים את התפקיד Agent Platform User לחשבון השירות של חיבור משאב הענן. חובה להקצות את התפקיד הזה באותו פרויקט שבו יצרתם את נקודת הקצה של המודל המרוחק.
כדי להקצות את התפקיד:
עוברים לדף IAM & Admin.
לוחצים על Grant Access.
בשדה New principals, מזינים את מזהה חשבון השירות של חיבור משאב Cloud שהעתקתם קודם.
בשדה Select a role, בוחרים באפשרות Vertex AI ואז בוחרים באפשרות Agent Platform User.
לוחצים על Save.
יצירת מודל מרוחק של BigQuery ML
כדי ליצור מודל מרוחק של BigQuery ML, משתמשים בהצהרה CREATE MODEL עם פסקה REMOTE WITH CONNECTION. מידע נוסף על ההצהרה CREATE MODEL זמין במאמר הצהרת CREATE MODEL למודלים מרוחקים על פני מודלים בהתאמה אישית.
יוצרים את המודל במיקום US מרובה אזורים. במערך נתונים מרובה אזורים ב-BigQuery (US, EU), אפשר ליצור רק מודל מרוחק שמתחבר לנקודת קצה שנפרסה באזור בתוך אותו מיקום מרובה אזורים (US, EU).
כשיוצרים את המודל המרוחק, צריך את מזהה נקודת הקצה שנוצר כשפורסים את המודל ב-Gemini Enterprise Agent Platform. בנוסף, השמות והסוגים של שדות הקלט והפלט צריכים להיות זהים בדיוק לקלט ולפלט של המודל של Gemini Enterprise Agent Platform. בדוגמה הזו, הקלט הוא טקסט STRING, והפלט הוא ARRAY מסוג FLOAT64.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
כדי ליצור חדש, לוחצים על שאילתת SQL.
בעורך השאילתות, מזינים את ההצהרה
CREATE MODELולוחצים על Run:CREATE OR REPLACE MODEL `PROJECT_ID.bqml_tutorial.bert_sentiment` INPUT (text STRING) OUTPUT(scores ARRAY<FLOAT64>) REMOTE WITH CONNECTION `PROJECT_ID.us.bqml_tutorial` OPTIONS(ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints/ENDPOINT_ID')
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: שם הפרויקט.
- ENDPOINT_ID: מזהה נקודת הקצה שהעתקתם קודם.
בסיום הפעולה, תופיע הודעה דומה ל-
Successfully created model named bert_sentiment.המודל החדש מופיע בחלונית משאבים. מודלים מסומנים בסמל המודל:
.אם בוחרים את המודל החדש בחלונית Resources, המידע על המודל מופיע מתחת לעורך השאילתות.
BQ
כדי ליצור את המודל המרוחק, מזינים את ההצהרה הבאה:
CREATE MODELbq query --use_legacy_sql=false \ "CREATE OR REPLACE MODEL `PROJECT_ID.bqml_tutorial.bert_sentiment` INPUT (text STRING) OUTPUT(scores ARRAY<FLOAT64>) REMOTE WITH CONNECTION `PROJECT_ID.us.bqml_tutorial` OPTIONS(ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints/ENDPOINT_ID')"
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: שם הפרויקט.
- ENDPOINT_ID: מזהה נקודת הקצה שהעתקתם קודם.
אחרי שיוצרים את המודל, מוודאים שהוא מופיע במערך הנתונים:
bq ls -m bqml_tutorial
הפלט אמור להיראות כך:
Id Model Type Labels Creation Time ---------------- ------------ -------- ----------------- bert_sentiment 28 Jan 17:39:43
קבלת חיזויים באמצעות ML.PREDICT
משתמשים בפונקציה ML.PREDICT כדי לקבל תחזיות של סנטימנטים מהמודל המרוחק. הקלט הוא עמודת טקסט (review) שמכילה ביקורות על סרטים מהטבלה bigquery-public-data.imdb.reviews.
בדוגמה הזו, נבחרו 10,000 רשומות שנשלחות לחיזוי. מודל ה-remote מוגדר כברירת מחדל לגודל אצווה של 128 מופעים לבקשות.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בקטע יצירת שאילתה חדשה, לוחצים על שאילתת SQL.
בעורך השאילתות, מזינים את השאילתה הזו שמשתמשת בפונקציה
ML.PREDICTולוחצים על Run.SELECT * FROM ML.PREDICT ( MODEL `PROJECT_ID.bqml_tutorial.bert_sentiment`, ( SELECT review as text FROM `bigquery-public-data.imdb.reviews` LIMIT 10000 ) )
תוצאות השאילתה אמורות להיראות כך:
BQ
כדי להריץ את השאילתה שמשתמשת ב-ML.PREDICT, מזינים את הפקודה הבאה.
bq query --use_legacy_sql=false \ 'SELECT * FROM ML.PREDICT ( MODEL `PROJECT_ID.bqml_tutorial.bert_sentiment`, ( SELECT review as text FROM `bigquery-public-data.imdb.reviews` LIMIT 10000 ) )'
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת הפרויקט
המסוף
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
gcloud
כדי למחוק Google Cloud פרויקט:
gcloud projects delete PROJECT_ID
מחיקת משאבים בודדים
אפשרות אחרת היא להסיר את המשאבים הספציפיים שבהם השתמשתם במדריך הזה:
המאמרים הבאים
- סקירה כללית על BigQuery ML זמינה במאמר מבוא ל-AI ול-ML ב-BigQuery ML.
- מידע נוסף על השימוש בהצהרה
CREATE MODELלמודלים מרוחקים זמין במאמר ההצהרה CREATE MODEL למודלים מרוחקים על פני מודלים מותאמים אישית. - מידע נוסף על שימוש במחברת BigQuery זמין במאמר מבוא למחברות.
- מידע נוסף על אזורים ועל אזורים מרובים ב-BigQuery זמין בדף מיקומים נתמכים.
- מידע נוסף על ייבוא מודלים ב-Gemini Enterprise Agent Platform מרשם המודלים זמין במאמר ייבוא מודלים ל-Gemini Enterprise Agent Platform.
- מידע נוסף על ניהול גרסאות של מודלים ב-Model Registry של Agent Platform ב-Gemini Enterprise
- מידע על שימוש ב-VPC Service Controls ב-Gemini Enterprise Agent Platform זמין במאמר בנושא VPC Service Controls עם Gemini Enterprise Agent Platform.