Dataflow ML

בעזרת Dataflow ML אפשר להשתמש ב-Dataflow כדי לפרוס ולנהל צינורות עיבוד נתונים מלאים של למידת מכונה (ML). שימוש במודלים של למידת מכונה כדי לבצע היקש מקומי ומרחוק באמצעות צינורות עיבוד נתונים של אצווה וסטרימינג. משתמשים בכלים לעיבוד נתונים כדי להכין את הנתונים לאימון המודל ולעבד את התוצאות של המודלים.
אם אתם רוצים לסווג תמונות בזמן אמת, להפעיל קריאות היקש מרחוק או ליצור מודל מותאם אישית לטיפול, תוכלו למצוא דוגמאות מלאות של Dataflow ML.
להשתמש במחלקה MLTransform כדי לבצע עיבוד מקדים של נתונים לתהליכי עבודה של למידת מכונה (ML). השילוב של כמה טרנספורמציות של עיבוד נתונים במחלקה אחת מאפשר ל-MLTransform לייעל את תהליך ההחלה של טרנספורמציות של עיבוד נתונים של Apache Beam ML על תהליך העבודה.
with pipeline as p:
  predictions = (
      p
      | beam.ReadFromSource('a_source')
      | RunInference(MODEL_HANDLER))
השימוש ב-RunInference פשוט כמו הוספת קוד הטרנספורמציה לצינור עיבוד הנתונים. בדוגמה הזו, MODEL_HANDLER הוא אובייקט ההגדרה של המודל.
with beam.Pipeline() as p:
  transformed_data = (
    p
    | beam.Create(data)
    | MLTransform(...)
    | beam.Map(print))
כדי להכין את הנתונים לאימון מודלים של למידת מכונה, משתמשים ב-MLTransform בצינור הנתונים. ‫MLTransform עוטף כמה טרנספורמציות של עיבוד נתונים במחלקה אחת, ומאפשר להשתמש במחלקה אחת למגוון משימות של עיבוד מקדים.

חיזוי והסקת מסקנות באמצעות מודלים שעברו אימון מראש

שימוש במודל שעבר אימון מראש עם Pytorch.
שימוש במודל שעבר אימון מראש עם scikit-learn.
שימוש במודל שעבר אימון מראש עם TensorFlow.
ל-Apache Beam יש תמיכה מובנית בשליחת בקשות לנקודת קצה (endpoint) של Vertex AI שנפרסה מרחוק. במחברת הזו מוסבר איך להשתמש בטרנספורמציה של Apache Beam‏ RunInference לסיווג תמונות באמצעות Vertex AI.
אפשר להשתמש בטרנספורמציה RunInference עם handler של מודל עם מפתח כדי להשתמש בכמה מודלים באותה טרנספורמציה RunInference.

עיבוד נתונים באמצעות MLTransform

אפשר להשתמש במחלקה MLTransform של Apache Beam עם Vertex AI text-embeddings API כדי ליצור הטמעות טקסט. הטמעות טקסט הן דרך לייצג טקסט כווקטורים מספריים, וזה נחוץ להרבה משימות של עיבוד שפה טבעית (NLP).
אפשר להשתמש במחלקת MLTransform של Apache Beam עם מודלים של Hugging Face Hub כדי ליצור הטמעות טקסט. המסגרת SentenceTransformers של Hugging Face משתמשת ב-Python כדי ליצור הטמעות של משפטים, טקסט ותמונות.
חישוב אוצר מילים ייחודי מתוך מערך נתונים, ואז מיפוי של כל מילה או טוקן לאינדקס נפרד של מספרים שלמים. משתמשים בטרנספורמציה הזו כדי לשנות נתונים טקסטואליים לייצוגים מספריים למשימות של למידת מכונה.
התאמת הנתונים כך שתוכלו להשתמש בהם לאימון מודל ה-ML. המחלקות MLTransform של Apache Beam כוללות כמה טרנספורמציות של שינוי קנה מידה של נתונים.

חיזוי והסקת מסקנות באמצעות מודלים של Hub

אתם יכולים להשתמש במודלים של Gemma בצינורות ההיקש שלכם כדי לאמוד את הסנטימנט של שיחה, לסכם את התוכן של השיחה ולנסח תשובה לשיחה מורכבת.
משתמשים בטרנספורמציה RunInference עם מודל שעבר אימון מ-Hugging Face.
משתמשים בטרנספורמציה RunInference ל-TensorFlow עם מודל מאומן מ-TensorFlow Hub.
משתמשים בטרנספורמציה RunInference למשימות של AI גנרטיבי. המחברת הזו משתמשת במודל שפה מ-Hugging Face Model Hub.

