יצירת מופע של תצוגת תכונות

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

  • הוספת קבוצות של פיצ'רים ופיצ'רים ממאגר הפיצ'רים: שיוך לקבוצות של פיצ'רים ופיצ'רים קיימים ממאגר הפיצ'רים. קבוצת תכונות מציינת את המיקום של מקור הנתונים ב-BigQuery. תכונה בקבוצת התכונות מצביעה על עמודת תכונות ספציפית במקור הנתונים הזה. אפשר לשייך תצוגת תכונות לכמה קבוצות תכונות.

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

אחרי שיוצרים תצוגת תכונות, Vertex AI Feature Store מסנכרן את ערכי התכונות העדכניים ממקור הנתונים ב-BigQuery. אם מגדירים את פרמטר השאילתה run_sync_immediately=true, Vertex AI Feature Store מסנכרן את ערכי התכונות כשיוצרים את תצוגת התכונות. אחרת,‏ Vertex AI Feature Store מסנכרן את ערכי התכונות בהתאם ללוח הזמנים של הסנכרון שצוין בתצוגת התכונות.

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

מאמתים את Gemini Enterprise Agent Platform, אלא אם כבר עשיתם זאת.

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

המסוף

כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud

Python

כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

  1. התקינו את ה-CLI של Google Cloud.

  2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  3. אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:

    gcloud auth application-default login

    אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

    אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

REST

כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

    התקינו את ה-CLI של Google Cloud.

    אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

סנכרון נתוני תכונות בתצוגת תכונות

ב-Vertex AI Feature Store אפשר לרענן או לסנכרן את ערכי התכונות ממקור הנתונים ב-BigQuery לתצוגת התכונות. כדי לציין את סוג סנכרון הנתונים לתצוגת תכונות, משתמשים בפרמטר FeatureView.sync_config.

‫Vertex AI Feature Store תומך בסוגי סנכרון הנתונים הבאים:

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

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

    במהלך ההצגה אונליין, אם רוצים להציג רק את הערכים האחרונים של התכונות, כולל ערכי null, צריך להשתמש בהגדרה הבאה:

    1. רושמים את מקור הנתונים של התכונה על ידי יצירת קבוצת תכונות עם הפרמטר dense שהוגדר לערך true.

    2. בוחרים ב-Bigtable online serving כשיוצרים את מופע החנות הווירטואלית.

    3. כשיוצרים תצוגות של ישויות, בוחרים באפשרות של סנכרון נתונים מתוזמן.

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

    • מופע החנות הווירטואלית מוגדר להצגה אונליין ב-Bigtable.

    • תצוגת התכונות משויכת לקבוצות של תכונות ולמשאבי תכונות.

    • מקור הנתונים ב-BigQuery ממוקם באחד מהאזורים הבאים:

      • eu

      • us

      • us-central1

    לסנכרון נתונים רציף יש את המגבלות הבאות:

    • אם בוחרים באפשרות של סנכרון נתונים רציף לתצוגת תכונות, אי אפשר לעדכן אותה.

    • רק רשומות חדשות של תכונות מסונכרנות ממקור הנתונים של BigQuery. בסנכרון נתונים רציף לא מסתנכרנים רשומות של תכונות שעדכנתם או מחקתם ב-BigQuery.

    • קבוצת התכונות במקור של Feature Registry חייבת להיות טבלת BigQuery כמקור שלה.

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

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

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

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

  • מומלץ להימנע מהפעלת צבירות מורכבות ב-BigQuery. מריצים SELECT * שאילתה בטבלה או בתצוגה כדי להעריך את נפח הנתונים ואת משך העיבוד שלהם.

  • במהלך הגדרת אפשרויות ההתאמה לעומס (scaling) של החנות אונליין, מגדירים את max_node_count לערך גבוה מספיק כדי לכסות עומסים גבוהים במהלך סנכרון נתונים.

  • אפשר לתזמן את הסנכרון של תצוגות שונות של תכונות בזמנים שונים באותה חנות אונליין.

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

  • השימוש ב-Bigtable גדל במהלך סנכרון הנתונים. כדי להשיג את הביצועים הכי טובים, כדאי לתזמן משימות סנכרון של תצוגות תכונות שנוצרו בחנויות אונליין להצגה אונליין ב-Bigtable, בשעות שבהן העומס נמוך.

