לוגו זפירנט

האץ את הזמן לתובנות עסקיות עם Amazon SageMaker Data Wrangler חיבור ישיר ל-Snowflake | שירותי האינטרנט של אמזון

תאריך:

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

SageMaker Data Wrangler תומך פְּתִית שֶׁלֶג, מקור נתונים פופולרי עבור משתמשים שרוצים לבצע ML. אנו משיקים את החיבור הישיר של Snowflake מ- SageMaker Data Wrangler על מנת לשפר את חווית הלקוח. לפני ההשקה של תכונה זו, מנהלי מערכת נדרשו להגדיר את שילוב האחסון הראשוני כדי להתחבר עם Snowflake כדי ליצור תכונות עבור ML ב-Data Wrangler. זה כולל הקצאה שירות אחסון פשוט של אמזון (Amazon S3) דליים, AWS זהות וניהול גישה הרשאות גישה (IAM), שילוב אחסון Snowflake למשתמשים בודדים ומנגנון מתמשך לניהול או ניקוי עותקי נתונים באמזון S3. תהליך זה אינו ניתן להרחבה עבור לקוחות עם בקרת גישה קפדנית לנתונים ומספר רב של משתמשים.

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

סקירת פתרונות

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

עיין בתרשים שלהלן לסקירה כללית של תהליך ML בקוד נמוך עם Snowflake, SageMaker Data Wrangler ו- SageMaker Autopilot.

זרימת העבודה כוללת את השלבים הבאים:

  1. נווט אל SageMaker Data Wrangler עבור משימות הכנת הנתונים ומשימות ההנדסה שלך.
    • הגדר את חיבור Snowflake עם SageMaker Data Wrangler.
    • חקור את טבלאות Snowflake שלך ​​ב- SageMaker Data Wrangler, צור מערך נתונים ML ובצע הנדסת תכונות.
  2. אימון ובדוק את הדגמים באמצעות SageMaker Data Wrangler ו- SageMaker Autopilot.
  3. טען את המודל הטוב ביותר לנקודת קצה בזמן אמת לתחזיות.
  4. השתמש במחברת Python כדי להפעיל את נקודת הסיום בזמן אמת שהושקה.

תנאים מוקדמים

עבור פוסט זה, המנהל צריך את התנאים המוקדמים הבאים:

מדעני נתונים צריכים להיות בעלי התנאים המוקדמים הבאים

לבסוף, עליך להכין את הנתונים שלך עבור Snowflake

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

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

טבלת פתיתי שלג והכנת נתונים

