1. סקירה כללית
בשיעור ה-Lab הזה תלמדו איך ליצור מערכת מקצה לקצה של נתונים ל-AI לזיהוי הונאות בזמן אמת ב-Google Cloud. המטרה היא להבין איך עוברים מנתונים גולמיים לצינור ML מוכן לייצור שפועל ב-Google Cloud. במעבדה הזו משתמשים במוצרים הבאים של 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 ו-Plotly.
- איך מאמנים מודל למידת מכונה באמצעות 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:

3. תרחיש שימוש ב-FraudFinder ונתונים
FraudFinder היא סדרה של מחברות שמלמדות את המסע המקיף מנתונים ל-AI ב-Google Cloud, באמצעות תרחיש לדוגמה של זיהוי הונאות בזמן אמת. במחברות תלמדו איך לקרוא נתונים היסטוריים של עסקאות תשלום שמאוחסנים במחסן נתונים, לקרוא מזרם נתונים בשידור חי של עסקאות חדשות, לבצע ניתוח נתונים ראשוני (EDA), לבצע הנדסת תכונות, להטמיע תכונות ל-Feature Store, לאמן מודל באמצעות Feature Store, לרשום את המודל במרשם המודלים, להעריך את המודל, לפרוס את המודל לנקודת קצה, לבצע הסקה בזמן אמת במודל באמצעות Feature Store ולנטר את המודל.
זיהוי הונאות כולל סיווג וזיהוי אנומליות, שני תחומים נרחבים בתוך למידת מכונה. לכן, זיהוי הונאות הוא תרחיש שימושי לדוגמה לסיפור אמיתי שקל להבין, ודרך מצוינת להציג נתונים מקצה לקצה לארכיטקטורת AI ב-Google Cloud. אתם לא צריכים להיות מומחי הונאה כדי להבין את הארכיטקטורה מקצה לקצה. אפשר להשתמש בתבנית של הארכיטקטורה הזו בתרחישי שימוש אחרים.
בהמשך מופיע סקירה כללית של הארכיטקטורה של FraudFinder:

מערך נתונים
מערך הנתונים מסונתז באמצעות הקוד מהפרויקט Machine Learning for Credit Card Fraud Detection - Practical Handbook מ-Kaggle. זיהוי תרמיות בזמן אמת שונה מבחינה ארכיטקטונית מזיהוי תרמיות מבוסס-אצווה, והוא מאופיין במאפיינים הבאים:
- תדירות גבוהה (לדוגמה, 1,000 לשנייה) של בקשות לתחזיות
- זמן טעינה קצר (למשל, פחות משנייה אחת) של בקשת חיזוי ← תגובה
- החיזוי מתבצע בדרך כלל על כל דגימה בבקשת חיזוי, או ב'אצוות מיקרו' (למשל, 1,000 טרנזקציות שנשלחות כאצווה כדי להסיק מסקנות כמעט בזמן אמת)
- הנדסת פיצ'רים (feature engineering) להצגת מודעות צריכה להתבצע מראש או בזמן אמת
מערך נתונים היסטורי של FraudFinder
יש טבלאות ציבוריות ב-BigQuery עם נתוני עסקאות תשלום היסטוריים, שמאפשרות למשתמשים לאמן את המודלים שלהם ולבצע הנדסת פיצ'רים (feature engineering) באמצעות נתונים ב-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 הזה תלמדו איך להשתמש בנתונים בזמן אמת, ואיך להחיל על נתונים בזמן אמת הנדסת פיצ'רים (feature engineering) והסקת מסקנות. תכונות בזמן אמת יכולות לעזור לשפר את המודל באמצעות אותות שאחרת לא תוכלו להשתמש בהם בזמן ההסקה.
נתונים בסטרימינג בזמן אמת ב-FraudFinder
במסגרת מעבדת FraudFinder יש נושאים ציבוריים של Pub/Sub עם עסקאות תשלום בסטרימינג בשידור חי, שמאפשרים למשתמשים לבדוק בקלות את נקודות הקצה של המודל ואת תכונות הסטרימינג. Pub/Sub הוא שירות העברת הודעות אסינכרוני וניתן להרחבה. תשתמשו בנושאים האלה כדי להזרים תכונות ולבצע הסקה אונליין. המשתמשים יכולים גם לעבור בין נושאים עם שיעורי הונאה בסיסיים לבין נושאים עם שיעורי הונאה גבוהים יותר כדי להציג את המעקב אחר המודל. אלה הנושאים הציבוריים שזמינים ב-Pub/Sub:
ff-txff-txlabels
4. הגדרת הפרויקט ומופע ה-Notebook
כדי להפעיל את המעבדה הזו, צריך פרויקט ב-Google Cloud Platform שמופעל בו חיוב. כדי ליצור פרויקט, פועלים לפי ההוראות.
חשוב: מומלץ להריץ את ה-Lab הזה בפרויקט חדש. בשיעור ה-Lab הזה נעסוק במוצרים רבים ושונים, ולכן הכי קל למחוק את כל הפרויקט בסיום שיעור ה-Lab.
אם יש לכם פרויקט, אתם יכולים להמשיך לשלבים הבאים. השלבים הבאים מופיעים גם בקובץ README.md שנמצא במאגר.
שלב 1: הפעלת ממשקי ה-API
קודם כל, עוברים לפרויקט שיצרתם ופותחים 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 Workbench (notebook API) API אם הוא לא מופעל.

אחרי ההפעלה, בוחרים באפשרות USER-MANAGED NOTEBOOKS:

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

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

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

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

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

