מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

מהירות פיתוח ML באמצעות SageMaker Feature Store ודחיסה של חנות לא מקוונת Apache Iceberg

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

חנות הפונקציות של אמזון SageMaker הוא פתרון ניהול תכונות בנוי למטרות המסייע למדעני נתונים ומהנדסי ML לאחסן, לגלות ולשתף בצורה מאובטחת נתונים שנאספו המשמשים בהדרכה ובזרימות עבודה לחיזוי. SageMaker Feature Store תומך כעת אפאצ'י קרח כפורמט טבלה לאחסון תכונות. זה מאיץ את פיתוח המודל על ידי הפעלת ביצועי שאילתות מהירים יותר בעת חילוץ מערכי נתונים של אימון ML, תוך ניצול היתרון של דחיסה של טבלת Iceberg. בהתאם לעיצוב קבוצות התכונות שלך ולקנה המידה שלהן, תוכל לחוות שיפורי ביצועי שאילתות אימון של פי 10 עד פי 100 על ידי שימוש ביכולת החדשה הזו.

עד סוף פוסט זה, תדעו ליצור קבוצות תכונות בפורמט Iceberg, לבצע את נהלי ניהול הטבלה של Iceberg באמצעות אמזונה אתנה, ותזמן משימות אלו לפעול באופן אוטונומי. אם אתה משתמש Spark, תלמד גם כיצד לבצע את אותם הליכים באמצעות Spark ולשלב אותם בסביבת Spark ובאוטומציה משלך.

SageMaker Feature Store ו- Apache Iceberg

חנות הפונקציות של אמזון SageMaker הוא חנות מרכזית לתכונות ומטא נתונים קשורים, המאפשרת לגלות בקלות תכונות ולעשות בהן שימוש חוזר על ידי צוותי מדעני נתונים העובדים על פרויקטים שונים או מודלים של ML.

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

נתוני החנות הלא מקוונת מאוחסנים בדלי של Amazon Simple Storage Service (Amazon S3) בחשבון AWS שלך. SageMaker Feature Store בונה אוטומטית קטלוג נתוני דבק של AWS במהלך יצירת קבוצת תכונות. לקוחות יכולים גם לגשת לנתוני חנות לא מקוונת באמצעות זמן ריצה של Spark ולבצע עיבוד נתונים גדולים עבור ניתוח תכונות ML ומקרי שימוש בהנדסת תכונות.

פורמטים של טבלה מספקים דרך להפשטת קבצי נתונים כטבלה. במהלך השנים, פורמטים רבים של טבלאות הופיעו כדי לתמוך במקרים של עסקאות ACID, ממשל ושימוש בקטלוגים. אפאצ'י קרח הוא פורמט טבלה פתוח עבור מערכי נתונים אנליטיים גדולים מאוד. הוא מנהל אוספים גדולים של קבצים כטבלאות, והוא תומך בפעולות מודרניות של אגם נתונים אנליטיים כגון הוספה, עדכון, מחיקה ושאילתות מסע בזמן ברמת שיא. Iceberg עוקב אחר קבצי נתונים בודדים בטבלה במקום בספריות. זה מאפשר לכותבים ליצור קבצי נתונים במקום (קבצים לא מועברים או משתנים) ולהוסיף רק קבצים לטבלה ב-commit מפורש. מצב הטבלה נשמר בקבצי מטא נתונים. כל השינויים במצב הטבלה יוצרים גרסת קובץ מטא-נתונים חדשה המחליפה מבחינה אטומית את המטא-נתונים הישנים יותר. קובץ המטא נתונים של הטבלה עוקב אחר סכימת הטבלה, תצורת החלוקה ומאפיינים אחרים.

ל-Iceberg יש אינטגרציות עם שירותי AWS. לדוגמה, אתה יכול להשתמש ב- דבק AWS קטלוג נתונים כ-metastore עבור טבלאות Iceberg, ו אתנה תומך בשאילתות קריאה, מסע בזמן, כתיבה ו-DDL עבור טבלאות Apache Iceberg המשתמשות בפורמט Apache Parquet עבור נתונים ובקטלוג ה-AWS Glue עבור המטא-store שלהם.

עם SageMaker Feature Store, כעת תוכל ליצור קבוצות תכונות עם פורמט טבלת Iceberg כחלופה לפורמט הדבק הסטנדרטי המוגדר כברירת מחדל. עם זה, לקוחות יכולים למנף את פורמט הטבלה החדש כדי להשתמש בתכונות דחיסת הקבצים וגיזום הנתונים של Iceberg כדי לעמוד בדרישות השימוש והאופטימיזציה שלהם. אייסברג גם מאפשרת ללקוחות לבצע מחיקה, שאילתות נסיעות בזמן, עסקאות בו-זמנית גבוהה ושאילתות בעלות ביצועים גבוהים יותר.

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

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