הגדרת חשבון השירות לתצוגת תכונות

כל תצוגת תכונות משתמשת בחשבון שירות כדי לגשת לנתוני המקור ב-BigQuery במהלך הסנכרון. Vertex AI Feature Store מקצה לחשבון השירות הזה את תפקיד ניהול הזהויות והרשאות הגישה (IAM) BigQuery Data Viewer.

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

לחלופין, אפשר להגדיר את תצוגת התכונות כך שתשתמש בחשבון שירות משלה. לאחר מכן, Vertex AI Feature Store מגדיר חשבון שירות ייעודי לתצוגת התכונות. ההגדרה הזו מאפשרת להגביל את הגישה לנתוני התכונות ב-BigQuery או להעניק גישה למשתמשים נוספים. אפשר לציין את ההגדרה של חשבון השירות באמצעות הפרמטר FeatureView.service_agent_type. שימו לב: Vertex AI Feature Store יוצר כתובת אימייל ייחודית של חשבון שירות לכל תצוגת תכונות שהוגדרה עם חשבון שירות ייעודי.

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

הגדרת אחזור וקטורים לתצוגת תכונות

כדי להגדיר אחזור של וקטורים לתצוגת תכונות בחנות אונליין שנוצרה להצגה אונליין אופטימלית, משתמשים בפרמטר FeatureView.index_config. במאמר הנחיות להכנת מקור נתונים מוסבר איך להכין או לעדכן את מקור הנתונים ב-BigQuery כדי לתמוך בהטמעות על ידי הכללת העמודה embedding.

שימו לב: אפשר להגדיר אחזור של וקטורים ולנהל הטמעות רק אם תצוגת התכונות נוצרה על ידי ציון URI של מקור BigQuery, ולא מקבוצות תכונות וממאפיינים ממאגר התכונות.

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

יצירת תצוגת תכונות מקבוצות תכונות

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

אם יוצרים תצוגת תכונות על ידי ציון של קבוצות תכונות ותכונות:

  • במקור הנתונים שלכם צריכה להיות עמודה feature_timestamp והוא יכול להכיל נתונים היסטוריים.

  • ‫Vertex AI Feature Store מציג רק את הערכים העדכניים ביותר של התכונות על סמך חותמת הזמן של התכונה.

  • אי אפשר להגדיר ניהול הטמעה לתצוגת התכונות.

יצירת תצוגת תכונות עם הגדרת חשבון השירות שמוגדר כברירת מחדל

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

REST

כדי ליצור משאב FeatureView, שולחים בקשת POST באמצעות ה-method‏ featureViews.create.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • LOCATION_ID: האזור שבו רוצים ליצור את תצוגת התכונות, למשל us-central1.
  • PROJECT_ID: מזהה הפרויקט.
  • FEATUREONLINESTORE_NAME: השם של מופע החנות אונליין שבו רוצים ליצור את תצוגת התכונות.
  • FEATUREVIEW_NAME: השם של מופע התצוגה החדש של התכונות שרוצים ליצור.
  • FEATUREGROUP_NAME_A ו-FEATUREGROUP_NAME_B: השמות של קבוצות התכונות שמהן רוצים להוסיף תכונות לתצוגת התכונות.
  • FEATURE_ID_A1 ו-FEATURE_ID_A2: מזהי התכונות מקבוצת התכונות FEATUREGROUP_NAME_A שרוצים להוסיף לתצוגת התכונות.
  • FEATURE_ID_B1 ו-FEATURE_ID_B2: מזהי התכונות מקבוצת התכונות FEATUREGROUP_NAME_B שרוצים להוסיף לתצוגת התכונות.
  • SYNC_CONFIG: מזינים אחת מהגדרות הסנכרון הבאות לתצוגת התכונות:
    • כדי להשתמש בסנכרון נתונים מתוזמן, צריך לספק את לוח הזמנים של הסנכרון בפורמט הבא:
      "cron": "cron_schedule_expression"
      מחליפים את cron_schedule_expression בביטוי cron שמייצג את התדירות של סנכרון הנתונים לתצוגת התכונות. מידע נוסף זמין במאמר בנושא cron.
    • כדי להשתמש בסנכרון נתונים רציף, מזינים את הפרטים הבאים:
      "continuous": true אפשר להשתמש בסנכרון נתונים רציף רק אם מופעלת במקרה של החנות הווירטואלית שכוללת את תצוגת התכונה, האפשרות Bigtable online serving.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

