FaudFinder: מנתונים גולמיים ועד AI באמצעות Vertex AI ו-BigQuery.

1. סקירה כללית

בשיעור ה-Lab הזה תלמדו איך לפתח מערכת AI מקצה לקצה לצורך זיהוי הונאות בזמן אמת ב-Google Cloud. המטרה היא להבין איך לעבור מנתונים גולמיים לצינור עיבוד נתונים של למידת מכונה מוכן לייצור שפועל ב-Google Cloud. בשיעור ה-Lab הזה נעשה שימוש במוצרים הבאים של Google Cloud:

מה תלמדו?

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

  • היכרות עם שיטות מומלצות לפיתוח נתונים למערכות AI ב-Google Cloud.
  • נלמד איך לבצע הנדסת פיצ'רים (feature engineering) עם BigQuery באמצעות SQL (לעיבוד אצווה) ו-Apache Beam באמצעות Dataflow (עיבוד בזמן אמת) ושימוש ב-Vertex AI Feature Store.
  • איך לבצע ניתוח נתונים באמצעות ספריות BigQuery ו-Python כמו Pandas ו-Plootly.
  • איך לאמן מודל למידת מכונה עם BigQuery ML באמצעות SQL.
  • איך להשתמש ב-Vertex AI כדי לאחסן, לפרוס ולעקוב אחר המודל שלכם.
  • איך להשתמש ב-Vertex AI Pipelines כדי ליצור פורמליזציה של הנתונים לתהליך העבודה ב-AI.

חשוב: העלות של הפעלת שיעור ה-Lab הזה ב-Google Cloud היא כ-100$.

2. מנתונים גולמיים ועד AI באמצעות Vertex AI ו-BigQuery

שיעור ה-Lab הזה עוסק במוצרי ה-AI וניתוח הנתונים העדכניים ביותר שזמינים ב-Google Cloud, כמו Vertex AI ו-BigQuery ML. Vertex AI ו-BigQuery מאפשרים לעבור מנתונים גולמיים ל-AI בקלות רבה יותר, ומספקים חוויית פיתוח חלקה שעוזרת לכם להיות פרודוקטיביים יותר ביישום המודלים שלכם. לקבלת עזרה נוספת, אפשר לעיין בדף התמיכה.

Vertex AI כולל מוצרים רבים ושונים לתמיכה בנתונים מקצה לקצה לתהליכי עבודה של AI. לפניכם סקירה כללית של כל היכולות של Vertex AI:

סקירה כללית של המוצר Vertex

3. תרחיש לדוגמה ונתונים של הונאות

FaudFinder הוא סדרת קובצי notebook שמלמדים את כל הנתונים המקיפים את תהליך ה-AI ב-Google Cloud, תוך שימוש בתרחיש לדוגמה של זיהוי הונאות בזמן אמת. בעזרת ה-notebooks תלמדו איך לקרוא נתונים היסטוריים של עסקאות תשלום שמאוחסנים במחסן נתונים, לקרוא משידור חי של עסקאות חדשות, לבצע חקירה של ניתוח נתונים (EDA), לבצע הנדסת פיצ'רים, להטמיע תכונות בחנות של פיצ'רים, לאמן מודל באמצעות מאגר פיצ'רים, לרשום את המודל במרשם מודלים, להעריך את המודל, לפרוס את המודל בנקודת קצה, לבצע מסקנות בזמן אמת מהמודל ולהסיק מסקנות בזמן אמת במודל שלכם.

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

לפניכם סקירה כללית של הארכיטקטורה של FraudFinder:

ארכיטקטורת FraudFinder

מערך נתונים

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

  • תדירות גבוהה (למשל, 1,000 לשנייה) של בקשות חיזוי
  • זמן אחזור קצר (למשל, פחות משנייה) לבקשת חיזוי ← תגובה
  • החיזוי הוא בדרך כלל לכל דגימה אחת לכל בקשת חיזוי או יכול להיות מסוג 'מיקרו-אצווה' (למשל 1,000 עסקאות נשלחות כקבוצה להסקת מסקנות כמעט בזמן אמת)
  • הנדסת פיצ'רים (feature engineering) להצגה חייבת להיות מחושבת מראש או מחושבת בזמן אמת