בסעיפים הבאים, תלמד כיצד ליצור קבוצות תכונות באמצעות פורמט Iceberg, לבצע את הליכי ניהול הטבלה של Iceberg באמצעות AWS Athena ולהשתמש בשירותי AWS כדי לתזמן את המשימות הללו להפעלה לפי דרישה או לפי לוח זמנים. אם אתה משתמש Spark, תלמד גם כיצד לבצע את אותם הליכים באמצעות Spark.

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

יצירת קבוצות תכונות באמצעות פורמט טבלת Iceberg

תחילה עליך לבחור אייסברג כפורמט טבלה בעת יצירת קבוצות תכונות חדשות. פרמטר אופציונלי חדש TableFormat ניתן להגדיר באופן אינטראקטיבי באמצעות Amazon SageMaker Studio או באמצעות קוד באמצעות ה-API או ה-SDK. פרמטר זה מקבל את הערכים ICEBERG or GLUE (עבור פורמט AWS Glue הנוכחי). קטע הקוד הבא מראה לך כיצד ליצור קבוצת תכונות באמצעות פורמט Iceberg ו FeatureGroup.create API של SageMaker SDK.

orders_feature_group_iceberg.create(
s3_uri=f"s3://{s3_bucket_name}/{prefix}",
record_identifier_name=record_identifier_feature_name,
event_time_feature_name=event_time_feature_name,
role_arn=role,
enable_online_store=True,
table_format=TableFormatEnum.ICEBERG
)

הטבלה תיווצר ותירשם אוטומטית בקטלוג הנתונים של דבק AWS.

עכשיו ש orders_feature_group_iceberg נוצר, תוכל להטמיע תכונות באמצעות צינור ההטמעה לבחירתך. בדוגמה זו, אנו בולעים רשומות באמצעות ה- FeatureGroup.ingest() API, אשר קולט רשומות מ-Pandas DataFrame. אתה יכול גם להשתמש ב FeatureGroup().put_record API להטמעת רשומות בודדות או לטיפול במקורות סטרימינג. משתמשי Spark יכולים גם להטמיע מסגרות נתונים של Spark באמצעות שלנו מחבר ניצוץ.

orders_fg = FeatureGroup(name=orders_feature_group_iceberg_name,
sagemaker_session=feature_store_session)
orders_fg.ingest(data_frame=order_data, wait=True)

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

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

ביצוע נהלי ניהול טבלאות אייסברג

אמזונה אתנה הוא מנוע שאילתות SQL ללא שרת התומך באופן טבעי בהליכי ניהול Iceberg. בחלק זה, תשתמש ב- Athena כדי לדחוס באופן ידני את קבוצת התכונות הלא מקוונות שיצרת. שימו לב, תצטרכו להשתמש בגירסה 3 של מנוע אתנה. לשם כך, תוכלו ליצור קבוצת עבודה חדשה, או להגדיר קבוצת עבודה קיימת, ולבחור בגרסה המומלצת של מנוע אתנה 3. למידע נוסף והנחיות לשינוי גרסת מנוע אתנה, עיין ב- שינוי גרסאות מנוע אתנה.

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

כדי לבצע דחיסה, אתה משתמש ב- OPTIMIZE table REWRITE DATA פקודת תחזוקת טבלת דחיסה באתנה. התחביר הבא מראה כיצד לייעל את פריסת הנתונים של קבוצת תכונות המאוחסנת באמצעות פורמט טבלת Iceberg. ה sagemaker_featurestore מייצג את השם של מסד הנתונים של SageMaker Feature Store, ו orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 הוא שם טבלת קבוצת התכונות שלנו.

OPTIMIZE sagemaker_featurestore.orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 REWRITE DATA USING BIN_PACK

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

VACUUM sagemaker_featurestore.orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334

שים לב שמאפייני הטבלה ניתנים להגדרה באמצעות Athena's ALTER TABLE. לדוגמא כיצד לעשות זאת, עיין ב- תיעוד אתנה. עבור ואקום, vacuum_min_snapshots_to_keep ו vacuum_max_snapshot_age_seconds ניתן להשתמש כדי להגדיר פרמטרים של גיזום תמונת מצב.