גוף בקשת JSON:

{
  "feature_registry_source": {
    "feature_groups": [
      {
        "feature_group_id": "FEATUREGROUP_NAME_A",
        "feature_ids": [ "FEATURE_ID_A1", "FEATURE_ID_A2" ]
      },
      {
        "feature_group_id": "FEATUREGROUP_NAME_B",
        "feature_ids": [ "FEATURE_ID_B1", "FEATURE_ID_B2" ]
      }
    ]
  },
  "sync_config": {
    SYNC_CONFIG
  }
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

יצירת תצוגת תכונות שמשתמשת בחשבון שירות ייעודי

אפשר להשתמש בדוגמה הבאה כדי ליצור תצוגת תכונות מקבוצות תכונות על ידי הגדרת חשבון שירות ייעודי.

REST

כדי ליצור משאב FeatureView, שולחים בקשת POST באמצעות ה-method‏ featureViews.create.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • LOCATION_ID: האזור שבו רוצים ליצור את תצוגת התכונות, למשל us-central1.
  • PROJECT_ID: מזהה הפרויקט.
  • FEATUREONLINESTORE_NAME: השם של מופע החנות אונליין שבו רוצים ליצור את תצוגת התכונות.
  • FEATUREVIEW_NAME: השם של מופע התצוגה החדש של התכונות שרוצים ליצור.
  • FEATUREGROUP_NAME_A ו-FEATUREGROUP_NAME_B: השמות של קבוצות התכונות שמהן רוצים להוסיף תכונות לתצוגת התכונות.
  • FEATURE_ID_A1 ו-FEATURE_ID_A2: מזהי התכונות מקבוצת התכונות FEATUREGROUP_NAME_A שרוצים להוסיף לתצוגת התכונות.
  • FEATURE_ID_B1 ו-FEATURE_ID_B2: מזהי התכונות מקבוצת התכונות FEATUREGROUP_NAME_B שרוצים להוסיף לתצוגת התכונות.
  • SYNC_CONFIG: מזינים אחת מהגדרות הסנכרון הבאות לתצוגת התכונות:
    • כדי להשתמש בסנכרון נתונים מתוזמן, צריך לספק את לוח הזמנים של הסנכרון בפורמט הבא:
      "cron": "cron_schedule_expression"
      מחליפים את cron_schedule_expression בביטוי cron שמייצג את התדירות של סנכרון הנתונים לתצוגת התכונות. מידע נוסף זמין במאמר בנושא cron.
    • כדי להשתמש בסנכרון נתונים רציף, מזינים את הפרטים הבאים:
      "continuous": true אפשר להשתמש בסנכרון נתונים רציף רק אם מופעלת במקרה של החנות הווירטואלית שכוללת את תצוגת התכונה, האפשרות Bigtable online serving.
  • SERVICE_AGENT_TYPE: הגדרת חשבון שירות לתצוגת התכונות. כדי להשתמש בחשבון שירות ייעודי לתצוגת התכונות, מזינים SERVICE_AGENT_TYPE_FEATURE_VIEW.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

גוף בקשת JSON:

{
  "feature_registry_source": {
    "feature_groups": [
      {
        "feature_group_id": "FEATUREGROUP_NAME_A",
        "feature_ids": [ "FEATURE_ID_A1", "FEATURE_ID_A2" ]
      },
      {
        "feature_group_id": "FEATUREGROUP_NAME_B",
        "feature_ids": [ "FEATURE_ID_B1", "FEATURE_ID_B2" ]
      }
    ]
  },
  "sync_config": {
    SYNC_CONFIG
  },
  "service_agent_type": "SERVICE_AGENT_TYPE",
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

יצירת תצוגת תכונות ממקור BigQuery

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

אם יוצרים תצוגת תכונות על ידי ציון מקור הנתונים:

  • אי אפשר לכלול עמודה של feature_timestamp בטבלה ב-BigQuery או בתצוגה.

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

יצירת תצוגת תכונות שמשתמשת בחשבון השירות שמוגדר כברירת מחדל ולא תומכת בהטמעות

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

Python

במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
from typing import List


def create_feature_view_from_bq_source(
    project: str,
    location: str,
    existing_feature_online_store_id: str,
    feature_view_id: str,
    bq_table_uri: str,
    entity_id_columns: List[str],
):
    aiplatform.init(project=project, location=location)
    fos = feature_store.FeatureOnlineStore(existing_feature_online_store_id)
    fv = fos.create_feature_view(
        name=feature_view_id,
        source=feature_store.utils.FeatureViewBigQuerySource(
            uri=bq_table_uri, entity_id_columns=entity_id_columns
        ),
    )
    return fv

  • project: מזהה הפרויקט.
  • location: האזור שבו רוצים ליצור את תצוגת התכונות, למשל us-central1.
  • existing_feature_online_store_id: השם של מופע החנות אונליין שבו רוצים ליצור את תצוגת התכונות.
  • feature_view_id: השם של מופע התצוגה החדש של התכונות שרוצים ליצור.
  • bq_table_uri: ה-URI של טבלת המקור או התצוגה ב-BigQuery.
  • entity_id_columns: השמות של העמודות שמכילות את מזהי הישויות. אפשר לציין עמודה אחת או כמה עמודות.
    • כדי לציין רק עמודה אחת של מזהה ישות, מציינים את שם העמודה בפורמט הבא:
      "entity_id_column_name".
    • כדי לציין כמה עמודות של מזהי ישויות, מציינים את שמות העמודות בפורמט הבא:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].

REST

כדי ליצור משאב FeatureView, שולחים בקשת POST באמצעות ה-method‏ featureViews.create.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • LOCATION_ID: האזור שבו רוצים ליצור את תצוגת התכונות, למשל us-central1.
  • PROJECT_ID: מזהה הפרויקט.
  • FEATUREONLINESTORE_NAME: השם של מופע החנות אונליין שבו רוצים ליצור את תצוגת התכונות.
  • FEATUREVIEW_NAME: השם של תצוגת התכונות החדשה שרוצים ליצור.
  • PROJECT_NAME: שם הפרויקט.
  • DATASET_NAME: השם של מערך הנתונים ב-BigQuery.
  • TABLE_NAME: השם של הטבלה ממערך הנתונים ב-BigQuery.
  • ENTITY_ID_COLUMNS: השמות של העמודות שמכילות את מזהי הישויות. אפשר לציין עמודה אחת או כמה עמודות.
    • כדי לציין רק עמודה אחת של מזהה ישות, מציינים את שם העמודה בפורמט הבא:
      "entity_id_column_name"
    • כדי לציין כמה עמודות של מזהי ישויות, מציינים את שמות העמודות בפורמט הבא:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: ביטוי של לוח זמנים ב-Cron שמייצג את התדירות של סנכרון הנתונים לתצוגת התכונות. מידע נוסף זמין במאמר בנושא cron.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

גוף בקשת JSON:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  }
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

