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

בדף הזה מוסבר איך להשתמש במערכי נתונים מנוהלים של Vertex AI כדי לאמן מודלים בהתאמה אישית. היתרונות של מערכי נתונים מנוהלים:

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

לפני שמתחילים

כדי להשתמש במערך נתונים מנוהל באפליקציית האימון, צריך קודם ליצור את מערך הנתונים. צריך ליצור את מערך הנתונים ואת צינור האימון שמשמש לאימון באותו אזור. חובה להשתמש באזור שבו משאבי Dataset זמינים.

גישה למערך נתונים מאפליקציית האימון

כשיוצרים צינור עיבוד נתונים לאימון ללא שרת, אפשר לציין שאפליקציית האימון תשתמש במערך נתונים של Vertex AI.

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

  • AIP_DATA_FORMAT: הפורמט שבו מערך הנתונים מיוצא. הערכים האפשריים כוללים: jsonl, csv או bigquery.
  • AIP_TRAINING_DATA_URI: ה-URI ב-BigQuery של נתוני האימון או ה-URI של Cloud Storage של קובץ נתוני האימון.
  • AIP_VALIDATION_DATA_URI: ה-URI של נתוני האימות ב-BigQuery או ה-URI של קובץ נתוני האימות ב-Cloud Storage.
  • AIP_TEST_DATA_URI: ה-URI של נתוני הבדיקה ב-BigQuery או ה-URI של קובץ נתוני הבדיקה ב-Cloud Storage.

אם הערך של AIP_DATA_FORMAT במערך הנתונים הוא jsonl או csv, ערכי מזהי ה-URI של הנתונים מתייחסים למזהי URI של Cloud Storage, כמו gs://bucket_name/path/training-*. כדי לשמור על גודל קטן יחסית של כל קובץ נתונים, מערכת Vertex AI מפצלת את מערך הנתונים לכמה קבצים. יכול להיות שנתוני האימון, האימות או הבדיקה יפוצלו לכמה קבצים, ולכן כתובות ה-URI מופיעות בפורמט של תווים כלליים.

מידע נוסף על הורדת אובייקטים באמצעות דוגמאות קוד של Cloud Storage

אם הערך של AIP_DATA_FORMAT הוא bigquery, ערכי ה-URI של הנתונים מתייחסים ל-URI של BigQuery, כמו bq://project.dataset.table.

מידע נוסף על דפדוף בנתוני BigQuery

פורמט מערך הנתונים

בקטעים הבאים מוסבר איך Vertex AI מעצב את הנתונים כשמעבירים מערך נתונים לאפליקציית האימון.

מערכי נתונים של תמונות

מערכי נתונים של תמונות מועברים לאפליקציית האימון בפורמט JSON Lines. כדי לקבל מידע נוסף על הפורמט של מערך הנתונים ב-Vertex AI, בוחרים את הכרטיסייה של היעד של מערך הנתונים.

סיווג עם תווית אחת

‫Vertex AI משתמש בסכימה הבאה שזמינה לכולם כשמייצאים מערך נתונים של סיווג תמונות עם תווית אחת. הסכימה הזו קובעת את הפורמט של קובצי ייצוא הנתונים. מבנה הסכימה מבוסס על סכימת OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml

כל פריט נתונים במערך הנתונים המיוצא הוא בפורמט הבא. בדוגמה הזו יש מעברי שורה כדי שהקוד יהיה קריא יותר.



{
  "imageGcsUri": "gs://bucket/filename.ext",
  "classificationAnnotation": {
    "displayName": "LABEL",
    "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name": "displayName",
        "env": "prod"
      }
   },
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training/test/validation"
  }
}

הערות בשדה:

  • imageGcsUri: ה-URI של התמונה ב-Cloud Storage.
  • annotationResourceLabels: מכיל מספר כלשהו של צמדי מחרוזות של מפתח/ערך. ‫Vertex AI משתמש בשדה הזה כדי לציין את קבוצת ההערות.
  • dataItemResourceLabels – מכיל מספר כלשהו של צמדי מפתח/ערך של מחרוזות. מציין את השימוש בלמידת מכונה בפריט הנתונים, כמו אימון, בדיקה או אימות.