השלם את השלבים הבאים עבור הגדרה חד פעמית זו:

  1. ראשית, כמנהל, צור מחסן, משתמש ותפקיד וירטואלי של Snowflake, והענקת גישה למשתמשים אחרים כגון מדעני הנתונים כדי ליצור מסד נתונים ונתוני שלב עבור מקרי השימוש שלהם ב-ML:
    -- Use the role SECURITYADMIN to create Role and User
    USE ROLE SECURITYADMIN; -- Create a new role 'ML Role'
    CREATE OR REPLACE ROLE ML_ROLE COMMENT='ML Role';
    GRANT ROLE ML_ROLE TO ROLE SYSADMIN; -- Create a new user and password and grant the role to the user
    CREATE OR REPLACE USER ML_USER PASSWORD='<REPLACE_PASSWORD>'
    DEFAULT_ROLE=ML_ROLE
    DEFAULT_WAREHOUSE=ML_WH
    DEFAULT_NAMESPACE=ML_WORKSHOP.PUBLIC
    COMMENT='ML User';
    GRANT ROLE ML_ROLE TO USER ML_USER; -- Grant privliges to role
    USE ROLE ACCOUNTADMIN;
    GRANT CREATE DATABASE ON ACCOUNT TO ROLE ML_ROLE; --Create Warehouse for AI/ML work
    USE ROLE SYSADMIN; CREATE OR REPLACE WAREHOUSE ML_WH
    WITH WAREHOUSE_SIZE = 'XSMALL' AUTO_SUSPEND = 120 AUTO_RESUME = true INITIALLY_SUSPENDED = TRUE; GRANT ALL ON WAREHOUSE ML_WH TO ROLE ML_ROLE;
    

  2. בתור מדען הנתונים, בואו ניצור כעת מסד נתונים וייבא את עסקאות כרטיסי האשראי למסד הנתונים של Snowflake כדי לגשת לנתונים מ- SageMaker Data Wrangler. למטרות המחשה, אנו יוצרים מסד נתונים של Snowflake בשם SF_FIN_TRANSACTION:
    -- Select the role and the warehouse
    USE ROLE ML_ROLE;
    USE WAREHOUSE ML_WH; -- Create the DB to import the financial transactions
    CREATE DATABASE IF NOT EXISTS sf_fin_transaction; -- Create CSV File Format
    create or replace file format my_csv_format
    type = csv
    field_delimiter = ','
    skip_header = 1
    null_if = ('NULL', 'null')
    empty_field_as_null = true
    compression = gzip;
    

  3. הורד את קובץ ה-CSV של מערך הנתונים למחשב המקומי שלך וצור שלב לטעינת הנתונים לטבלת מסד הנתונים. עדכן את נתיב הקובץ כך שיצביע על מיקום הנתונים שהורדת לפני הפעלת פקודת PUT לייבוא ​​הנתונים לשלב שנוצר:
    -- Create a Snowflake named internal stage to store the transactions csv file
    CREATE OR REPLACE STAGE my_stage
    FILE_FORMAT = my_csv_format; -- Import the file in to the stage
    -- This command needs be run from SnowSQL client and not on WebUI
    PUT file:///Users/*******/Downloads/creditcard.csv @my_stage; -- Check whether the import was successful
    LIST @my_stage;
    

  4. צור טבלה בשם credit_card_transactions:
    -- Create table and define the columns mapped to the csv transactions file
    create or replace table credit_card_transaction (
    Time integer,
    V1 float, V2 float, V3 float,
    V4 float, V5 float, V6 float,
    V7 float, V8 float, V9 float,
    V10 float,V11 float,V12 float,
    V13 float,V14 float,V15 float,
    V16 float,V17 float,V18 float,
    V19 float,V20 float,V21 float,
    V22 float,V23 float,V24 float,
    V25 float,V26 float,V27 float,
    V28 float,Amount float,
    Class varchar(5)
    );
    

  5. ייבא את הנתונים לטבלה שנוצרה מהשלב:
    -- Import the transactions in to a new table named 'credit_card_transaction'
    copy into credit_card_transaction from @my_stage ON_ERROR = CONTINUE; -- Check whether the table was successfully created
    select * from credit_card_transaction limit 100;

הגדר את חיבור SageMaker Data Wrangler ו- Snowflake

לאחר שנכין את מערך הנתונים לשימוש עם SageMaker Data Wrangler, הרשו לנו ליצור חיבור Snowflake חדש ב- SageMaker Data Wrangler כדי להתחבר ל- sf_fin_transaction מסד הנתונים ב- Snowflake ושאילתה של credit_card_transaction שולחן:

  1. בחרו פְּתִית שֶׁלֶג ב- SageMaker Data Wrangler הקשר עמוד.
  2. ספק שם לזיהוי הקשר שלך.
  3. בחר את שיטת האימות שלך כדי להתחבר למסד הנתונים של Snowflake:
    • אם אתה משתמש באימות בסיסי, ספק את שם המשתמש והסיסמה המשותפים על ידי מנהל Snowflake שלך. עבור פוסט זה, אנו משתמשים באימות בסיסי כדי להתחבר ל- Snowflake באמצעות אישורי המשתמש שיצרנו בשלב הקודם.
    • אם אתה משתמש ב-OAuth, ספק את האישורים של ספק הזהות שלך.

SageMaker Data Wrangler כברירת מחדל מבצע שאילתות לנתונים שלך ישירות מ-Snowflake מבלי ליצור עותקי נתונים כלשהם בדלי S3. שיפור השימושיות החדש של SageMaker Data Wrangler משתמש ב-Apache Spark כדי להשתלב עם Snowflake כדי להכין וליצור בצורה חלקה מערך נתונים למסע שלך ב-ML.

עד כה, יצרנו את מסד הנתונים על Snowflake, ייבאנו את קובץ ה-CSV לטבלת Snowflake, יצרנו אישורי Snowflake, ויצרנו מחבר ב- SageMaker Data Wrangler כדי להתחבר ל-Snowflake. כדי לאמת את חיבור Snowflake המוגדר, הפעל את השאילתה הבאה בטבלת Snowflake שנוצרה:

select * from credit_card_transaction;

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

חקור את נתוני Snowflake

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

אתה יכול לבחור לדגום את הנתונים מ- Snowflake בממשק המשתמש של SageMaker Data Wrangler. אפשרות נוספת היא להוריד נתונים מלאים עבור מקרי שימוש בהכשרת מודל ML שלך באמצעות משרות עיבוד של SageMaker Data Wrangler.

בצע ניתוח נתונים חקרני ב- SageMaker Data Wrangler

