עיצוב דפוסי הסקה סדרתית על Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

עיצוב דפוסי הסקה סדרתית באמזון SageMaker

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

בנוסף, צינורות הסקה סדרתיים אלה צריכים לספק את הדברים הבאים:

  • יישום גמיש ומותאם אישית (תלות, אלגוריתמים, לוגיקה עסקית וכן הלאה)
  • ניתן לחזור על עצמו ועקבי ליישום ייצור
  • הרמה כבדה ללא הבחנה על ידי מזעור ניהול התשתיות

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

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

השתמש מקרה תיאור מקרה שימוש שיקולים ראשוניים מורכבות יישום כוללת אפשרויות יישום מומלצות חפצי קוד לדוגמה ומחברות
צינור היסק סדרתי (כולל שלבי עיבוד מקדים ואחרי עיבוד) צינור ההסקה צריך לעבד מראש נתונים נכנסים לפני הפעלת מודל מאומן להפקת מסקנות, ולאחר מכן מסקנות שנוצרו לאחר עיבוד, כך שניתן יהיה לצרוך אותן בקלות על ידי יישומים במורד הזרם קלות ביצוע נמוך מיכל מסקנות באמצעות ערכת הכלים של SageMaker Inference פרוס מודל PyTorch מאומן
צינור היסק סדרתי (כולל שלבי עיבוד מקדים ואחרי עיבוד) צינור ההסקה צריך לעבד מראש נתונים נכנסים לפני הפעלת מודל מאומן להפקת מסקנות, ולאחר מכן מסקנות שנוצרו לאחר עיבוד, כך שניתן יהיה לצרוך אותן בקלות על ידי יישומים במורד הזרם ניתוק, פריסה פשוטה ושדרוגים בינוני צינור מסקנות של SageMaker Inference Pipeline עם מיכלים מותאמים אישית ו-xgBoost
אנסמבל דגם סדרתי צינור ההסקה צריך לארח ולסדר דגמים מרובים ברצף, כך שכל מודל משפר את ההסקה שנוצרה על ידי הקודם, לפני יצירת ההסקה הסופית ניתוק, פריסה ושדרוגים מפושטים, גמישות בבחירת מסגרת מודל בינוני צינור מסקנות של SageMaker צינור היסק עם Scikit-learn ולומד לינארי
צינור מסקנות סדרתי (עם הפעלת מודל ממוקד מקבוצה) צינור ההסקה צריך להפעיל מודל מותאם אישית ספציפי מקבוצה של מודלים פרוסים, בהתבסס על מאפייני הבקשה או לצורך ייעול עלויות, בנוסף למשימות עיבוד מקדים ואחרי עיבוד ייעול עלות והתאמה אישית גָבוֹהַ צינור מסקנות של SageMaker עם נקודות קצה מרובות דגמים (MME) Amazon SageMaker Multi-Model Points באמצעות Linear Learner

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

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

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

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

SageMaker MMS מצפה לסקריפט של Python שמיישם את הפונקציות הבאות כדי לטעון את המודל, לעבד מראש נתוני קלט, לקבל תחזיות מהמודל ולעבד לאחר עיבוד נתוני הפלט:

  • input_fn () - אחראי על דה-סריאליזציה ועיבוד מקדים של נתוני הקלט
  • model_fn () - אחראי על טעינת הדגם המאומן מחפצים פנימה שירות אחסון פשוט של אמזון (אמזון S3)
  • לחזות_בן () – אחראי להפקת מסקנות מהמודל
  • output_fn () - אחראי על סידור ועיבוד שלאחר מכן של נתוני הפלט (הסקות)

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

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

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

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

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

צינור מסקנות סדרתי באמצעות צינור מסקנות של SageMaker

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

  • צימוד - לשלבים שונים של הצינור יש מטרה מוגדרת בבירור וצריך להפעיל אותם על מכולות נפרדות בשל התלות הבסיסית הכרוכה בכך. זה גם עוזר לשמור על מבנה הצינור בצורה טובה.
  • מובילות – שלבים שונים של הצינור משתמשים במסגרות ספציפיות המתאימות למטרה (כגון skikit או Spark ML) ולכן צריך להפעיל אותם על מכולות נפרדות.
  • בידוד משאבים - שלבים שונים בצינור יש דרישות צריכת משאבים משתנות ולכן יש להפעיל אותם על מכולות נפרדות ליותר גמישות ובקרה.

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

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

