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

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

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

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

  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, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

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

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

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

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

    כניסה למרשם המודלים

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

  3. בשלב ראשון: שם ואזור, מבצעים את הפעולות הבאות:

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

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

    3. בשדה תיאור, מזינים BQML tutorial model.

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

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

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

    1. בוחרים באפשרות ייבוא של ארטיפקטים של מודל למאגר חדש שנבנה מראש.

    2. בקטע Prebuilt container settings (הגדרות של מאגר תגים מוכן מראש), מבצעים את הפעולות הבאות:

      1. בשדה Model framework (מסגרת מודל), בוחרים באפשרות TensorFlow.

      2. בשדה גרסת מסגרת המודל, בוחרים באפשרות 2.15.

      3. בקטע סוג המאיץ, בוחרים באפשרות GPU.

      4. בשדה מיקום פריט מידע שנוצר בתהליך פיתוח (Artifact) של המודל, מזינים את הערך gs://cloud-samples-data/bigquery/ml/remote_model_tutorial/.

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

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

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

כדי לפרוס את המודל לנקודת קצה:

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

    כניסה למרשם המודלים

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

  3. לוחצים על הכרטיסייה פריסה ובדיקה.

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

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

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

    2. בשדה Endpoint name (שם נקודת הקצה), מזינים bert sentiment endpoint.

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

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

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

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

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

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

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

יצירת מערך נתונים

יוצרים מערך נתונים ב-BigQuery לאחסון מודל ה-ML.

המסוף

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    לדף BigQuery

  2. בחלונית Explorer, לוחצים על שם הפרויקט.

  3. לוחצים על הצגת פעולות > יצירת מערך נתונים.

  4. בדף Create dataset, מבצעים את הפעולות הבאות:

    • בשדה Dataset ID (מזהה מערך הנתונים), מזינים bqml_tutorial.

    • בקטע Location type, בוחרים באפשרות Multi-region ואז בוחרים באפשרות US.

    • משאירים את הגדרות ברירת המחדל שנותרו כמו שהן ולוחצים על 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

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

המסוף

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

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

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

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

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

    תיבת הדו-שיח הוספת נתונים נפתחת.

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

    אפשרות אחרת היא להזין Vertex AI בשדה חיפוש מקורות נתונים.

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

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

  7. ברשימה Connection type (סוג החיבור), בוחרים באפשרות Vertex AI remote models, remote functions and BigLake (Cloud Resource) (מודלים מרוחקים של Vertex AI, פונקציות מרוחקות ו-BigLake (משאב בענן)).

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

  9. מוודאים שהאפשרות Multi-region—US (מספר אזורים – ארה"ב) נבחרה.

  10. לוחצים על יצירת קישור.

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

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

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

  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. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. כדי ליצור חדש, לוחצים על שאילתת 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.

    המודל החדש מופיע בחלונית משאבים. מודלים מסומנים בסמל המודל: model
icon.

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

המסוף

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-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.

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