יש לעצב את הנתונים בתוך Data Wrangler לפני שניתן יהיה לאמן אותם. בחלק זה, אנו מדגימים כיצד לבצע הנדסת תכונות על הנתונים מ- Snowflake באמצעות היכולות המובנות של SageMaker Data Wrangler.

ראשית, בואו נשתמש ב- Data Quality and Insights Report תכונה בתוך SageMaker Data Wrangler להפקת דוחות לאימות אוטומטית של איכות הנתונים וזיהוי חריגות בנתונים מ- Snowflake.

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

לאחר שתבדוק את התאמת סוגי הנתונים שהופעלו על ידי SageMaker Data Wrangler, בצע את השלבים הבאים:

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

אתה יכול לבחור לפתור את האזהרות שדווחו לפני שתמשיך במסע שלך ב-ML.

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

  1. בחרו הוסף שלב ולבחור עיצוב מחרוזת.
  2. ברשימת ההמרות, בחר פשט ימינה ושמאלה.
  3. הזן את התווים להסרה ובחר להוסיף.

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

  1. בחרו הוסף שלב.
  2. בחרו נתח עמודה כסוג.
  3. עבור עמודה, בחר Class.
  4. בעד מ, בחר מחרוזת.
  5. בעד ל, בחר בוליאני.
  6. בחרו להוסיף.

לאחר שינוי עמודות היעד, אנו מצמצמים את מספר עמודות התכונות, מכיוון שיש יותר מ-30 תכונות במערך הנתונים המקורי. אנו משתמשים בניתוח רכיבים ראשיים (PCA) כדי להפחית את הממדים על סמך חשיבות התכונות. כדי להבין יותר על PCA והפחתת מימדים, עיין ב אלגוריתם ניתוח רכיבים ראשיים (PCA)..

  1. בחרו הוסף שלב.
  2. בחרו צמצום ממדיות.
  3. בעד לשנות, בחר ניתוח מרכיב עיקרי.
  4. בעד עמודות קלט, בחר את כל העמודות מלבד עמודת היעד Class.
  5. בחר את סימן הפלוס שליד זרימת נתונים ולבחור הוסף ניתוח.
  6. בעד סוג ניתוח, בחר דגם מהיר.
  7. בעד שם ניתוח, הכנס שם.
  8. בעד תווית, בחר Class.
  9. בחרו הפעלה.

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

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

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

ייצא נתונים והכשרת המודל

בשלב הבא, אנו משתמשים בטייס אוטומטי של SageMaker כדי לבנות, לאמן ולכוון אוטומטית את דגמי ה-ML הטובים ביותר על סמך הנתונים שלך. עם טייס אוטומטי של SageMaker, אתה עדיין שומר על שליטה מלאה ונראות של הנתונים והמודל שלך.

כעת, לאחר שהשלמנו את החקירה והנדסת התכונות, בואו נאמן מודל על מערך הנתונים ולייצא את הנתונים כדי לאמן את מודל ה-ML באמצעות SageMaker Autopilot.

  1. על הדרכה בחר, בחר ייצוא והכשרת.

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

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

  1. הזן שם לניסוי שלך, ספק את נתוני המיקום של S3 ובחר הבא: יעד ותכונות.
  2. בעד יעד, בחר Class בתור העמודה לחזות.
  3. בחרו הבא: שיטת אימון.

בואו נאפשר ל-SageMaker Autopilot להחליט על שיטת האימון על סמך מערך הנתונים.

  1. בעד שיטת אימון ואלגוריתמים, בחר אוטומטי.

כדי להבין יותר על מצבי האימון הנתמכים על ידי טייס אוטומטי של SageMaker, עיין ב מצבי אימון ואלגוריתם תומכים.

  1. בחרו הבא: פריסה והגדרות מתקדמות.
  2. בעד אפשרות פריסה, בחר פרוס אוטומטית את הדגם הטוב ביותר עם טרנספורמציות מ-Data Wrangler, אשר טוענת את המודל הטוב ביותר להסקת מסקנות לאחר השלמת הניסוי.
  3. הזן שם עבור נקודת הקצה שלך.
  4. בעד בחר את סוג הבעיה של למידת מכונה, בחר סיווג בינארי.
  5. בעד מדד התנגדות, בחר F1.
  6. בחרו הבא: סקור וצור.
  7. בחרו צור ניסוי.

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

המתן עד שהטייס האוטומטי של SageMaker יסיים את בניית הדגמים והערכה של דגם ה-ML הטוב ביותר.

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

