Vertex AI SDK כולל מחלקות שמאחסנות וקוראות נתונים שמשמשים לאימון מודל. כל מחלקה שקשורה לנתונים מייצגת מערך נתונים מנוהל של Vertex AI שמכיל נתונים מובנים, נתונים לא מובנים או נתונים של Vertex AI Feature Store. אחרי שיוצרים מערך נתונים, משתמשים בו כדי לאמן את המודל.
בנושאים הבאים מופיעים הסברים קצרים על כל מחלקה שקשורה לנתונים ב-Vertex AI SDK. הנושא של כל כיתה כולל דוגמה לקוד שמראה איך ליצור מופע של הכיתה הזו. אחרי שיוצרים מערך נתונים, אפשר להשתמש במזהה שלו כדי לאחזר אותו:
dataset = aiplatform.ImageDataset('projects/my-project/location/my-region/datasets/{DATASET_ID}')
מחלקות של נתונים מובְנים
המחלקות הבאות פועלות עם נתונים מובְנים, שמסודרים בשורות ובעמודות. לרוב משתמשים בנתונים מובְנים כדי לאחסן מספרים, תאריכים, ערכים ומחרוזות.
TabularDataset
אפשר להשתמש במחלקה הזו כדי לעבוד עם מערכי נתונים טבלאיים. אפשר להשתמש בקובץ CSV, ב-BigQuery או ב-pandas DataFrame כדי ליצור מערך נתונים טבלאי. מידע נוסף על דפדוף בנתוני BigQuery זמין במאמר קריאת נתונים באמצעות BigQuery API עם חלוקה לדפים.
מידע נוסף על נתונים טבלאיים זמין במאמר בנושא נתונים טבלאיים.
הקוד הבא מראה איך ליצור מערך נתונים טבלאי על ידי ייבוא של קובץ CSV.
my_dataset = aiplatform.TabularDataset.create(
display_name="my-dataset", gcs_source=['gs://path/to/my/dataset.csv'])
הקוד הבא מראה איך ליצור מערך נתונים טבלאי על ידי ייבוא קובץ CSV בשני שלבים נפרדים.
my_dataset = aiplatform.TextDataset.create(
display_name="my-dataset")
my_dataset.import(
gcs_source=['gs://path/to/my/dataset.csv']
import_schema_uri=aiplatform.schema.dataset.ioformat.text.multi_label_classification
)
אם יוצרים מערך נתונים טבלאי באמצעות pandas DataFrame, צריך להשתמש בטבלה ב-BigQuery כדי להכין את הנתונים ל-Vertex AI:
my_dataset = aiplatform.TabularDataset.create_from_dataframe(
df_source=my_pandas_dataframe,
staging_path=f"bq://{bq_dataset_id}.table-unique"
)
TimeSeriesDataset
אפשר להשתמש במחלקה הזו כדי לעבוד עם מערכי נתונים של סדרות עיתיות. סדרת זמן היא קבוצת נתונים שמכילה נתונים שנרשמו במרווחי זמן שונים. מערך הנתונים כולל זמן ומשתנה אחד לפחות שתלוי בזמן. משתמשים במערך נתונים של סדרת זמנים כדי ליצור תחזיות. מידע נוסף זמין במאמר סקירה כללית על תחזיות.
אפשר ליצור מערך נתונים מנוהל של נתוני סדרות זמן מקובצי CSV בקטגוריה של Cloud Storage או מטבלה ב-BigQuery.
הקוד הבא מראה איך ליצור TimeSeriesDataset על ידי ייבוא של קובץ מקור נתונים מסוג CSV שמכיל את מערך הנתונים של סדרת הזמן:
my_dataset = aiplatform.TimeSeriesDataset.create(
display_name="my-dataset", gcs_source=['gs://path/to/my/dataset.csv'])
בדוגמה הבאה אפשר לראות איך יוצרים TimeSeriesDataset על ידי ייבוא של קובץ טבלה ב-BigQuery שמכיל את מערך הנתונים של סדרת הזמן:
my_dataset = aiplatform.TimeSeriesDataset.create(
display_name="my-dataset", bq_source=['bq://path/to/my/bigquerydataset.train'])
סיווגים של נתונים לא מובנים
המחלקות הבאות פועלות עם נתונים לא מובְנים, שלא ניתן לאחסן במסד נתונים רלציוני. הוא מאוחסן לרוב כקובצי אודיו, טקסט או וידאו, או כבסיס נתונים מסוג NoSQL.
ImageDataset
אפשר להשתמש במחלקה הזו כדי לעבוד עם מערך נתונים מנוהל של תמונות. כדי ליצור מערך נתונים של תמונות מנוהלות, צריך קובץ של מקור נתונים בפורמט CSV וקובץ סכימה בפורמט YAML. סכימה היא אופציונלית למודל בהתאמה אישית. הגישה לקובץ ה-CSV ולסכימה מתבצעת בקטגוריות של Cloud Storage.
שימוש בנתוני תמונות למטרות הבאות:
- סיווג עם תווית אחת. מידע נוסף זמין במאמר בנושא הכנת נתוני אימון של תמונות לסיווג עם תווית אחת.
- סיווג עם כמה תוויות. מידע נוסף זמין במאמר בנושא הכנת נתוני אימון של תמונות לסיווג רב-תוויות.
- זיהוי אובייקטים. למידע נוסף, אפשר לעיין במאמר הכנת נתוני אימון של תמונות לזיהוי אובייקטים.
הקוד הבא מראה איך ליצור מערך נתונים של תמונות על ידי ייבוא של קובץ מקור נתונים בפורמט CSV וקובץ סכימה בפורמט YAML. קובץ הסכימה שבו אתם משתמשים תלוי בסוג הבעיה שאתם מנסים לפתור: סיווג עם תווית אחת, סיווג עם כמה תוויות או זיהוי אובייקטים.
my_dataset = aiplatform.ImageDataset.create(
display_name="my-image-dataset",
gcs_source=['gs://path/to/my/image-dataset.csv'],
import_schema_uri=['gs://path/to/my/schema.yaml']
)
סיווג נתונים ב-Vertex AI Feature Store
Vertex AI Feature Store הוא שירות מנוהל שמשמש לאחסון, להצגה, לניהול ולשיתוף של תכונות של למידת מכונה בהתאם לצורך ולגודל.
Vertex AI Feature Store משתמש במודל נתונים של סדרות זמן שמורכב משלוש מחלקות ששומרות על התכונות כשהן משתנות לאורך זמן. שלושת הסוגים מסודרים בסדר ההיררכי הבא:
מידע נוסף על מודל הנתונים של Vertex AI Feature Store זמין במאמר מודל נתונים ומשאבים. מידע נוסף על הדרישות לגבי מקורות נתונים ב-Vertex AI Feature Store זמין במאמר בנושא דרישות לגבי נתוני המקור.
המחלקות הבאות משמשות עם נתונים מ-Vertex AI Feature Store:
Featurestore
משאב מאגר פיצ'רים, שמיוצג על ידי המחלקה Featurestore, הוא המחלקה ברמה העליונה בהיררכיית מודל הנתונים של Vertex AI Feature Store.
המשאב ברמה הבאה במודל הנתונים הוא סוג הישות, שהוא אוסף של תכונות שקשורות מבחינה סמנטית שאתם יוצרים. אלה כמה מהשיטות של Featurestore שפועלות עם סוגי ישויות:
יצירת סוג ישות
משתמשים ב-Featurestore.create_entity_type
method עם entity_type_id כדי ליצור משאב מסוג ישות. משאב מסוג ישות מיוצג על ידי המחלקה EntityType. הערך entity_type_id הוא אלפאנומרי וחייב להיות ייחודי במאגר פיצ'רים. בדוגמה הבאה אפשר לראות איך יוצרים סוג ישות:
entity_type = aiplatform.featurestore.create_entity_type(
entity_type_id=my_entity_type_name, description=my_entity_type_description
)
הצגת סוגי ישויות
אפשר להשתמש באחת משלוש השיטות של Featurestore כדי להציג פריטי נתונים של ישויות:
batch_serve_to_bqמעביר נתונים לטבלה ב-BigQuery.
batch_serve_to_dfמעביר נתונים ל-pandasDataFrame.
batch_serve_to_gcsמעביר נתונים לקובץ CSV או לקובץ TensorFlowTFRecord.
EntityType
המחלקה EntityType מייצגת משאב מסוג ישות, שהוא אוסף של תכונות שקשורות מבחינה סמנטית שאתם מגדירים. לדוגמה, לשירות מוזיקה יכולים להיות סוגי הישויות musical_artist ו-user. אפשר להשתמש ב-method FeatureStore.create_entity_type או ב-method EntityType.create כדי ליצור סוג ישות. בדוגמה הבאה אפשר לראות איך משתמשים ב-EntityType.create:
entity_type = aiplatform.EntityType.create(
entity_type_id=my_entity_type_name, featurestore_name=featurestore_name
)
Feature
המחלקות Feature מייצגות משאב תכונה שהוא מאפיין או תכונה מדידים של סוג ישות. לדוגמה, לישות מסוג musical_artist יכולים להיות מאפיינים כמו date_of_birth ו-last_name, כדי לעקוב אחרי מאפיינים שונים של אומנים מוזיקליים. התכונות צריכות להיות ייחודיות לסוג ישות, אבל לא חייבות להיות ייחודיות באופן גלובלי.
כשיוצרים Feature, צריך לציין את סוג הערך שלו (לדוגמה, BOOL_ARRAY, DOUBLE, DOUBLE_ARRAY או STRING). בקוד הבא מוצגת דוגמה לאופן שבו יוצרים תכונה:
my_feature = aiplatform.Feature.create(
feature_id='my_feature_id',
value_type='INT64',
entity_type_name='my_entity_type_id',
featurestore_id='my_featurestore_id',
)