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

דרישות ומגבלות
- Dataflow ML תומך בצינורות עיבוד נתונים באצווה ובסטרימינג.
-
RunInferenceAPI נתמך ב-Apache Beam מגרסה 2.40.0 ואילך. -
MLTransformAPI נתמך ב-Apache Beam מגרסה 2.53.0 ואילך. - יש מטפלים במודלים ל-PyTorch, scikit-learn, TensorFlow, ONNX ו-TensorRT. במקרה של מסגרות שלא נתמכות, אפשר להשתמש ב-handler של מודל מותאם אישית.
הכנת נתונים לאימון
אפשר להשתמש בתכונה
MLTransformכדי להכין את הנתונים לאימון מודלים של למידת מכונה. מידע נוסף מופיע במאמר בנושא עיבוד מוקדם של נתונים באמצעותMLTransform.להשתמש ב-Dataflow עם מסגרות ML-OPS, כמו Kubeflow Pipelines (KFP) או TensorFlow Extended (TFX). מידע נוסף על Dataflow ML בתהליכי עבודה של ML
צינורות עיבוד נתונים של חיזוי והסקת מסקנות
Dataflow ML משלב את היכולות של Dataflow עם RunInferenceAPI של Apache Beam. באמצעות RunInference API, מגדירים את המאפיינים של המודל ומעבירים את ההגדרה הזו לטרנספורמציה RunInference. התכונה הזו מאפשרת למשתמשים להריץ את המודל בצינורות Dataflow שלהם בלי שהם צריכים לדעת את פרטי ההטמעה של המודל. אתם יכולים לבחור את המסגרת שהכי מתאימה לנתונים שלכם, כמו TensorFlow ו-PyTorch.
הפעלת כמה מודלים בצינור לעיבוד נתונים
משתמשים בטרנספורמציה RunInference כדי להוסיף כמה מודלים של הסקה לצינור Dataflow. מידע נוסף, כולל פרטי קוד, זמין במאמר בנושא צינורות (pipelines) של כמה מודלים במסמכי Apache Beam.
פיתוח צינור עיבוד נתונים בשפות שונות
כדי להשתמש ב-RunInference עם צינור עיבוד נתונים ב-Java, צריך ליצור טרנספורמציה חוצת-שפות ב-Python. הצינור קורא לטרנספורמציה, שמבצעת את העיבוד המקדים, העיבוד שלאחר מכן וההסקה.
הוראות מפורטות וצינור לדוגמה זמינים במאמר שימוש ב-RunInference מתוך Java SDK.
שימוש ב-GPU עם Dataflow
לצינורות עיבוד נתונים של אצווה או סטרימינג שנדרש בהם שימוש במאיצים, אפשר להריץ צינורות עיבוד נתונים של Dataflow במכשירי GPU של NVIDIA. מידע נוסף זמין במאמר בנושא הפעלת צינור Dataflow עם מעבדי GPU.
פתרון בעיות ב-Dataflow ML
בקטע הזה מפורטות אסטרטגיות לפתרון בעיות וקישורים שיכולים לעזור לכם כשאתם משתמשים ב-Dataflow ML.
הפונקציה Stack מצפה שכל טנזור יהיה בגודל שווה
אם תספקו תמונות בגדלים שונים או הטבעות מילים באורכים שונים כשאתם משתמשים ב-RunInference API, יכול להיות שתופיע השגיאה הבאה:
File "/beam/sdks/python/apache_beam/ml/inference/pytorch_inference.py", line 232, in run_inference batched_tensors = torch.stack(key_to_tensor_list[key]) RuntimeError: stack expects each tensor to be equal size, but got [12] at entry 0 and [10] at entry 1 [while running 'PyTorchRunInference/ParDo(_RunInferenceDoFn)']
השגיאה הזו מתרחשת כי אי אפשר להוסיף לרשימת טנסורים ב-API של RunInference רכיבי טנסור בגדלים שונים. פתרונות עקיפים מפורטים במאמר Unable to batch tensor elements (אי אפשר לאגד אלמנטים של טנסור) במסמכי Apache Beam.
איך נמנעים משגיאות שקשורות לזיכרון כשמשתמשים במודלים גדולים
כשאתם טוענים מודל ML בינוני או גדול, יכול להיות שייגמר הזיכרון במחשב.
Dataflow מספק כלים שיעזרו לכם להימנע משגיאות של חוסר זיכרון (OOM) כשאתם טוענים מודלים של למידת מכונה (ML). מידע נוסף זמין במאמר בנושא שיטות מומלצות לשינוי RunInference.
המאמרים הבאים
- כדי לראות תרחישי שימוש ספציפיים, אפשר לעיין במחברות (notebooks) של Dataflow ML.
- מידע מפורט על שימוש בלמידת מכונה עם Apache Beam זמין במסמכי התיעוד של Apache Beam בנושא צינורות עיבוד נתונים של AI/ML.
- מידע נוסף על
RunInferenceAPI RunInferenceשיטות מומלצות- מידע נוסף על המדדים
שבהם אפשר להשתמש כדי לעקוב אחרי
RunInferenceהשינוי.