יצירת תצוגת תכונות שמשתמשת בחשבון השירות שמוגדר כברירת מחדל ותומכת בהטמעות

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

Python

במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
from typing import List


def create_feature_view_from_bq_source_with_embedding_management(
    project: str,
    location: str,
    existing_feature_online_store_id: str,
    feature_view_id: str,
    bq_table_uri: str,
    entity_id_columns: List[str],
    embedding_column: str,
    embedding_dimensions: int,
):
    aiplatform.init(project=project, location=location)

    fos = feature_store.FeatureOnlineStore(existing_feature_online_store_id)

    bigquery_source = feature_store.utils.FeatureViewBigQuerySource(
        uri=bq_table_uri,
        entity_id_columns=entity_id_columns,
    )
    index_config = feature_store.utils.IndexConfig(
        embedding_column=embedding_column,
        dimensions=embedding_dimensions,
        algorithm_config=feature_store.utils.TreeAhConfig(),
    )
    fv = fos.create_feature_view(
        name=feature_view_id,
        source=bigquery_source,
        index_config=index_config,
    )
    return fv

  • project: מזהה הפרויקט.
  • location: האזור שבו רוצים ליצור את תצוגת התכונות, למשל us-central1.
  • existing_feature_online_store_id: השם של מופע החנות אונליין שבו רוצים ליצור את תצוגת התכונות.
  • feature_view_id: השם של מופע התצוגה החדש של התכונות שרוצים ליצור.
  • bq_table_uri: ה-URI של טבלת המקור או התצוגה ב-BigQuery.
  • entity_id_columns: השמות של העמודות שמכילות את מזהי הישויות. אפשר לציין עמודה אחת או כמה עמודות.
    • כדי לציין רק עמודה אחת של מזהה ישות, מציינים את שם העמודה בפורמט הבא:
      "entity_id_column_name".
    • כדי לציין כמה עמודות של מזהי ישויות, מציינים את שמות העמודות בפורמט הבא:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].
  • embedding_column: השם של העמודה שמכילה את נתוני המקור ליצירת האינדקס לחיפוש וקטורי. ההגדרה הזו נדרשת רק אם רוצים לנהל הטמעות באמצעות תצוגת התכונות.
  • embedding_dimensions: אופציונלי. הגודל של הטמעה בעמודת ההטמעה, שמבוטא כמספר המאפיינים.