דוגמה ל-JSON Lines



{"imageGcsUri": "gs://bucket/filename1.jpeg",  "classificationAnnotation": {"displayName": "daisy"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif",  "classificationAnnotation": {"displayName": "dandelion"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png",  "classificationAnnotation": {"displayName": "roses"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.bmp",  "classificationAnnotation": {"displayName": "sunflowers"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename5.tiff",  "classificationAnnotation": {"displayName": "tulips"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

סיווג עם כמה תוויות

‫Vertex AI משתמש בסכימה הבאה שזמינה לכולם כשמייצאים מערך נתונים של סיווג תמונות עם כמה תוויות. הסכימה הזו קובעת את הפורמט של קובצי ייצוא הנתונים. מבנה הסכימה מבוסס על סכימת OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_multi_label_io_format_1.0.0.yaml

כל פריט נתונים במערך הנתונים המיוצא הוא בפורמט הבא. בדוגמה הזו יש מעברי שורה כדי שהקוד יהיה קריא יותר.


{
  "imageGcsUri": "gs://bucket/filename.ext",
  "classificationAnnotations": [
    {
      "displayName": "LABEL1",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name":"displayName",
        "label_type": "flower_type"
      }
    },
    {
      "displayName": "LABEL2",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name":"displayName",
        "label_type": "image_shot_type"
      }
    }
  ],
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training/test/validation"
  }
}

הערות בשדה:

  • imageGcsUri: ה-URI של התמונה ב-Cloud Storage.
  • annotationResourceLabels: מכיל מספר כלשהו של צמדי מחרוזות של מפתח/ערך. ‫Vertex AI משתמש בשדה הזה כדי לציין את קבוצת ההערות.
  • dataItemResourceLabels – מכיל מספר כלשהו של צמדי מפתח/ערך של מחרוזות. מציין את השימוש בלמידת מכונה בפריט הנתונים, כמו אימון, בדיקה או אימות.

דוגמה ל-JSON Lines



{"imageGcsUri": "gs://bucket/filename1.jpeg",  "classificationAnnotations": [{"displayName": "daisy"}, {"displayName": "full_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif",  "classificationAnnotations": [{"displayName": "dandelion"}, {"displayName": "medium_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png",  "classificationAnnotations": [{"displayName": "roses"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.bmp",  "classificationAnnotations": [{"displayName": "sunflowers"}, {"displayName": "closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename5.tiff",  "classificationAnnotations": [{"displayName": "tulips"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

זיהוי אובייקטים

‫Vertex AI משתמש בסכימה הבאה שנגישה לכולם כשמייצאים מערך נתונים של זיהוי אובייקטים. הסכימה הזו קובעת את הפורמט של קובצי ייצוא הנתונים. מבנה הסכימה מבוסס על סכימת OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_bounding_box_io_format_1.0.0.yaml

כל פריט נתונים במערך הנתונים המיוצא הוא בפורמט הבא. בדוגמה הזו יש מעברי שורה כדי שהקוד יהיה קריא יותר.



{
  "imageGcsUri": "gs://bucket/filename.ext",
  "boundingBoxAnnotations": [
    {
      "displayName": "OBJECT1_LABEL",
      "xMin": "X_MIN",
      "yMin": "Y_MIN",
      "xMax": "X_MAX",
      "yMax": "Y_MAX",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name": "displayName",
        "env": "prod"
      }
    },
    {
      "displayName": "OBJECT2_LABEL",
      "xMin": "X_MIN",
      "yMin": "Y_MIN",
      "xMax": "X_MAX",
      "yMax": "Y_MAX"
    }
  ],
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "test/train/validation"
  }
}

הערות בשדה:

  • imageGcsUri: ה-URI של התמונה ב-Cloud Storage.
  • annotationResourceLabels: מכיל מספר כלשהו של צמדי מחרוזות של מפתח/ערך. ‫Vertex AI משתמש בשדה הזה כדי לציין את קבוצת ההערות.
  • dataItemResourceLabels – מכיל מספר כלשהו של צמדי מפתח/ערך של מחרוזות. מציין את השימוש בלמידת מכונה בפריט הנתונים, כמו אימון, בדיקה או אימות.

דוגמה ל-JSON Lines



{"imageGcsUri": "gs://bucket/filename1.jpeg", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.3", "yMin": "0.3", "xMax": "0.7", "yMax": "0.6"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.8", "yMin": "0.2", "xMax": "1.0", "yMax": "0.4"},{"displayName": "Salad", "xMin": "0.0", "yMin": "0.0", "xMax": "1.0", "yMax": "1.0"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png", "boundingBoxAnnotations": [{"displayName": "Baked goods", "xMin": "0.5", "yMin": "0.7", "xMax": "0.8", "yMax": "0.8"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.tiff", "boundingBoxAnnotations": [{"displayName": "Salad", "xMin": "0.1", "yMin": "0.2", "xMax": "0.8", "yMax": "0.9"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

מערכי נתונים טבלאיים

‫Vertex AI מעביר נתונים טבלאיים לאפליקציית האימון בפורמט CSV או כ-URI לטבלה או לתצוגה ב-BigQuery. מידע נוסף על הפורמט והדרישות של מקור הנתונים זמין במאמר הכנת מקור הייבוא. מידע נוסף על סכימת מערך הנתונים זמין במערך הנתונים במסוף Google Cloud .

מערכי נתונים של טקסט

מערכי נתונים של טקסט מועברים לאפליקציית האימון בפורמט JSON Lines. כדי לקבל מידע נוסף על הפורמט של מערך הנתונים ב-Vertex AI, בוחרים את הכרטיסייה של היעד של מערך הנתונים.

סיווג עם תווית אחת

מערכת Vertex AI משתמשת בסכימה הבאה שזמינה לכולם כשמייצאים מערך נתונים של סיווג טקסט עם תווית אחת. הסכימה הזו קובעת את הפורמט של קובצי ייצוא הנתונים. מבנה הסכימה מבוסס על סכימת OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

כל פריט נתונים במערך הנתונים המיוצא הוא בפורמט הבא. בדוגמה הזו יש מעברי שורה כדי שהקוד יהיה קריא יותר.

{
  "classificationAnnotation": {
    "displayName": "label"
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotation": {
    "displayName": "label2"
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

סיווג עם כמה תוויות

‫Vertex AI משתמש בסכימה הבאה שזמינה לכולם כשמייצאים מערך נתונים של סיווג טקסט עם כמה תוויות. הסכימה הזו קובעת את הפורמט של קובצי ייצוא הנתונים. מבנה הסכימה מבוסס על סכימת OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

כל פריט נתונים במערך הנתונים המיוצא הוא בפורמט הבא. בדוגמה הזו יש מעברי שורה כדי שהקוד יהיה קריא יותר.

{
  "classificationAnnotations": [{
    "displayName": "label1"
    },{
    "displayName": "label2"
  }],
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotations": [{
    "displayName": "label2"
    },{
    "displayName": "label3"
  }],
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

חילוץ ישויות

מערכת Vertex AI משתמשת בסכימה הבאה שנגישה לציבור כשמייצאים מערך נתונים של חילוץ ישויות. הסכימה הזו קובעת את הפורמט של קובצי ייצוא הנתונים. מבנה הסכימה מבוסס על סכימת OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml.

כל פריט נתונים במערך הנתונים המיוצא הוא בפורמט הבא. בדוגמה הזו יש מעברי שורה כדי שהקוד יהיה קריא יותר.

{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textContent": "inline_text",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}
{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textGcsUri": "gcs_uri_to_file",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}

ניתוח סנטימנטים

מערכת Vertex AI משתמשת בסכימה הבאה שזמינה לכולם כשהיא מייצאת מערך נתונים של ניתוח סנטימנט. הסכימה הזו קובעת את הפורמט של קובצי ייצוא הנתונים. מבנה הסכימה מבוסס על סכימת OpenAPI.

gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_sentiment_1.0.0.yaml

כל פריט נתונים במערך הנתונים המיוצא הוא בפורמט הבא. בדוגמה הזו יש מעברי שורה כדי שהקוד יהיה קריא יותר.

{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

מערכי נתונים של סרטונים

מערכי נתונים של סרטונים מועברים לאפליקציית האימון בפורמט JSON Lines. כדי לקבל מידע נוסף על הפורמט של מערך הנתונים ב-Vertex AI, בוחרים את הכרטיסייה של היעד של מערך הנתונים.

זיהוי פעולות

מערכת Vertex AI משתמשת בסכימה הבאה שזמינה לציבור כשהיא מייצאת מערך נתונים של זיהוי פעולות. הסכימה הזו קובעת את הפורמט של קובצי ייצוא הנתונים. מבנה הסכימה מבוסס על סכימת OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/video_action_recognition_io_format_1.0.0.yaml

כל פריט נתונים במערך הנתונים המיוצא הוא בפורמט הבא. בדוגמה הזו יש מעברי שורה כדי שהקוד יהיה קריא יותר.



{
  "videoGcsUri': "gs://bucket/filename.ext",
  "timeSegments": [{
    "startTime": "start_time_of_fully_annotated_segment",
    "endTime": "end_time_of_segment"}],
  "timeSegmentAnnotations": [{
    "displayName": "LABEL",
    "startTime": "start_time_of_segment",
    "endTime": "end_time_of_segment"
  }],
  "dataItemResourceLabels": {
    "ml_use": "train|test"
  }
}

הערה: פלחי הזמן כאן משמשים לחישוב חותמות הזמן של הפעולות. הערכים של startTime ושל endTime של timeSegmentAnnotations יכולים להיות שווים, והם מתאימים לפרים המרכזי של הפעולה.

דוגמה ל-JSON Lines



{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"ml_use": "training"}}
{"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"ml_use": "test"}}
...

סיווג

מערכת Vertex AI משתמשת בסכימה הבאה שזמינה לכולם כשהיא מייצאת מערך נתונים של סיווג. הסכימה הזו קובעת את הפורמט של קובצי ייצוא הנתונים. מבנה הסכימה מבוסס על סכימת OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml

כל פריט נתונים במערך הנתונים המיוצא הוא בפורמט הבא. בדוגמה הזו יש מעברי שורה כדי שהקוד יהיה קריא יותר.



{
	"videoGcsUri": "gs://bucket/filename.ext",
	"timeSegmentAnnotations": [{
		"displayName": "LABEL",
		"startTime": "start_time_of_segment",
		"endTime": "end_time_of_segment"
	}],
	"dataItemResourceLabels": {
		"aiplatform.googleapis.com/ml_use": "train|test"
	}
}

דוגמה ל-JSON Lines – סיווג סרטונים:



{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
...

מעקב אחרי אובייקטים

מערכת Vertex AI משתמשת בסכימה הבאה שזמינה לכולם כשהיא מייצאת מערך נתונים של מעקב אחרי אובייקטים. הסכימה הזו קובעת את הפורמט של קובצי ייצוא הנתונים. מבנה הסכימה מבוסס על סכימת OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/object_tracking_io_format_1.0.0.yaml

כל פריט נתונים במערך הנתונים המיוצא הוא בפורמט הבא. בדוגמה הזו יש מעברי שורה כדי שהקוד יהיה קריא יותר.



{
	"videoGcsUri": "gs://bucket/filename.ext",
	"TemporalBoundingBoxAnnotations": [{
		"displayName": "LABEL",
		"xMin": "leftmost_coordinate_of_the_bounding box",
		"xMax": "rightmost_coordinate_of_the_bounding box",
		"yMin": "topmost_coordinate_of_the_bounding box",
		"yMax": "bottommost_coordinate_of_the_bounding box",
		"timeOffset": "timeframe_object-detected"
                "instanceId": "instance_of_object
                "annotationResourceLabels": "resource_labels"
	}],
	"dataItemResourceLabels": {
		"aiplatform.googleapis.com/ml_use": "train|test"
	}
}

דוגמה ל-JSON Lines



{'videoGcsUri': 'gs://demo-data/video1.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '4.000000s', 'xMin': '0.668912', 'yMin': '0.560642', 'xMax': '1.000000', 'yMax': '1.000000'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{'videoGcsUri': 'gs://demo-data/video2.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '71.000000s', 'xMin': '0.679056', 'yMin': '0.070957', 'xMax': '0.801716', 'yMax': '0.290358'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
...

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