שלב 3: הגדרת תפקידי IAM
לצורך הפשטות, נניח שתשתמשו בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. זו לא שיטת העבודה המומלצת לעומסי עבודה בסביבת ייצור. השיטה המומלצת היא ליצור חשבונות שירות ייעודיים לכל אפליקציה, ולהימנע משימוש בחשבונות שירות שמוגדרים כברירת מחדל. מידע נוסף על שיטות מומלצות לשימוש בחשבונות שירות זמין בתיעוד שלנו. חשבון השירות שמוגדר כברירת מחדל ב-Compute ייראה בערך כך: 123456789123-compute@developer.gserviceaccount.com. עוברים אל IAM Admin ולוחצים על ADD. בתצוגה, מחפשים ובוחרים את חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, ואז מקצים את התפקידים הבאים:
BigQuery AdminStorage AdminStorage Object AdminVertex AI AdministratorPub/Sub Admin
הוא אמור להיראות בערך כך. אל תשכחו לשמור את ההגדרות החדשות.

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

מעתיקים את הפקודה הבאה, מדביקים אותה ומריצים אותה בטרמינל של המחברת:
git clone https://github.com/GoogleCloudPlatform/fraudfinder.git
הרצת הפקודה הזו תשכפל את מאגר FraudFinder למופע של מחברת. אחרי שמריצים את git clone, התיקייה fraudfinder מופיעה בצד שמאל במופע של המחברת. עכשיו עוברים לתיקייה fraudfinder. כאן תמצאו את המחברות שדרושות לשיעור ה-Lab.
מהקטעים הבאים ואילך, צריך לפעול לפי ההוראות במחברות. צריך להמשיך בהגדרת הסביבה.
5. הגדרת הסביבה
בקטע הזה נסביר איך להגדיר את סביבת הפרויקט. בקטע הזה נסביר:
- מגדירים את הסביבה, כולל חבילות.
- טעינת נתונים ל-BigQuery.
- קריאת נתונים מנושאים ציבוריים ב-Pub/Sub.
יש להמשיך עם המחברת הבאה ולפעול לפי ההוראות שלב אחר שלב:
00_environment_setup.ipynb
6. ניתוח נתונים ראשוני
בקטע הזה נלמד איך לבצע ניתוח נתונים ראשוני כדי להבין טוב יותר את נתוני ההונאה. בקטע הזה נסביר:
- שליפה ועיון בנתונים מ-BigQuery באמצעות SQL
- איך יוצרים תרשים של נתוני עסקאות באמצעות BigQuery ו-Plotly
- החלת צבירות נתונים ויצירת תרשים פיזור
יש להמשיך למחברת הבאה ולפעול לפי ההוראות שלב אחר שלב:
01_exploratory_data_analysis.ipynb
7. הנדסת פיצ'רים (feature engineering) של נתונים בכמות גדולה ושל נתוני סטרימינג
בקטע הזה תעבדו על Feature Engineering כדי ליצור תכונות לאימון המודל מתוך הנתונים הגולמיים. נשתמש באצווה ובסטרימינג. חשוב לכלול את שני תרחישי השימוש האלה בזיהוי הונאות. בקטע הזה נסביר:
- איך ליצור פיצ'רים באמצעות BigQuery ו-SQL
- יצירה של Vertex AI Feature Store והוספת נתונים
- איך מטפלים בנתונים בזמן אמת ומייבאים אותם ל-Feature Store
צריך להמשיך עם שני המחברות הבאות לפי הסדר הזה ולפעול לפי ההוראות במחברות:
02_feature_engineering_batch.ipynb03_feature_engineering_streaming.ipynb
8. אימון מודלים, חיזוי, פורמליזציה ומעקב
בקטע הזה תאמנו ותפרסו את המודל הראשון שלכם ב-BigQuery Model כדי לזהות מקרים אפשריים של הונאה. תלמדו גם איך לקחת את קוד האימון והפריסה שלכם ולהפוך אותו לפייפליין אוטומטי. בנוסף, תקבלו הסבר על תחזיות אונליין ומעקב אחרי המודל בסביבת הייצור. בקטע הזה נסביר:
- איך מאמנים מודל BigQuery ML ורושמים אותו במרשם המודלים של Vertex AI
- פריסת המודל כנקודת קצה ב-Vertex AI
- איך משתמשים ב-Vertex AI SDK
- איך אפשר לקחת את המודל של BigQuery ML וליצור צינור עיבוד נתונים של למידת מכונה מקצה לקצה
- איך משתמשים ב-Vertex AI Model Monitoring
צריך להמשיך עם מחברות ה-Notebook הבאות לפי הסדר הזה ולפעול לפי ההוראות במחברות ה-Notebook. מחברות ה-BQML נמצאות בתיקייה BQML. פועלים לפי השלבים במחברת:
04_model_training_and_prediction.ipynb05_model_training_pipeline_formalization.ipynb06_model_monitoring.ipynb07_model_inference.ipynb
🎉 Congratulations! 🎉
למדתם איך לבנות ארכיטקטורה של נתונים ל-AI ב-Google Cloud.
9. הסרת המשאבים
מומלץ להריץ את ה-Lab הזה בפרויקט חדש. בשיעור ה-Lab הזה נשתמש בהרבה מוצרים שונים, ולכן הכי קל למחוק את כל הפרויקט בסיום שיעור ה-Lab. במאמרי העזרה שלנו אפשר למצוא מידע נוסף על מחיקת הפרויקט.
אם רוצים למחוק את השירותים, צריך לפעול לפי ההוראות במחברות או למחוק את המשאבים שנוצרו.