REST

כדי ליצור משאב FeatureView, שולחים בקשת POST באמצעות ה-method‏ featureViews.create.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • LOCATION_ID: האזור שבו רוצים ליצור את תצוגת התכונות, למשל us-central1.
  • PROJECT_ID: מזהה הפרויקט.
  • FEATUREONLINESTORE_NAME: השם של מופע החנות אונליין שבו רוצים ליצור את תצוגת התכונות.
  • FEATUREVIEW_NAME: השם של תצוגת התכונות החדשה שרוצים ליצור.
  • PROJECT_NAME: שם הפרויקט.
  • DATASET_NAME: השם של מערך הנתונים ב-BigQuery.
  • TABLE_NAME: השם של הטבלה ממערך הנתונים ב-BigQuery.
  • ENTITY_ID_COLUMNS: השמות של העמודות שמכילות את מזהי הישויות. אפשר לציין עמודה אחת או כמה עמודות.
    • כדי לציין רק עמודה אחת של מזהה ישות, מציינים את שם העמודה בפורמט הבא:
      "entity_id_column_name"
    • כדי לציין כמה עמודות של מזהי ישויות, מציינים את שמות העמודות בפורמט הבא:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: ביטוי של לוח זמנים ב-Cron שמייצג את התדירות של סנכרון הנתונים לתצוגת התכונות. מידע נוסף זמין במאמר בנושא cron.
  • EMBEDDING_COLUMN: השם של העמודה שמכילה את נתוני המקור ליצירת האינדקס לחיפוש וקטורי. ההגדרה הזו נדרשת רק אם רוצים לנהל הטמעות באמצעות תצוגת התכונות.
  • FILTER_COLUMN_1 ו-FILTER_COLUMN_2: אופציונלי: שמות העמודות שמשמשות לסינון תוצאות החיפוש הווקטורי.
  • CROWDING_COLUMN: אופציונלי: שם העמודה שמכילה את מאפייני הצפיפות.
  • EMBEDDING_DIMENSION: אופציונלי: הגודל, שמבוטא כמספר המאפיינים, של הטמעה בעמודת ההטמעה.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

גוף בקשת JSON:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  },
  "index_config": {
    "embedding_column": "EMBEDDING_COLUMN",
    "filter_columns": ["FILTER_COLUMN_1", "FILTER_COLUMN_2"],
    "crowding_column": "CROWDING_COLUMN",
    "embedding_dimension": EMBEDDING_DIMENSION
    "tree_ah_config": {}
  }
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

יצירת תצוגת תכונות עם חשבון שירות ייעודי וללא הטמעה של ניהול

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

REST