SageMaker Autopilot מפעיל ניסויים כדי לקבוע את המודל הטוב ביותר שיכול לסווג עסקאות בכרטיס אשראי כלגיטימיות או הונאה.

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

  1. בחר את הדגם הטוב ביותר ובחר מודל פריסה.

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

  1. בחר בצע תחזיות בזמן אמת.

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

בואו נשיק מחברת Python כדי להשתמש בנקודת הסיום.

  1. במסוף SageMaker Studio, בחר את סמל התיקיה בחלונית הניווט ובחר צור מחברת.
  2. השתמש בקוד Python הבא כדי להפעיל את נקודת הקצה שנפרסה בזמן אמת:
    # Library imports
    import os
    import io
    import boto3
    import json
    import csv #: Define the endpoint's name.
    ENDPOINT_NAME = 'SnowFlake-FraudDetection' # replace the endpoint name as per your config
    runtime = boto3.client('runtime.sagemaker') #: Define a test payload to send to your endpoint.
    payload = { "body": { "TIME": 152895, "V1": 2.021155535, "V2": 0.05372872624, "V3": -1.620399104, "V4": 0.3530165253, "V5": 0.3048483853, "V6": -0.6850955461, "V7": 0.02483335885, "V8": -0.05101346021, "V9": 0.3550896835, "V10": -0.1830053153, "V11": 1.148091498, "V12": 0.4283365505, "V13": -0.9347237892, "V14": -0.4615291327, "V15": -0.4124343184, "V16": 0.4993445934, "V17": 0.3411548305, "V18": 0.2343833846, "V19": 0.278223588, "V20": -0.2104513475, "V21": -0.3116427235, "V22": -0.8690778214, "V23": 0.3624146958, "V24": 0.6455923598, "V25": -0.3424913329, "V26": 0.1456884618, "V27": -0.07174890419, "V28": -0.040882382, "AMOUNT": 0.27 }
    } #: Submit an API request and capture the response object.
    response = runtime.invoke_endpoint( EndpointName=ENDPOINT_NAME, ContentType='text/csv', Body=str(payload)
    ) #: Print the model endpoint's output.
    print(response['Body'].read().decode()) 

הפלט מציג את התוצאה כ false, מה שמרמז שנתוני התכונה לדוגמה אינם הונאה.

לנקות את

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

סיכום

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

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

נסה את האינטגרציה הישירה החדשה של Snowflake עם SageMaker Data Wrangler היום כדי לבנות בקלות מודלים של ML עם הנתונים שלך באמצעות SageMaker.


על המחברים

הריהראן סורש הוא אדריכל פתרונות בכיר ב-AWS. הוא נלהב מבסיסי נתונים, למידת מכונה ועיצוב פתרונות חדשניים. לפני שהצטרף ל-AWS, הריהראן היה ארכיטקט מוצר, מומחה ליישום בנקאות ליבה ומפתח, ועבד עם ארגוני BFSI במשך יותר מ-11 שנים. מחוץ לטכנולוגיה, הוא נהנה מצנחי רחיפה ורכיבה על אופניים.

Aparajithan Vaidyanathan הוא אדריכל פתרונות ארגוניים ראשיים ב-AWS. הוא תומך בלקוחות ארגוניים במעבר ובמודרניזציה של עומסי העבודה שלהם בענן AWS. הוא אדריכל ענן עם 23+ שנות ניסיון בתכנון ופיתוח מערכות תוכנה ארגוניות, בקנה מידה גדול ומבוזר. הוא מתמחה בלמידת מכונה וניתוח נתונים עם התמקדות בתחום הנדסת נתונים ותכונות. הוא רץ מרתון שואף ותחביביו כוללים טיולים רגליים, רכיבה על אופניים ובילוי עם אשתו ושני בנים.

טים סונג הוא מהנדס פיתוח תוכנה ב-AWS SageMaker, עם 10+ שנות ניסיון כמפתח תוכנה, יועץ ומוביל טכנולוגיה, הוא הוכיח יכולת לספק מוצרים ניתנים להרחבה ואמינים ולפתור בעיות מורכבות. בזמנו הפנוי הוא נהנה מהטבע, ריצה בחוץ, טיולים וכו'.

בוסקו אלבוקרקי הוא Sr. Partner Solutions Architect ב-AWS ובעל ניסיון של למעלה מ-20 שנה בעבודה עם מוצרי מסדי נתונים וניתוח של ספקי מסדי נתונים ארגוניים וספקי ענן. הוא עזר לחברות טכנולוגיה גדולות לתכנן פתרונות ניתוח נתונים והוביל צוותי הנדסה בתכנון והטמעה של פלטפורמות ניתוח נתונים ומוצרי נתונים.

ספוט_ימג

המודיעין האחרון

ספוט_ימג