חיזויים באמצעות מודלים מרוחקים ב-Gemini Enterprise Agent Platform

במדריך הזה תרשמו נקודת קצה (endpoint) של Gemini Enterprise Agent Platform כמודל מרוחק ב-BigQuery. אחר כך משתמשים בפונקציה ML.PREDICT כדי ליצור חיזויים באמצעות המודל המרוחק.

אפשר להשתמש במודלים מרוחקים כשהמודל גדול מדי לייבוא ל-BigQuery. הם גם שימושיים כשרוצים נקודת הסקה אחת לתרחישים לדוגמה של אונליין, אצווה ומיקרו-אצווה.

מטרות

  • מייבאים מודל TensorFlow שעבר אימון מראש אל Model Registry ב-Gemini Enterprise Agent Platform.
  • פורסים את המודל בנקודת קצה של Gemini Enterprise Agent Platform.
  • יוצרים קישור למשאבים ב-Cloud.
  • משתמשים בהצהרה CREATE MODEL כדי ליצור מודל מרוחק ב-BigQuery.
  • משתמשים בפונקציה ML.PREDICT כדי ליצור חיזויים באמצעות המודל המרוחק.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

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

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  4. מוודאים שהחיוב מופעל בפרויקט ב- Google Cloud .

  5. מפעילים את ממשקי ה-API של BigQuery,‏ Vertex AI,‏ Cloud Storage ו-BigQuery Connection, אם הם עדיין לא מופעלים.

    התפקידים שנדרשים כדי להפעיל ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    הפעלת ממשקי ה-API

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

התפקידים הנדרשים

אם אתם יוצרים פרויקט חדש, אתם ה-Project Owner שלו ומוענקות לכם כל הרשאות ה-IAM שנדרשות כדי להשלים את המדריך הזה.

אם אתם משתמשים בפרויקט קיים, בצעו את הפעולות הבאות.

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

בדיקת התפקידים

  1. נכנסים לדף IAM במסוף Google Cloud .

    כניסה לדף IAM
  2. בוחרים את הפרויקט.
  3. בעמודה Principal, מחפשים את כל השורות שמזהות אתכם או קבוצה שאתם חברים בה. כדי לברר לאילו קבוצות אתם שייכים, פנו לאדמין.

  4. בכל השורות שבהן אתם מופיעים, בודקים בעמודה Role אם רשימת התפקידים כוללת את התפקידים הנדרשים.

מתן התפקידים

  1. נכנסים לדף IAM במסוף Google Cloud .

    כניסה לדף IAM
  2. בוחרים את הפרויקט.
  3. לוחצים על Grant access.
  4. בשדה New principals, מזינים את מזהה המשתמש. ‫ בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.

    ‫
  5. לוחצים על Select a role ומחפשים את התפקיד.
  6. כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
  7. לוחצים על 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 מובנה.

כדי לייבא את המודל, פועלים לפי השלבים הבאים.

  1. במסוף Google Cloud , נכנסים לדף Model Registry ב-Gemini Enterprise Agent Platform.

    כניסה לדף Model Registry

  2. לוחצים על Import.

  3. ב-Step one: Name and region, מבצעים את הפעולות הבאות:

    1. בוחרים באפשרות ייבוא כמודל חדש.

    2. בשדה Name, מזינים bert_sentiment.

    3. בשדה Description, מזינים BQML tutorial model.

    4. בשדה Region, בוחרים באפשרות us-central1. צריך לבחור אזור בארה"ב כי הקטגוריה של Cloud Storage נמצאת במיקום US שכולל כמה אזורים.

    5. לוחצים על Continue.

  4. בשלב השני: הגדרות המודל, מבצעים את הפעולות הבאות:

    1. בוחרים באפשרות Import model artifacts into a new prebuilt container.

    2. בקטע Prebuilt container settings:

      1. בשדה Model framework, בוחרים באפשרות TensorFlow.

      2. בשדה Model framework version, בוחרים באפשרות 2.15.

      3. ב-Accelerator type, בוחרים באפשרות GPU.

      4. בשדה Model artifact location, מזינים את הערך gs://cloud-samples-data/bigquery/ml/remote_model_tutorial/.

      5. משאירים את ערכי ברירת המחדל בכל שאר האפשרויות ולוחצים על Import.

בסיום הייבוא, המודל יופיע בדף מרשם המודלים.

פריסת המודל בנקודת קצה של Gemini Enterprise Agent Platform

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

  1. במסוף Google Cloud , נכנסים לדף Model Registry ב-Gemini Enterprise Agent Platform.

    כניסה לדף Model Registry

  2. בעמודה שם, לוחצים על bert_sentiment.

  3. לוחצים על הכרטיסייה Deploy & Test.

  4. לוחצים על Deploy to endpoint.

  5. בשלב הראשון, Define your endpoint, מבצעים את הפעולות הבאות:

    1. לוחצים על יצירת נקודת קצה חדשה.

    2. בשדה Endpoint name, מזינים bert sentiment endpoint.

    3. משאירים את ערכי ברירת המחדל בשאר השדות ולוחצים על Continue.

  6. בשלב השני, Model settings, מבצעים את הפעולות הבאות:

    1. בקטע Compute settings, בשדה Minimum number of compute nodes מזינים 1. זה מספר הצמתים שצריכים להיות זמינים למודל בכל שלב.

    2. בקטע Advanced scaling options, בוחרים באפשרות Standard (n1-standard-2) בשדה Machine type. בחרתם ב-GPU כסוג המאיץ כשייבאתם את המודל, ולכן אחרי שתבחרו את סוג המכונה, סוג המאיץ ומספר המאיצים יוגדרו באופן אוטומטי.

    3. משאירים את ערכי ברירת המחדל בשאר השדות ולוחצים על Deploy.

      כשהמודל נפרס בנקודת הקצה, הסטטוס משתנה ל-Active.

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