כדי ליצור משאב FeatureView עם תמיכה בהטמעות, שולחים בקשת POST באמצעות ה-method‏ featureViews.create ומציינים את הפרמטר FeatureView.index_config. שימו לב שאפשר להשתמש בניהול הטמעה רק אם החנות הווירטואלית מוגדרת להצגה אופטימלית באינטרנט.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • LOCATION_ID: האזור שבו רוצים ליצור את תצוגת התכונות, למשל us-central1.
  • PROJECT_ID: מזהה הפרויקט.
  • FEATUREONLINESTORE_NAME: השם של מופע החנות אונליין שבו רוצים ליצור את תצוגת התכונות.
  • FEATUREVIEW_NAME: השם של תצוגת התכונות החדשה שרוצים ליצור.
  • PROJECT_NAME: שם הפרויקט.
  • DATASET_NAME: השם של מערך הנתונים ב-BigQuery.
  • TABLE_NAME: השם של הטבלה ממערך הנתונים ב-BigQuery.
  • ENTITY_ID_COLUMNS: השמות של העמודות שמכילות את מזהי הישויות. אפשר לציין עמודה אחת או כמה עמודות.
    • כדי לציין רק עמודה אחת של מזהה ישות, מציינים את שם העמודה בפורמט הבא:
      "entity_id_column_name"
    • כדי לציין כמה עמודות של מזהי ישויות, מציינים את שמות העמודות בפורמט הבא:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: ביטוי של לוח זמנים ב-Cron שמייצג את התדירות של סנכרון הנתונים לתצוגת התכונות. מידע נוסף זמין במאמר בנושא cron.
  • SERVICE_AGENT_TYPE: הגדרת חשבון שירות לתצוגת התכונות. כדי להשתמש בחשבון שירות ייעודי לתצוגת התכונות, מזינים SERVICE_AGENT_TYPE_FEATURE_VIEW.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

גוף בקשת JSON:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  },
  "service_agent_type": "SERVICE_AGENT_TYPE",
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

יצירת תצוגת תכונות עם ניהול הטמעה וחשבון שירות ייעודי

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

REST

כדי ליצור משאב FeatureView עם תמיכה בהטמעות, שולחים בקשת POST באמצעות ה-method‏ featureViews.create ומציינים את הפרמטר FeatureView.index_config. שימו לב שאפשר להשתמש בניהול הטמעה רק אם החנות הווירטואלית מוגדרת להצגה אופטימלית באינטרנט.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • LOCATION_ID: האזור שבו רוצים ליצור את תצוגת התכונות, למשל us-central1.
  • PROJECT_ID: מזהה הפרויקט.
  • FEATUREONLINESTORE_NAME: השם של מופע החנות אונליין שבו רוצים ליצור את תצוגת התכונות.
  • FEATUREVIEW_NAME: השם של תצוגת התכונות החדשה שרוצים ליצור.
  • PROJECT_NAME: שם הפרויקט.
  • DATASET_NAME: השם של מערך הנתונים ב-BigQuery.
  • TABLE_NAME: השם של הטבלה ממערך הנתונים ב-BigQuery.
  • ENTITY_ID_COLUMNS: השמות של העמודות שמכילות את מזהי הישויות. אפשר לציין עמודה אחת או כמה עמודות.
    • כדי לציין רק עמודה אחת של מזהה ישות, מציינים את שם העמודה בפורמט הבא:
      "entity_id_column_name"
    • כדי לציין כמה עמודות של מזהי ישויות, מציינים את שמות העמודות בפורמט הבא:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: ביטוי של לוח זמנים ב-Cron שמייצג את התדירות של סנכרון הנתונים לתצוגת התכונות. מידע נוסף זמין במאמר בנושא cron.
  • SERVICE_AGENT_TYPE: הגדרת חשבון שירות לתצוגת התכונות. כדי להשתמש בחשבון שירות ייעודי לתצוגת התכונות, מזינים SERVICE_AGENT_TYPE_FEATURE_VIEW.
  • EMBEDDING_COLUMN: השם של העמודה שמכילה את נתוני המקור ליצירת האינדקס לחיפוש וקטורי. ההגדרה הזו נדרשת רק אם רוצים לנהל הטמעות באמצעות תצוגת התכונות.
  • FILTER_COLUMN_1 ו-FILTER_COLUMN_2: אופציונלי: שמות העמודות שמשמשות לסינון תוצאות החיפוש הווקטורי.
  • CROWDING_COLUMN: אופציונלי: שם העמודה שמכילה את מאפייני הצפיפות.
  • EMBEDDING_DIMENSION: אופציונלי: הגודל, שמבוטא כמספר המאפיינים, של הטמעה בעמודת ההטמעה.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

גוף בקשת JSON:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  },
  "service_agent_type": "SERVICE_AGENT_TYPE",
  "index_config": {
    "embedding_column": "EMBEDDING_COLUMN",
    "filter_columns": ["FILTER_COLUMN_1", "FILTER_COLUMN_2"],
    "crowding_column": "CROWDING_COLUMN",
    "embedding_dimension": EMBEDDING_DIMENSION
    "tree_ah_config": {}
  }
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

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