בואו נסתכל על השפעת הביצועים של הפעלת דחיסה על טבלת קבוצות תכונות לדוגמה. למטרות בדיקה, הכנסנו את אותן רשומות תכונות הזמנות לשתי קבוצות תכונות, orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003 ו orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334, באמצעות עבודת עיבוד מקבילה של SageMaker עם Scikit-Learn, שמביאה ל-49,908,135 אובייקטים המאוחסנים באמזון S3 ובגודל כולל של 106.5 GiB.

אנו מריצים שאילתה לבחירת תמונת המצב העדכנית ביותר ללא כפילויות וללא רשומות שנמחקו בקבוצת התכונות orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003. לפני הדחיסה, השאילתה ארכה שעה ו-1 דקות.

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

לאחר מכן אנו מפעילים את הדחיסה orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 באמצעות שאילתת Athena OPTIMIZE, שדחסה את טבלת קבוצות התכונות ל-109,851 אובייקטים באמזון S3 ובגודל כולל של 2.5 GiB. אם נריץ את אותה שאילתה לאחר הדחיסה, זמן הריצה שלה ירד ל-1 דקה ו-13 שניות.

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

עם דחיסת קבצי Iceberg, זמן ביצוע השאילתה השתפר משמעותית. עבור אותה שאילתה, זמן הריצה ירד משעה אחת ו-1 דקות ל-27 דקות ו-1 שניות, שזה מהיר פי 13.

תזמון דחיסה של Iceberg עם שירותי AWS

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

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

ברמה גבוהה, אתה יוצר קבוצת תכונות באמצעות פורמט טבלת Iceberg ומכניס רשומות לחנות הפיצ'רים המקוונת. ערכי תכונה משוכפלים אוטומטית מהחנות המקוונת לחנות ההיסטורית הלא מקוונת. אתנה משמשת להפעלת נהלי ניהול Iceberg. כדי לתזמן את ההליכים, אתה מגדיר א דבק AWS עבודה באמצעות סקריפט מעטפת Python ויצירת לוח זמנים לעבודות AWS Glue.

הגדרת עבודת דבק של AWS

אתה משתמש בעבודת דבק של AWS כדי לבצע את פעולות תחזוקת טבלת Iceberg לפי לוח זמנים. ראשית, עליך ליצור תפקיד IAM עבור AWS Glue כדי לקבל הרשאות גישה לאמזון אתנה, אמזון S3 ו-CloudWatch.

לאחר מכן, עליך ליצור סקריפט של Python כדי להפעיל את הליכי Iceberg. אתה יכול למצוא את סקריפט לדוגמא ב-GitHub. הסקריפט יבצע את שאילתת OPTIMIZE באמצעות boto3.

optimize_sql = f"optimize {database}.{table} rewrite data using bin_pack"

הסקריפט עבר פרמטרים באמצעות ה-AWS Glue getResolvedOptions(args, options) פונקציית עזר המעניקה לך גישה לארגומנטים המועברים לסקריפט שלך בעת הפעלת עבודה. בדוגמה זו, ניתן להעביר את אזור ה-AWS, מסד הנתונים והטבלה של Iceberg עבור קבוצת התכונות שלך, קבוצת העבודה של Athena ותיקיית תוצאות מיקום הפלט של Athena כפרמטרים לעבודה, מה שהופך את הסקריפט הזה לשימוש חוזר בסביבה שלך.

לבסוף, אתה יוצר את עבודת AWS Glue בפועל כדי להפעיל את הסקריפט כמעטפת ב-AWS Glue.

  • נווט אל קונסולת הדבק של AWS.
  • בחר את מקומות תעסוקה הכרטיסייה תחת AWS Glue Studio.
  • בחר עורך סקריפט של Python Shell.
  • בחרו העלה וערוך סקריפט קיים. לחץ צור.
  • השמיים פרטי עבודה הלחצן מאפשר לך להגדיר את עבודת הדבק של AWS. עליך לבחור את תפקיד IAM שיצרת קודם לכן. בחר פייתון 3.9 או הגרסה העדכנית ביותר הזמינה של Python.
  • באותה לשונית, ניתן גם להגדיר מספר אפשרויות תצורה אחרות, כגון מספר ניסיונות חוזרים or פסק זמן לעבודה. ב מאפיינים מתקדמים, אתה יכול להוסיף פרמטרי עבודה כדי לבצע את הסקריפט, כפי שמוצג בצילום המסך לדוגמה למטה.
  • נְקִישָׁה שמור.

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

ביצוע משימות ניהול טבלאות Iceberg עם Spark