ml9154-inference-pipeline

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

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

אנו מתחילים בבנייה וציון מודלים מבוססי Spark ML ו-XGBoost שבהם אנו מתכוונים להשתמש כחלק מהצינור:

from sagemaker.model import Model
from sagemaker.pipeline_model import PipelineModel
from sagemaker.sparkml.model import SparkMLModel
sparkml_data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz')
sparkml_model = SparkMLModel(model_data=sparkml_data)
xgb_model = Model(model_data=xgb_model.model_data, image=training_image)

המודלים מסודרים לאחר מכן ברצף בתוך הגדרת מודל הצינור:

model_name = 'serial-inference-' + timestamp_prefix
endpoint_name = 'serial-inference-ep-' + timestamp_prefix
sm_model = PipelineModel(name=model_name, role=role, models=[sparkml_model, xgb_model])

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

sm_model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name=endpoint_name)

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

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

אנסמבל מודלים סדרתי באמצעות צינור מסקנות של SageMaker

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

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

  • הדגם 1 - מקבל תמונה כקלט ומעריך את איכות התמונה בהתבסס על רזולוציית תמונה, כיוון ועוד. לאחר מכן מודל זה מנסה לשדרג את איכות התמונה ושולח את התמונות המעובדות העומדות בסף איכות מסוים לדגם הבא (דגם 2).
  • הדגם 2 - מקבל תמונות מאומתות דרך דגם 1 ומבצע זיהוי תמונה לזהות אובייקטים, מקומות, אנשים, טקסט ופעולות ומושגים מותאמים אישית אחרים בתמונות. הפלט מדגם 2 שמכיל אובייקטים מזוהים נשלח לדגם 3.
  • הדגם 3 - מקבל את הפלט מדגם 2 ומבצע משימות עיבוד שפה טבעית (NLP) כגון דוגמנות נושאים לקיבוץ תמונות יחד על סמך נושאים. לדוגמה, תמונות יכולות להיות מקובצות לפי מיקום או אנשים שזוהו. הפלט (קיבוץ) נשלח בחזרה ליישום הלקוח.

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

ml9154-מודל-אנסמבל

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

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

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

צינור היסק סדרתי (עם הפעלת מודל ממוקד מקבוצה) באמצעות צינור מסקנות של SageMaker

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

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

ml9154-mme

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

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

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

אפשרויות אירוח בצנרת

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

כעת אתה יכול להשתמש ב-NVIDIA Triton Inference Server כדי להגיש מודלים להסקת מסקנות על SageMaker עבור דרישות מחשוב הטרוגניות. לבדוק פרוס AI מהיר וניתן להרחבה עם NVIDIA Triton Inference Server ב-Amazon SageMaker לפרטים נוספים.

סיכום

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

אנו מצפים לשמוע ממך על אילו מקרי שימוש אתה בונה באמצעות צינורות היסק סדרתי. אם יש לך שאלות או משוב, אנא שתף ​​אותם בתגובות.


על המחברים

עיצוב דפוסי הסקה סדרתית על Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי. רחול שרמה הוא ארכיטקט פתרונות בכיר במעבדת הנתונים של AWS, המסייע ללקוחות AWS לתכנן ולבנות פתרונות AI/ML. לפני הצטרפותו ל-AWS, Rahul בילה מספר שנים במגזר הפיננסים והביטוח, וסייעה ללקוחות לבנות נתונים ופלטפורמות אנליטיות.

עיצוב דפוסי הסקה סדרתית על Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי. אנאנד פראקש הוא ארכיטקט פתרונות בכיר במעבדת הנתונים של AWS. אנאנד מתמקדת בסיוע ללקוחות לעצב ולבנות AI/ML, ניתוח נתונים ומסד נתונים כדי להאיץ את דרכם לייצור.

עיצוב דפוסי הסקה סדרתית על Amazon SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי. דוואל פאטל הוא אדריכל ראשי למידת מכונה ב-AWS. הוא עבד עם ארגונים החל מארגונים גדולים ועד סטארט-אפים בינוניים על בעיות הקשורות למחשוב מבוזר ובינה מלאכותית. הוא מתמקד בלמידה עמוקה כולל תחומי NLP ו-Computer Vision. הוא עוזר ללקוחות להשיג מסקנות מודל עם ביצועים גבוהים על SageMaker.

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

בול זמן:

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