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

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

מידע על שימוש ב-MLTransform למשימות של יצירת הטבעות זמין במאמר יצירת הטבעות באמצעות MLTransform.

דיאגרמה של תהליך העבודה של למידת מכונה ב-Dataflow, עם הדגשה של שלב עיבוד הנתונים.

איור 1. תהליך העבודה המלא של למידת מכונה ב-Dataflow. משתמשים ב-MLTransform בשלב העיבוד המקדים של תהליך העבודה.

יתרונות

היתרונות של סוג האחסון MLTransform:

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

    מידע נוסף על יצירת הטמעות זמין במאמר בנושא יצירת הטמעות באמצעות MLTransform.

תמיכה ומגבלות

יש הגבלות על המחלקה MLTransform:

  • התכונה זמינה לצינורות שמשתמשים ב-Apache Beam Python SDK בגרסה 2.53.0 ואילך.
  • בצינורות צריך להשתמש בחלונות ברירת המחדל.

טרנספורמציות של עיבוד נתונים שמשתמשות ב-TFT:

  • תמיכה ב-Python 3.9,‏ 3.10 ו-3.11.
  • תמיכה בצינורות עיבוד נתונים של קבוצות.

תרחישים לדוגמה

מחברות הדוגמה מראות איך להשתמש ב-MLTransform לתרחישי שימוש ספציפיים של הטמעות.

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

רשימה מלאה של טרנספורמציות זמינה במאמר Transforms במסמכי התיעוד של Apache Beam.

שימוש ב-MLTransform

כדי להשתמש במחלקה MLTransform לעיבוד מקדים של נתונים, צריך לכלול את הקוד הבא בצינור העיבוד:

  import apache_beam as beam
  from apache_beam.ml.transforms.base import MLTransform
  from apache_beam.ml.transforms.tft import TRANSFORM_NAME
  import tempfile

  data = [
      {
          DATA
      },
  ]

  artifact_location = gs://BUCKET_NAME
  TRANSFORM_FUNCTION_NAME = TRANSFORM_NAME(columns=['x'])

  with beam.Pipeline() as p:
    transformed_data = (
        p
        | beam.Create(data)
        | MLTransform(write_artifact_location=artifact_location).with_transform(
            TRANSFORM_FUNCTION_NAME)
        | beam.Map(print))

מחליפים את הערכים הבאים:

  • TRANSFORM_NAME: השם של הטרנספורמציה שרוצים להשתמש בה
  • BCUKET_NAME: השם של הקטגוריה של Cloud Storage
  • DATA: נתוני הקלט להמרה
  • TRANSFORM_FUNCTION_NAME: השם שאתם מקצים לפונקציית הטרנספורמציה בקוד

המאמרים הבאים