מערך נתונים היסטורי של FraudFinder

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

cymbal-fraudfinder (project)
|-`tx` (dataset)  
  |-`tx` (table: transactions without labels)  
  |-`txlabels` (table: transactions with fraud labels (1 or 0))  
|-demographics  
  |-`customers` (table: profiles of customers)  
  |-`terminals` (table: profiles of terminals)  
  |-`customersterminals` (table: profiles of customers and terminals within their radius)  

למה כדאי להציג נתונים בזמן אמת?

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

נתונים בסטרימינג בשידור חי של FraudFinder

במסגרת שיעור ה-Lab של FraudFinder, יש נושאים ציבוריים Pub/Sub שכוללים עסקאות תשלום בשידור חי, שמשתמשים יכולים לבדוק בנוחות את נקודות הקצה של המודלים ואת תכונות הסטרימינג שלהם. Pub/Sub הוא שירות העברת הודעות אסינכרוני וניתן להתאמה. הנושאים האלה ישמשו אתכם כדי לשדר תכונות ולהסיק מסקנות אונליין. המשתמשים יכולים גם לעבור בין נושאים עם שיעור הונאה בסיסי לעומת שיעור הונאה גבוה יותר כדי להציג מעקב אחרי המודלים. אלה נושאי Pub/Sub שגלויים לכולם:

  • ff-tx
  • ff-txlabels

4. הגדרת הפרויקט ומכונת ה-notebook

כדי להריץ את שיעור ה-Lab הזה, צריך פרויקט ב-Google Cloud Platform שהחיוב מופעל בו. כדי ליצור פרויקט, פועלים לפי ההוראות.

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

אם יש לך פרויקט, עליך להמשיך בשלבים הבאים. השלבים הבאים מופיעים גם בקובץ README.md שנמצא במאגר.

שלב 1: מפעילים את ממשקי ה-API

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

Cloud Shell

בשלב הבא, מעתיקים ומדביקים את הקוד הבא ב-Cloud Shell. הסקריפט יפעיל את ממשקי ה-API הנדרשים וייצור מינויי Pub/Sub כדי לקרוא טרנזקציות בסטרימינג מנושאי Pub/Sub ציבוריים. צריך להמתין זמן מה כדי לבצע את כל הפקודות.

gcloud services enable notebooks.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable pubsub.googleapis.com
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable dataflow.googleapis.com
gcloud services enable bigquery.googleapis.com

gcloud pubsub subscriptions create "ff-tx-sub" --topic="ff-tx" --topic-project="cymbal-fraudfinder"
gcloud pubsub subscriptions create "ff-txlabels-sub" --topic="ff-txlabels" --topic-project="cymbal-fraudfinder"

# Run the following command to grant the Compute Engine default service account access to read and write pipeline artifacts in Google Cloud Storage.
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUM=$(gcloud projects list --filter="$PROJECT_ID" --format="value(PROJECT_NUMBER)")
gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:${PROJECT_NUM}-compute@developer.gserviceaccount.com"\
      --role='roles/storage.admin'

שלב 2: יצירת מכונה של Vertex AI Workbench

אחר כך עוברים לקטע Vertex AI במסוף Cloud. לאחר מכן עוברים אל Workbench:

תפריט Vertex AI

הפעלה של Vertex AI Workbench (notebook API) API אם הוא לא מופעל.

Notebook_api

לאחר ההפעלה, בוחרים בפנקסי פתקים בניהול משתמשים:

Notebooks_UI

לאחר מכן בוחרים פנקס רשימות חדש. אפשר לבחור ב-Python 3.

new_notebook

נותנים שם למחברת, למשל fraudfinder, ולוחצים על הגדרות מתקדמות.

create_notebook

חשוב: הקפידו לבחור באפשרות Service Account בקטע Permissions.

חשבון שירות

חשוב: בקטע אבטחה, בוחרים באפשרות 'הפעלת הטרמינל' אם היא לא מופעלת עדיין.

enable_terminal

אפשר להשאיר את כל שאר ההגדרות המתקדמות כפי שהן.

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

אחרי שהמכונה נוצרה, בוחרים באפשרות Open JupyterLab.

open_jupyterlab

