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 transform
השימוש ב-
RunInference פשוט כמו הוספת קוד הטרנספורמציה לצינור עיבוד הנתונים. בדוגמה הזו, MODEL_HANDLER הוא אובייקט ההגדרה של המודל.
with beam.Pipeline() as p: transformed_data = ( p | beam.Create(data) | MLTransform(...) | beam.Map(print))
קוד MLTransform
כדי להכין את הנתונים לאימון מודלים של למידת מכונה, משתמשים ב-
MLTransform בצינור הנתונים. MLTransform עוטף כמה טרנספורמציות של עיבוד נתונים במחלקה אחת, ומאפשר להשתמש במחלקה אחת למגוון משימות של עיבוד מקדים.
חיזוי והסקת מסקנות באמצעות מודלים שעברו אימון מראש
יש לי מודל Pytorch
שימוש במודל שעבר אימון מראש עם Pytorch.
יש לי מודל scikit-learn
שימוש במודל שעבר אימון מראש עם scikit-learn.
יש לי מודל TensorFlow
שימוש במודל שעבר אימון מראש עם TensorFlow.
יש לי handler של מודל Vertex AI
ל-Apache Beam יש תמיכה מובנית בשליחת בקשות לנקודת קצה (endpoint) של Vertex AI שנפרסה מרחוק. במחברת הזו מוסבר איך להשתמש בטרנספורמציה של Apache Beam
RunInference לסיווג תמונות באמצעות Vertex AI.
אני רוצה להשתמש בכמה מודלים שאומנו בצורה שונה בצינור שלי
אפשר להשתמש בטרנספורמציה
RunInference עם handler של מודל עם מפתח כדי להשתמש בכמה מודלים באותה טרנספורמציה RunInference.
עיבוד נתונים באמצעות MLTransform
אני רוצה ליצור הטמעות טקסט עבור מודל שפה גדול (LLM) באמצעות Vertex AI
אפשר להשתמש במחלקה
MLTransform של Apache Beam עם Vertex AI text-embeddings API כדי ליצור הטמעות טקסט. הטמעות טקסט הן דרך לייצג טקסט כווקטורים מספריים, וזה נחוץ להרבה משימות של עיבוד שפה טבעית (NLP).
אני רוצה ליצור הטמעות טקסט עבור מודל שפה גדול (LLM) באמצעות Hugging Face
אפשר להשתמש במחלקת
MLTransform של Apache Beam עם מודלים של Hugging Face Hub כדי ליצור הטמעות טקסט. המסגרת SentenceTransformers של Hugging Face משתמשת ב-Python כדי ליצור הטמעות של משפטים, טקסט ותמונות.
אני רוצה לחשב אוצר מילים ממערך נתונים
חישוב אוצר מילים ייחודי מתוך מערך נתונים, ואז מיפוי של כל מילה או טוקן לאינדקס נפרד של מספרים שלמים. משתמשים בטרנספורמציה הזו כדי לשנות נתונים טקסטואליים לייצוגים מספריים למשימות של למידת מכונה.
אני רוצה להגדיל את הנתונים כדי לאמן את מודל ה-ML שלי
התאמת הנתונים כך שתוכלו להשתמש בהם לאימון מודל ה-ML. המחלקות
MLTransform של Apache Beam כוללות כמה טרנספורמציות של שינוי קנה מידה של נתונים.
חיזוי והסקת מסקנות באמצעות מודלים של Hub
אני רוצה לבצע ניתוח סנטימנטים וסיכום
אתם יכולים להשתמש במודלים של Gemma בצינורות ההיקש שלכם כדי לאמוד את הסנטימנט של שיחה, לסכם את התוכן של השיחה ולנסח תשובה לשיחה מורכבת.
יש לי מודל מאומן מ-Hugging Face
משתמשים בטרנספורמציה
RunInference עם מודל שעבר אימון מ-Hugging Face.
יש לי מודל מאומן מ-TensorFlow Hub
משתמשים בטרנספורמציה
RunInference ל-TensorFlow עם מודל מאומן מ-TensorFlow Hub.
אני רוצה להשתמש ב-AI גנרטיבי
משתמשים בטרנספורמציה
RunInference למשימות של AI גנרטיבי. המחברת הזו משתמשת במודל שפה מ-Hugging Face Model Hub.
תזמור תהליכי עבודה של למידת מכונה
אני רוצה להשתמש ב-Dataflow עם Vertex AI Pipelines
Vertex AI Pipelines עוזר לכם להפוך את מערכות ה-ML לאוטומטיות, לנטר אותן ולנהל אותן באמצעות תזמור של תהליכי העבודה של ה-ML באופן serverless. שימוש ב-Vertex AI Pipelines כדי לתזמר DAG של תהליך עבודה שמוגדר על ידי TFX או KFP, וכדי לעקוב באופן אוטומטי אחרי ארטיפקטים של למידת מכונה באמצעות Vertex ML Metadata.
אני רוצה להשתמש ב-Dataflow עם TFX
TensorFlow Extended (TFX) מאפשרת לכם לפרוס צינורות עיבוד נתונים מלאים של למידת מכונה באמצעות מסגרת תזמור עם שילוב מובנה עם Apache Beam ועם Dataflow runner.
אני רוצה להשתמש ב-Dataflow עם KFP
Kubeflow מאפשר פריסה פשוטה, ניידת וניתנת להרחבה של תהליכי עבודה של למידת מכונה ב-Kubernetes. Kubeflow Pipelines הם תהליכי עבודה מלאים של למידת מכונה שאפשר לעשות בהם שימוש חוזר, והם נוצרו באמצעות Kubeflow Pipelines SDK.
זיהוי אנומליות
זיהוי אנומליות באמצעות שיטות סטטיסטיות
במחברת הזו מוסבר איך לבצע זיהוי אנומליות בנתונים של אצווה ובנתונים בסטרימינג באמצעות
AnomalyDetection PTransform. הוא משתמש באלגוריתם Z-Score כדי לזהות ערכים חריגים במערך נתונים.
תכונות נוספות
שימוש במאיצים (GPU/TPU)
שימוש במאיצים כמו GPU ו-TPU במשימות Dataflow יכול להאיץ באופן משמעותי את משימות עיבוד הנתונים שמשמשות לעיתים קרובות בתרחישי שימוש של למידת מכונה ועיבוד תמונות.
יחידות TPU, בפרט, הן מאיצי AI שתוכננו בהתאמה אישית ואופטימליים לאימון של מודלים גדולים של AI ולשימוש בהם. הן מספקות דרך מגוונת להרחבת מגוון רחב של עומסי עבודה של AI.
שילוב בין מעבדי CPU ומעבדי GPU עם התאמה נכונה
אפשר לשלב בין מעבדים גרפיים (GPU) ומעבדים מרכזיים (CPU) כדי לקבל ביצועים גבוהים בעלות נמוכה יותר. היכולת לטרגט משאבים לשלבים ספציפיים בצינור מאפשרת גמישות ויכולת נוספות בצינור, וחיסכון פוטנציאלי בעלויות.
העשרת צינורות סטרימינג בנתונים ממאגר תכונות
Apache Beam מפשטת את תהליך העבודה של העשרת הנתונים באמצעות טרנספורמציה מוכנה מראש להעשרה שאפשר להוסיף לצינור הנתונים.
תחזוקה והערכה של מודלים
רענון אוטומטי של המודל
RunInference מאפשר לבצע עדכוני מודלים אוטומטיים בלי להפסיק את צינור הנתונים של Apache Beam. אפשר להשתמש בקלט צדדי כדי לעדכן את המודל בזמן אמת, גם בזמן שהצינור פועל.
הערכת המודלים
אתם יכולים להשתמש ב-TensorFlow Model Analysis (TFMA) כדי לבדוק ולהמחיש את הביצועים של מודל על ידי יצירה והשוואה של שני מודלים. באמצעות Apache Beam, אפשר להעריך ולהשוות בין כמה מודלים בשלב אחד.
משאבים
הפעלת צינורות נתונים בין שפות שונות
כדי להשתמש ב-RunInference עם צינור עיבוד נתונים ב-Java, צריך ליצור טרנספורמציה ב-Python בין שפות. הצינור קורא לטרנספורמציה, שמבצעת את העיבוד המקדים, העיבוד שלאחר מכן וההסקה.
הרשאות ל-Dataflow
כדי להריץ את הדוגמאות של Dataflow ML, יכול להיות שתצטרכו להגדיר את ההרשאות שלכם ב-Google Cloud. כאן אפשר לקרוא מדריך מפורט על ההרשאות הנדרשות לצינורות Dataflow.
צפייה בדוגמאות ב-GitHub
הדוגמאות וקוד המקור שלהן זמינים ב-GitHub. ב-GitHub אפשר למצוא גם הוראות להרצת הדוגמאות ב-Colab.
תרחיש שימוש לדוגמה
בפוסט הזה בבלוג מוסבר איך לבנות אפליקציות RAG עם חיפוש סמנטי וייצוגים מספריים (embeddings) בזמן אמת. הוא משתמש ב-Dataflow ML כדי להכין את הנתונים על ידי המרתם להטמעות ושמירתם במסד נתונים וקטורי כמו AlloyDB.