לקוחות יכולים גם להשתמש ב-Spark כדי לנהל את עבודות הדחיסה ושיטות התחזוקה. לפרטים נוספים על נהלי Spark, ראה את תיעוד ניצוץ.

תחילה עליך להגדיר כמה מהמאפיינים הנפוצים.

%%configure -f
{
  "conf": {
    "spark.sql.catalog.smfs": "org.apache.iceberg.spark.SparkCatalog",
    "spark.sql.catalog.smfs.catalog-impl": "org.apache.iceberg.aws.glue.GlueCatalog",
    "spark.sql.catalog.smfs.warehouse": "",
    "spark.sql.extensions":"org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",
    "spark.sql.catalog.smfs.glue.skip-name-validation": "true"
  }
}

ניתן להשתמש בקוד הבא כדי לייעל את קבוצות התכונות באמצעות Spark.

spark.sql(f"""CALL smfs.system.rewrite_data_files(table => '{DATABASE}.`{ICEBERG_TABLE}`')""")

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

spark.sql(f"""CALL smfs.system.expire_snapshots(table => '{DATABASE}.`{ICEBERG_TABLE}`', older_than => TIMESTAMP '{one_day_ago}', retain_last => 1)""")
spark.sql(f"""CALL smfs.system.remove_orphan_files(table => '{DATABASE}.`{ICEBERG_TABLE}`')""")

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

כדי לחקור את דוגמא הקוד המלאה ולנסות אותה בחשבון משלך, עיין ב- GitHub ריפו.

סיכום

SageMaker Feature Store מספק פתרון ניהול תכונה בנוי במיוחד כדי לעזור לארגונים להגדיל את פיתוח ML בין צוותי מדעי הנתונים. בפוסט זה, הסברנו כיצד ניתן למנף את Apache Iceberg כפורמט טבלה ופעולות תחזוקה של טבלאות כגון דחיסה כדי להפיק תועלת משאילתות מהירות משמעותית בעבודה עם קבוצות תכונות לא מקוונות בקנה מידה, וכתוצאה מכך לבנות מערכי נתונים מהירה יותר. נסה את זה, וספר לנו מה אתה חושב בתגובות.


על המחברים

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ארנו לאואר הוא אדריכל פתרונות שותפים בכיר בצוות המגזר הציבורי ב-AWS. הוא מאפשר לשותפים וללקוחות להבין כיצד להשתמש בצורה הטובה ביותר בטכנולוגיות AWS כדי לתרגם צרכים עסקיים לפתרונות. הוא מביא עם יותר מ-17 שנות ניסיון במתן וארכיטקטורה של פרויקטים של טרנספורמציה דיגיטלית במגוון תעשיות, כולל המגזר הציבורי, אנרגיה ומוצרי צריכה. ארנו מחזיק ב-12 הסמכות AWS, כולל הסמכת ML Specialty.

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.יואן קטאנה הוא ארכיטקט פתרונות מומחה לבינה מלאכותית ולמידת מכונה ב-AWS. הוא עוזר ללקוחות לפתח ולהרחיב את פתרונות ה-ML שלהם בענן AWS. ליואן יש למעלה מ-20 שנות ניסיון בעיקר בתכנון ארכיטקטורת תוכנה והנדסת ענן.

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.מארק רוי הוא אדריכל למידה ממוחשבת של AWS, המסייע ללקוחות לתכנן ולבנות פתרונות AI / ML. עבודתו של מארק מכסה מגוון רחב של מקרים לשימוש ב- ML, תוך התעניינות ראשונית בראייה ממוחשבת, למידה עמוקה והיקף ML ברחבי הארגון. הוא סייע לחברות בענפים רבים, כולל ביטוח, שירותים פיננסיים, מדיה ובידור, שירותי בריאות, שירותים וייצור. מארק מחזיק בשש אישורי AWS, כולל הסמכת ML Speciality. לפני שהצטרף ל- AWS, היה מארק אדריכל, מפתח ומוביל טכנולוגיה במשך 25 שנה, כולל 19 שנים בשירותים פיננסיים.

מהירות פיתוח ML באמצעות SageMaker Feature Store ו- Apache Iceberg דחיסה של חנות לא מקוונת PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ברנדון צ'טהם הוא מהנדס תוכנה עם צוות SageMaker Feature Store. הוא נלהב מאוד מבניית מערכות אלגנטיות שמביאות ביג דאטה ולמידת מכונה לקצות האצבעות של אנשים.

בול זמן:

עוד מ למידת מכונות AWS