שלב 3: הגדרת תפקידי IAM

כדי לפשט את הפשטות, נניח שתשתמשו בחשבון השירות שמשמש כברירת המחדל של Compute Engine. זו לא השיטה המומלצת לעומסי עבודה (workloads) של סביבת ייצור. השיטה המומלצת היא ליצור חשבונות שירות ייעודיים לכל אפליקציה, ולהימנע משימוש בחשבונות שירות שהוגדרו כברירת מחדל. מידע נוסף על שיטות מומלצות לחשבונות שירות זמין במסמכי התיעוד שלנו. חשבון השירות שמשמש כברירת מחדל ב-Compute Engine ייראה בערך כך: 123456789123-compute@developer.gserviceaccount.com. נכנסים לדף IAM Admin ולוחצים על ADD. בתצוגה, מחפשים את חשבון השירות שמשמש כברירת המחדל של Compute Engine ובוחרים בו, ואז מקצים את התפקידים הבאים:

  • BigQuery Admin
  • Storage Admin
  • Storage Object Admin
  • Vertex AI Administrator
  • Pub/Sub Admin

הוא אמור להיראות כך. לא לשכוח לשמור את ההגדרות החדשות!

iam-roles.png

שלב 4: שכפול מאגר GitHub

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

טרמינל פתוח

מעתיקים, מדביקים ומריצים את הפקודה הבאה בטרמינל של ה-notebook:

git clone https://github.com/GoogleCloudPlatform/fraudfinder.git

הרצת הפקודה הזו תשכפל את מאגר FraudFinder במכונה של ה-notebook. אחרי שהרצתם את git clone, תוכלו למצוא את התיקייה מאתר ההונאות במכונה של ה-notebook בצד ימין. עכשיו צריך לעבור אל התיקייה fraudfinder. כאן תמצאו את ה-notebooks שדרושים לשיעור ה-Lab.

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

5. הגדרת סביבה

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

  • הגדרת הסביבה, כולל חבילות.
  • לטעון נתונים לתוך BigQuery.
  • קריאת נתונים מנושאי Pub/Sub הציבוריים.

צריך להמשיך עם ה-notebook הבא ולפעול לפי ההוראות, שלב אחרי שלב:

  • 00_environment_setup.ipynb

6. חקירה וניתוח נתונים

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

  • חילוץ נתונים מ-BigQuery באמצעות SQL ועיון בהם
  • הצגת נתוני עסקאות באמצעות BigQuery ו-Plootly
  • יישום צבירת נתונים ויצירת גרף פיזור

צריך להמשיך במחברת הבאה ולפעול לפי ההוראות צעד אחר צעד:

  • 01_exploratory_data_analysis.ipynb

7. אצווה וסטרימינג של הנדסת פיצ'רים (feature engineering)

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

  • איך ליצור תכונות באמצעות BigQuery ו-SQL
  • יצירת Vertex AI Feature Store והזנת נתונים
  • איך לטפל בנתונים בסטרימינג ומטמיעים אותם ב-Feature Store

ממשיכים עם שתי המחברות הבאות לפי הסדר הזה ופועלים לפי ההוראות ב-notebooks:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. אימון מודלים, חיזוי, עיצוב רשמי ומעקב

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

  • איך לאמן מודל של BigQuery ML ולרשום אותו במרשם המודלים של Vertex AI
  • פריסת המודל כנקודת קצה ב-Vertex AI
  • איך משתמשים ב-Vertex AI SDK
  • איך אפשר להשתמש במודל למידת המכונה של BigQuery וליצור צינור עיבוד נתונים מקצה לקצה ללמידת מכונה
  • איך משתמשים ב-Model AI Monitoring

המשך עם המחברות הבאות בסדר הזה ובצע את ההוראות שב-notebook. ה-notebooks נמצאים בתיקייה BQML. פועלים לפי ההוראות ב-notebook:

  • 04_model_training_and_prediction.ipynb
  • 05_model_training_pipeline_formalization.ipynb
  • 06_model_monitoring.ipynb
  • 07_model_inference.ipynb
🎉 Congratulations! 🎉

למדתם איך לפתח ארכיטקטורת נתונים ל-AI ב-Google Cloud!

9. הסרת המשאבים

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

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