יצירת קבוצת נתונים

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

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

    אם החלונית הימנית לא מוצגת, לוחצים על Expand left pane כדי לפתוח אותה.

  3. ב-Explorer, מרחיבים את הפרויקט ולוחצים על Datasets.

  4. בדף Datasets, לוחצים על Create dataset.

  5. בחלונית Create dataset:

    • בשדה Dataset ID, מזינים bqml_tutorial.

    • בקטע Data location (מיקום הנתונים), בוחרים באפשרות US (ארה"ב).

    משאירים את שאר הגדרות ברירת המחדל כמו שהן.

  6. לוחצים על Create dataset.

BQ

כדי ליצור קבוצת נתונים חדשה, משתמשים בפקודה bq mk --dataset.

  1. יוצרים מערך נתונים בשם bqml_tutorial ומגדירים את מיקום הנתונים ל-US:

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. מוודאים שמערך הנתונים נוצר:

    bq ls

API

מפעילים את השיטה datasets.insert עם משאב של מערך נתונים מוגדר:

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

יצירת קישור למשאבים ב-Cloud ב-BigQuery

כדי להתחבר לנקודת קצה (endpoint) של Gemini Enterprise Agent Platform, צריך קישור למשאבים ב-Cloud.

המסוף

  1. נכנסים לדף BigQuery.

    כניסה ל-BigQuery

  2. בחלונית השמאלית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

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

  3. בחלונית Explorer, לוחצים על Add data.

    תיבת הדו-שיח Add data נפתחת.

  4. בחלונית Filter By, בקטע Data Source Type, בוחרים באפשרות Databases.

    לחלופין, בשדה Search for data sources, אפשר להזין Vertex AI.

  5. בקטע מקורות נתונים נבחרים, לוחצים על Vertex AI.

  6. לוחצים על כרטיס הפתרון מודלי AI של Vertex: BigQuery Federation.

  7. ברשימה Connection type, בוחרים באפשרות Vertex AI remote models, פונקציות מרוחקות ו-BigLake (Cloud Resource).

  8. בשדה Connection ID, מזינים את הערך bqml_tutorial.

  9. מוודאים שהאפשרות Multi-region—US מסומנת.

  10. לוחצים על יצירת חיבור.

  11. בתחתית החלון, לוחצים על מעבר לחיבור. לחלופין, בחלונית Explorer לוחצים על Connections ואז על us.bqml_tutorial.

  12. בחלונית Connection info, מעתיקים את מזהה חשבון השירות. תצטרכו את המזהה הזה כשתגדירו את ההרשאות לחיבור. כשיוצרים משאב חיבור, BigQuery יוצר חשבון שירות ייחודי של המערכת ומשייך אותו לחיבור.

BQ

  1. יצירת חיבור:

    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...
    
  2. מאחזרים ומעתיקים את מזהה חשבון השירות כדי להשתמש בו בשלב מאוחר יותר:

    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 לחשבון השירות של הקישור למשאבים ב-Cloud. אתם צריכים להקצות את התפקיד הזה באותו פרויקט שבו יצרתם את נקודת הקצה של המודל המרוחק.

כדי להקצות את התפקיד:

  1. נכנסים לדף IAM & Admin.

    כניסה לדף IAM & Admin

  2. לוחצים על Grant Access.

  3. בשדה New principals, מזינים את מזהה חשבון השירות של הקישור למשאבים ב-Cloud שהעתקתם קודם.

  4. בשדה Select a role, בוחרים באפשרות Vertex AI ואז באפשרות Agent Platform User.

  5. לוחצים על 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.

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בקטע Create new, לוחצים על שאילתת SQL.

  3. בעורך השאילתות, מזינים את הצהרת ה-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. המודלים מסומנים בסמל המודל: סמל
המודל.

    אם בוחרים את המודל החדש בחלונית Resources, המידע על המודל מופיע מתחת ל-עורך השאילתות.

BQ

  1. יוצרים את המודל המרוחק באמצעות הזנת ההצהרה הבאה של CREATE MODEL:

    bq 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: מזהה נקודת הקצה שהעתקתם קודם.
  2. אחרי שיוצרים את המודל, מוודאים שהוא מופיע במערך הנתונים:

    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 רשומות ונשלחו לחיזוי. כברירת מחדל, המודל המרוחק משתמש בגודל אצווה של 128 מופעים לבקשות.

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בקטע יצירת פריט חדש, לוחצים על שאילתת SQL.

  3. בעורך השאילתות, מזינים את השאילתה הזו שמשתמשת בפונקציה 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 בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים הנפרדים.

מחיקת הפרויקט

המסוף

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

gcloud

    כדי למחוק פרויקט ב- Google Cloud :

    gcloud projects delete PROJECT_ID

מחיקת משאבים ספציפיים

לחלופין, כדי להסיר את המשאבים הספציפיים שבהם השתמשתם במדריך הזה:

  1. מוחקים את המודל.

  2. אופציונלי: מוחקים את מערך הנתונים.

  3. ביטול הפריסה של המודל ומחיקת נקודת הקצה.

  4. מוחקים את המודל ממרשם המודלים.

  5. מוחקים את הקישור למשאבים ב-Cloud.

המאמרים הבאים