תזמור תהליכי עבודה של למידת מכונה

Vertex AI Pipelines עוזר לכם להפוך את מערכות ה-ML לאוטומטיות, לנטר אותן ולנהל אותן באמצעות תזמור של תהליכי העבודה של ה-ML באופן serverless. שימוש ב-Vertex AI Pipelines כדי לתזמר DAG של תהליך עבודה שמוגדר על ידי TFX או KFP, וכדי לעקוב באופן אוטומטי אחרי ארטיפקטים של למידת מכונה באמצעות Vertex ML Metadata.
‫TensorFlow Extended‏ (TFX) מאפשרת לכם לפרוס צינורות עיבוד נתונים מלאים של למידת מכונה באמצעות מסגרת תזמור עם שילוב מובנה עם Apache Beam ועם Dataflow runner.
‫Kubeflow מאפשר פריסה פשוטה, ניידת וניתנת להרחבה של תהליכי עבודה של למידת מכונה ב-Kubernetes. ‫Kubeflow Pipelines הם תהליכי עבודה מלאים של למידת מכונה שאפשר לעשות בהם שימוש חוזר, והם נוצרו באמצעות Kubeflow Pipelines SDK.

זיהוי אנומליות

במחברת הזו מוסבר איך לבצע זיהוי אנומליות בנתונים של אצווה ובנתונים בסטרימינג באמצעות AnomalyDetection PTransform. הוא משתמש באלגוריתם Z-Score כדי לזהות ערכים חריגים במערך נתונים.

תכונות נוספות

שימוש במאיצים כמו GPU ו-TPU במשימות Dataflow יכול להאיץ באופן משמעותי את משימות עיבוד הנתונים שמשמשות לעיתים קרובות בתרחישי שימוש של למידת מכונה ועיבוד תמונות.

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

אפשר לשלב בין מעבדים גרפיים (GPU) ומעבדים מרכזיים (CPU) כדי לקבל ביצועים גבוהים בעלות נמוכה יותר. היכולת לטרגט משאבים לשלבים ספציפיים בצינור מאפשרת גמישות ויכולת נוספות בצינור, וחיסכון פוטנציאלי בעלויות.
‫Apache Beam מפשטת את תהליך העבודה של העשרת הנתונים באמצעות טרנספורמציה מוכנה מראש להעשרה שאפשר להוסיף לצינור הנתונים.

תחזוקה והערכה של מודלים

RunInference מאפשר לבצע עדכוני מודלים אוטומטיים בלי להפסיק את צינור הנתונים של Apache Beam. אפשר להשתמש בקלט צדדי כדי לעדכן את המודל בזמן אמת, גם בזמן שהצינור פועל.
אתם יכולים להשתמש ב-TensorFlow Model Analysis‏ (TFMA) כדי לבדוק ולהמחיש את הביצועים של מודל על ידי יצירה והשוואה של שני מודלים. באמצעות Apache Beam, אפשר להעריך ולהשוות בין כמה מודלים בשלב אחד.

משאבים

כדי להשתמש ב-RunInference עם צינור עיבוד נתונים ב-Java, צריך ליצור טרנספורמציה ב-Python בין שפות. הצינור קורא לטרנספורמציה, שמבצעת את העיבוד המקדים, העיבוד שלאחר מכן וההסקה.
כדי להריץ את הדוגמאות של Dataflow ML, יכול להיות שתצטרכו להגדיר את ההרשאות שלכם ב-Google Cloud. כאן אפשר לקרוא מדריך מפורט על ההרשאות הנדרשות לצינורות Dataflow.
הדוגמאות וקוד המקור שלהן זמינים ב-GitHub. ב-GitHub אפשר למצוא גם הוראות להרצת הדוגמאות ב-Colab.
בפוסט הזה בבלוג מוסבר איך לבנות אפליקציות RAG עם חיפוש סמנטי וייצוגים מספריים (embeddings) בזמן אמת. הוא משתמש ב-Dataflow ML כדי להכין את הנתונים על ידי המרתם להטמעות ושמירתם במסד נתונים וקטורי כמו AlloyDB.