אחד הדגמים הפופולריים ביותר שקיימים כיום הוא XGBoost. עם היכולת לפתור בעיות שונות כמו סיווג ורגרסיה, XGBoost הפכה לאופציה פופולרית שנכנסת גם לקטגוריה של מודלים מבוססי עצים. בפוסט הזה, אנחנו צוללים לעומק כדי לראות איך אמזון SageMaker יכול לשרת מודלים אלה באמצעות NVIDIA Triton Inference Server. לעומסי עבודה בזמן אמת יכולים להיות רמות שונות של דרישות והסכמי רמת שירות (SLAs) במונחים של חביון ותפוקה, וניתן לעמוד בהם באמצעות נקודות קצה של SageMaker בזמן אמת.
SageMaker מספק נקודות קצה של מודל יחיד, המאפשרים לך לפרוס מודל למידת מכונה בודדת (ML) מול נקודת קצה לוגית. עבור מקרי שימוש אחרים, אתה יכול לבחור לנהל עלויות וביצועים באמצעות נקודות קצה מרובות-מודלים, המאפשרים לך לציין מספר דגמים לארח מאחורי נקודת קצה לוגית. ללא קשר לאופציה שבה תבחרו, נקודות הקצה של SageMaker מאפשרות מנגנון ניתן להרחבה גם ללקוחות הארגוניים התובעניים ביותר תוך מתן ערך בשפע של תכונות, כולל גרסאות צל, קנה מידה אוטומטי, ושילוב ילידים עם אמזון CloudWatch (למידע נוסף, עיין ב מדדי CloudWatch עבור פריסות נקודות קצה מרובות).
Triton תומך ב-backends שונים כמנועים לתמיכה בהפעלה והגשה של דגמי ML שונים להסקת מסקנות. עבור כל פריסה של Triton, חיוני לדעת כיצד התנהגות הקצה האחורי משפיעה על עומסי העבודה שלך ולמה לצפות כדי שתוכל להצליח. בפוסט זה, אנו עוזרים לך להבין את Backend של ספריית מסקנות יער (FIL)., אשר נתמך על ידי Triton ב- SageMaker, כך שתוכל לקבל החלטה מושכלת עבור עומסי העבודה שלך ולקבל את הביצועים הטובים ביותר ואופטימיזציית העלויות האפשרית.
צלילה עמוקה לתוך הקצה האחורי של FIL
טריטון תומך ב FIL אחורי לשרת דגמי עצים, כגון XGBoost, LightGBM, סקיקיט-לימוד יער אקראי, RAPIDS cuML יער אקראי, וכל דגם אחר שנתמך על ידי טרילייט. מודלים אלה שימשו זמן רב לפתרון בעיות כגון סיווג או רגרסיה. למרות שסוגי הדגמים הללו פועלים באופן מסורתי על מעבדים, הפופולריות של מודלים אלה ודרישות ההסקה הובילו לטכניקות שונות להגברת ביצועי ההסקה. הקצה האחורי של FIL משתמש רבות מהטכניקות הללו על ידי שימוש בבניית cuML והוא בנוי על C++ וספריית הליבה של CUDA כדי לייעל את ביצועי ההסקה על מאיצי GPU.
הקצה האחורי של FIL משתמש בספריות של cuML כדי להשתמש בליבות CPU או GPU כדי להאיץ את הלמידה. על מנת להשתמש במעבדים אלה, יש הפניה לנתונים מזיכרון המארח (לדוגמה, מערכי NumPy) או מערכי GPU (uDF, Numba, cuPY, או כל ספרייה שתומכת ב- __cuda_array_interface__
) API. לאחר שהנתונים מבוימים בזיכרון, הקצה האחורי של FIL יכול להריץ עיבוד על פני כל ליבות ה-CPU או ה-GPU הזמינות.
השרשורים האחוריים של FIL יכולים לתקשר זה עם זה מבלי להשתמש בזיכרון משותף של המארח, אך בעומסי עבודה של אנסמבל, יש לקחת בחשבון את זיכרון המארח. התרשים הבא מציג ארכיטקטורת זמן ריצה של מתזמן אנסמבל שבה יש לך את היכולת לכוונן עדין את אזורי הזיכרון, כולל זיכרון משותף הניתן להתייחסות CPU המשמש לתקשורת בין תהליכים בין Triton (C++) לתהליך Python (Python backend) להחלפה טנסורים (קלט/פלט) עם ה-FIL backend.
Triton Inference Server מספק אפשרויות הניתנות להגדרה עבור מפתחים כדי לכוון את עומסי העבודה שלהם ולמטב את ביצועי המודל. התצורה dynamic_batching
מאפשר ל-Triton להחזיק בקשות מצד הלקוח ולצרף אותן באצווה בצד השרת על מנת להשתמש ביעילות בחישוב המקביל של FIL כדי להסיק את כל האצווה יחד. האפשרות max_queue_delay_microseconds
מציע שליטה בטוחה בכשל של כמה זמן טריטון ממתין ליצירת אצווה.
ישנם מספר FIL ספציפיים אחרים אפשרויות זמינות שמשפיעים על ביצועים והתנהגות. אנו מציעים להתחיל עם storage_type
. בעת הפעלת הקצה האחורי ב-GPU, FIL יוצר מבנה זיכרון/נתונים חדש המהווה ייצוג של העץ שעבורו FIL יכול להשפיע על הביצועים וטביעת הרגל. זה ניתן להגדרה באמצעות פרמטר הסביבה storage_type
, בעל האפשרויות צפוף, דלילה ואוטומטי. בחירה באפשרות הצפופה תצרוך יותר זיכרון GPU ולא תמיד תביא לביצועים טובים יותר, אז עדיף לבדוק. לעומת זאת, האפשרות הדלילה תצרוך פחות זיכרון GPU וייתכן שתתפקד טוב או טוב יותר מאשר צפוף. בחירה אוטומטית תגרום לדגם כברירת מחדל לצפוף, אלא אם כן הדבר יצרוך משמעותית יותר זיכרון GPU מאשר דל.
כשזה מגיע לביצועי הדגם, כדאי לשקול להדגיש את threads_per_tree
אוֹפְּצִיָה. דבר אחד שאתה עלול להרבות בו בתרחישים בעולם האמיתי הוא זה threads_per_tree
יכולה להיות השפעה גדולה יותר על התפוקה מכל פרמטר אחר. הגדרה של כל חזקה של 2 מ-1-32 היא לגיטימית. קשה לחזות את הערך האופטימלי עבור פרמטר זה, אך כאשר השרת צפוי להתמודד עם עומס גבוה יותר או לעבד גדלי אצווה גדולים יותר, הוא נוטה להפיק תועלת מערך גדול יותר מאשר כאשר הוא מעבד כמה שורות בכל פעם.
פרמטר נוסף שכדאי להיות מודע אליו הוא algo
, שזמין גם אם אתה פועל על GPU. פרמטר זה קובע את האלגוריתם המשמש לעיבוד בקשות ההסקה. האפשרויות הנתמכות לכך הן ALGO_AUTO
, NAIVE
, TREE_REORG
, ו BATCH_TREE_REORG
. אפשרויות אלה קובעות כיצד צמתים בתוך עץ מאורגנים ויכולות גם לגרום לשיפורי ביצועים. ה ALGO_AUTO
אפשרות ברירת מחדל ל NAIVE
לאחסון דליל ו BATCH_TREE_REORG
לאחסון צפוף.
לבסוף, FIL מגיע עם Shapley explainer, אותו ניתן להפעיל באמצעות treeshap_output
פָּרָמֶטֶר. עם זאת, עליך לזכור שתפוקות Shapley פוגעות בביצועים בשל גודל הפלט שלה.
פורמט דגם
כרגע אין פורמט קובץ סטנדרטי לאחסון מודלים מבוססי יער; כל מסגרת נוטה להגדיר את הפורמט שלה. על מנת לתמוך במספר פורמטים של קבצי קלט, FIL מייבא נתונים באמצעות קוד פתוח טרילייט סִפְרִיָה. זה מאפשר ל-FIL לתמוך במודלים שהוכשרו במסגרות פופולריות, כגון XGBoost ו LightGBM. שים לב שהפורמט של הדגם שאתה מספק חייב להיות מוגדר ב- model_type
ערך התצורה שצוין ב- config.pbtxt
קובץ.
Config.pbtxt
כל דגם ב-a מאגר דגמים חייב לכלול תצורת דגם המספקת את המידע הנדרש והאופציונלי על הדגם. בדרך כלל, תצורה זו מסופקת ב-a config.pbtxt
הקובץ שצוין כ ModelConfig protobuf. למידע נוסף על הגדרות התצורה, עיין ב תצורת דגמים. להלן כמה מפרמטרי תצורת הדגם:
- מקסימום_גודל_אצווה - זה קובע את גודל האצווה המרבי שניתן להעביר לדגם זה. באופן כללי, המגבלה היחידה על גודל האצוות המועברות ל-FIL backend היא הזיכרון הזמין שבאמצעותו ניתן לעבד אותן. עבור ריצות GPU, הזיכרון הזמין נקבע לפי גודל מאגר הזיכרון CUDA של טריטון, אותו ניתן להגדיר באמצעות ארגומנט שורת פקודה בעת הפעלת השרת.
- קלט - האפשרויות בסעיף זה אומרות לטריטון את מספר התכונות הצפוי עבור כל דגימת קלט.
- תפוקה – האפשרויות בסעיף זה אומרות לטריטון כמה ערכי פלט יהיו עבור כל דגימה. אם ה
predict_proba
האפשרות מוגדרת כ-true, ואז יוחזר ערך הסתברות עבור כל מחלקה. אחרת, יוחזר ערך בודד, המציין את המחלקה החזויה עבור המדגם הנתון. - instance_group - זה קובע כמה מופעים של מודל זה ייווצרו והאם הם ישתמשו ב-GPU או ב-CPU.
- model_type – מחרוזת זו מציינת באיזה פורמט נמצא הדגם (
xgboost_json
בדוגמה זו, אבלxgboost
,lightgbm
, וtl_checkpoint
הם גם פורמטים חוקיים). - predict_proba - אם מוגדר כ-true, ערכי הסתברות יוחזרו עבור כל מחלקה ולא רק חיזוי מחלקה.
- פלט_class - זה מוגדר כ-true עבור מודלים של סיווג ו-false עבור מודלים של רגרסיה.
- סף – זהו סף ניקוד לקביעת סיווג. מתי
output_class
מוגדר כ-true, יש לספק את זה, אם כי הוא לא ישמש אםpredict_proba
מוגדר גם כאמת. - סוג אחסון - באופן כללי, שימוש ב-AUTO עבור הגדרה זו אמור לענות על רוב מקרי השימוש. אם נבחר אחסון אוטומטי, FIL יטען את הדגם באמצעות ייצוג דליל או צפוף על סמך הגודל המשוער של הדגם. במקרים מסוימים, ייתכן שתרצה להגדיר זאת באופן מפורש ל-SPARSE כדי להפחית את טביעת הזיכרון של דגמים גדולים.
Triton Inference Server ב- SageMaker
SageMaker מאפשר לפרוס גם נקודות קצה של דגם יחיד וגם נקודות קצה מרובות עם NVIDIA Triton Inference Server. האיור הבא מציג את הארכיטקטורה ברמה גבוהה של Triton Inference Server. ה מאגר דגמים הוא מאגר מבוסס מערכת קבצים של המודלים שטריטון יהפוך לזמינים להסקת מסקנות. בקשות להסיק מגיעות לשרת ומנותבות למתזמן המתאים לכל דגם. טריטון מיישם אלגוריתמים מרובים של תזמון ואצווה שניתן להגדיר על בסיס דגם אחר דגם. מתזמן של כל דגם מבצע אופציונלי אצווה של בקשות הסקת מסקנות ולאחר מכן מעביר את הבקשות ל- Backend מתאים לסוג הדגם. הקצה האחורי מבצע הסקת מסקנות באמצעות התשומות שסופקו בבקשות המצורפות כדי לייצר את הפלטים המבוקשים. לאחר מכן היציאות מוחזרות.
בעת הגדרת קבוצות קנה המידה האוטומטי שלך עבור נקודות קצה של SageMaker, ייתכן שתרצה לשקול SageMakerVariantInvocationsPerInstance
כקריטריונים העיקריים לקביעת מאפייני קנה המידה של קבוצת קנה המידה האוטומטי שלך. בנוסף, תלוי אם הדגמים שלך פועלים על GPU או CPU, ייתכן שתשקול להשתמש ב-CPUUtilization או GPUUtilization כקריטריונים נוספים. שים לב שעבור נקודות קצה של מודל בודד, מכיוון שהמודלים שנפרסו זהים, זה די פשוט לקבוע מדיניות מתאימה כדי לעמוד ב-SLA שלך. עבור נקודות קצה מרובות, אנו ממליצים לפרוס מודלים דומים מאחורי נקודת קצה נתונה כדי לקבל ביצועים צפויים יציבים יותר. במקרים של שימוש בהם נעשה שימוש בדגמים בגדלים ובדרישות שונות, ייתכן שתרצה להפריד את עומסי העבודה הללו על פני מספר נקודות קצה מרובות דגמים או להקדיש זמן מה לכוונון עדין של מדיניות קבוצת קנה המידה האוטומטית שלך כדי להשיג את האיזון הטוב ביותר בין עלות וביצועים.
לרשימה של מיכלי למידה עמוקה של NVIDIA Triton (DLC) הנתמכים על ידי מסקנות של SageMaker, עיין ב תמונות מכולות זמינות למידה עמוקה.
הדרכה למחברת SageMaker
יישומי ML הם מורכבים ולעתים קרובות עשויים לדרוש עיבוד מוקדם של נתונים. במחברת זו, אנו צוללים כיצד לפרוס מודל ML מבוסס עצים כמו XGBoost באמצעות ה-FIL backend ב-Triton על נקודת קצה מרובה של SageMaker. אנו גם מכסים כיצד ליישם צינור מסקנות לעיבוד מוקדם של נתונים מבוסס Python עבור המודל שלך באמצעות תכונת האנסמבל ב-Triton. זה יאפשר לנו לשלוח את הנתונים הגולמיים מצד הלקוח ולבצע גם עיבוד מקדים של נתונים וגם הסקת מודל בנקודת קצה של Triton SageMaker לביצועי הסקה מיטביים.
תכונת אנסמבל דגם טריטון
Triton Inference Server מפשט מאוד את הפריסה של דגמי AI בקנה מידה בייצור. Triton Inference Server מגיע עם פתרון נוח המפשט בניית צינורות קדם-עיבוד ואחרי-עיבוד. פלטפורמת Triton Inference Server מספקת את מתזמן האנסמבל, האחראי על העברת מודלים המשתתפים בתהליך ההסקה תוך הבטחת יעילות ואופטימיזציה של התפוקה. שימוש במודלים של אנסמבל יכול למנוע את התקורה של העברת טנסור ביניים ולמזער את מספר הבקשות שיש לשלוח לטריטון.
במחברת זו, אנו מראים כיצד להשתמש בתכונת האנסמבל לבניית צינור של עיבוד מקדים של נתונים עם מסקנות מודל XGBoost, ותוכלו לבצע אקסטרפולציה ממנה כדי להוסיף עיבוד מותאם אישית לצינור.
הגדר את הסביבה
אנו מתחילים בהגדרת הסביבה הנדרשת. אנו מתקינים את התלות הנדרשות כדי לארוז את צינור המודלים שלנו ולהפעיל מסקנות באמצעות Triton Inference Server. אנחנו גם מגדירים את AWS זהות וניהול גישה תפקיד (IAM) שיעניק ל-SageMaker גישה לחפצי הדגם ול-NVIDIA Triton מרשם מיכל אלסטי של אמזון תמונה (Amazon ECR). ראה את הקוד הבא:
צור סביבת Conda לעיבוד מקדים של תלות
ה-Python backend ב-Triton מחייב אותנו להשתמש ב-a קונדה סביבה לכל תלות נוספת. במקרה זה, אנו משתמשים ב-Python backend כדי לעבד מראש את הנתונים הגולמיים לפני הזנתם למודל XGBoost שפועל ב-FIL backend. למרות שבמקור השתמשנו ב-RAPIDS cuDF ו-cuML כדי לבצע את עיבוד הנתונים המקדים, כאן אנו משתמשים ב-Pandas וב-skit-learn כתלות בעיבוד מקדים במהלך ההסקה. אנו עושים זאת משלוש סיבות:
- אנו מראים כיצד ליצור סביבת Conda עבור התלות שלך וכיצד לארוז אותה ב- פורמט צפוי על ידי ה-Python Backend של Triton.
- על ידי הצגת מודל העיבוד המקדים הפועל ב-Python backend על ה-CPU בעוד ה-XGBoost פועל על ה-GPU ב-FIL backend, אנו ממחישים כיצד כל דגם בצינור האנסמבל של Triton יכול לרוץ על Backend של מסגרת שונה כמו גם תצורות חומרה שונות.
- זה מדגיש כיצד ספריות RAPIDS (cuDF, cuML) תואמות למקבילות המעבד שלהן (Pandas, scikit-learn). לדוגמה, אנחנו יכולים להראות איך
LabelEncoders
נוצר ב-cuML ניתן להשתמש ב-skit-learn ולהיפך.
אנו עוקבים אחר ההוראות מ- תיעוד טריטון עבור תלות עיבוד מקדים לאריזה (scikit-learn ו-Pandas) לשימוש ב-Python backend כקובץ TAR של סביבת Conda. תסריט הבאש create_prep_env.sh יוצר את קובץ TAR של סביבת Conda, ואז נעביר אותו לספריית מודל העיבוד המקדים. ראה את הקוד הבא:
לאחר שנפעיל את הסקריפט הקודם, הוא יוצר preprocessing_env.tar.gz
, שאנו מעתיקים לספריית העיבוד המקדים:
הגדר עיבוד מקדים עם הקצה האחורי של Triton Python
לעיבוד מקדים, אנו משתמשים בטריטון קצה אחורי של פייתון לבצע עיבוד מקדים של נתונים טבלאיים (קידוד קטגורי) במהלך הסקה לבקשות נתונים גולמיים המגיעים לשרת. למידע נוסף על העיבוד המקדים שנעשה במהלך האימון, עיין ב- מחברת הדרכה.
הקצה האחורי של Python מאפשר ליישם ב-Python עיבוד מקדים, שלאחר עיבוד וכל היגיון מותאם אישית אחר ולהגיש עם Triton. השימוש ב-Triton ב- SageMaker מחייב אותנו להגדיר תחילה תיקיית מאגר מודלים המכילה את הדגמים שאנו רוצים לשרת. כבר הקמנו מודל לעיבוד מקדים של נתוני Python שנקרא preprocessing in cpu_model_repository
ו gpu_model_repository
.
לטריטון יש דרישות ספציפיות לפריסת מאגר המודלים. בתוך ספריית מאגר המודלים ברמה העליונה, לכל דגם יש ספריית משנה משלו המכילה את המידע עבור המודל המתאים. לכל ספריית מודל בטריטון חייבת להיות לפחות ספריית משנה מספרית אחת המייצגת גרסה של המודל. הערך 1 מייצג את גרסה 1 של מודל העיבוד המקדים של Python שלנו. כל מודל מנוהל על ידי קצה אחורי מסוים, כך שבתוך כל ספריית משנה של גרסה חייב להיות חפץ המודל הנדרש על ידי אותו קצה. עבור דוגמה זו, אנו משתמשים ב-Python backend, שדורש שקובץ Python שאתה מגיש ייקרא model.py, והקובץ צריך ליישם פונקציות מסוימות. אם היינו משתמשים ב-PyTorch backend, יידרש קובץ model.pt, וכן הלאה. לפרטים נוספים על מוסכמות שמות עבור קובצי מודל, עיין ב קבצי דגם.
השמיים model.py קובץ Python בו אנו משתמשים כאן מיישם את כל ההיגיון של עיבוד מוקדם של נתונים טבלאיים כדי להמיר נתונים גולמיים לתכונות שניתן להזין למודל XGBoost שלנו.
כל דגם של טריטון חייב גם לספק א config.pbtxt
קובץ המתאר את תצורת הדגם. למידע נוסף על הגדרות התצורה, עיין ב תצורת דגמים. שלנו config.pbtxt הקובץ מציין את הקצה האחורי כ-python ואת כל עמודות הקלט עבור נתונים גולמיים יחד עם פלט מעובד מראש, המורכב מ-15 תכונות. אנו גם מציינים שאנו רוצים להפעיל את מודל העיבוד המקדים הזה של Python על המעבד. ראה את הקוד הבא:
הגדר מודל ML מבוסס עץ עבור ה-FIL backend
לאחר מכן, הגדרנו את ספריית המודלים עבור מודל ML מבוסס עצים כמו XGBoost, שישתמש ב-FIL backend.
הפריסה הצפויה עבור cpu_memory_repository
ו gpu_memory_repository
דומים לזה שהצגנו קודם לכן.
כאן, FIL
זה שם הדגם. אנחנו יכולים לתת לזה שם אחר כמו xgboost
אם אנחנו רוצים. 1
היא ספריית המשנה של הגרסה, המכילה את חפץ הדגם. במקרה הזה, זה ה xgboost.json
דגם ששמרנו. בואו ניצור את הפריסה הצפויה הזו:
אנחנו צריכים את קובץ התצורה config.pbtxt
מתאר את תצורת המודל עבור מודל ה-ML מבוסס העצים, כך שה-FIL backend ב-Triton יוכל להבין כיצד לשרת אותו. למידע נוסף, עיין בגרסה הגנרית העדכנית ביותר אפשרויות תצורה של טריטון ואפשרויות התצורה הספציפיות ל- FIL אחורי. אנו מתמקדים רק בכמה מהאפשרויות הנפוצות והרלוונטיות ביותר בדוגמה זו.
צור config.pbtxt
ל model_cpu_repository
:
באופן דומה, הגדר config.pbtxt
ל model_gpu_repository
(שימו לב שההבדל הוא USE_GPU = True
):
הגדר צינור מסקנות של עיבוד מקדים של Python backend ו-FIL backend באמצעות אנסמבלים
כעת אנו מוכנים להגדיר את צינור ההסקה לעיבוד מקדים של נתונים והסקת מודל מבוסס-עץ באמצעות דגם אנסמבל. מודל אנסמבל מייצג צינור של מודל אחד או יותר ואת החיבור של טנסורי קלט ופלט בין מודלים אלה. כאן אנו משתמשים במודל האנסמבל כדי לבנות צינור של עיבוד מוקדם של נתונים ב-Python backend ואחריו XGBoost ב-FIL backend.
הפריסה הצפויה עבור ensemble
ספריית הדגמים דומה לאלו שהצגנו בעבר:
יצרנו את הדגם של האנסמבל config.pbtxt בעקבות ההדרכה ב אנסמבל מודלים. חשוב לציין, עלינו להגדיר את מתזמן האנסמבל ב config.pbtxt
, המציין את זרימת הנתונים בין מודלים בתוך האנסמבל. מתזמן האנסמבל אוסף את טנסור הפלט בכל שלב, ומספק אותם כטנסורי קלט עבור שלבים אחרים בהתאם למפרט.
ארוז את מאגר הדגמים והעלה לאמזון S3
לבסוף, אנו מסיימים עם מבנה ספריות מאגר המודלים הבא, המכיל מודל עיבוד מקדים של Python והתלות שלו יחד עם מודל XGBoost FIL ואנסמבל המודלים.
אנו אורזים את הספרייה ואת התוכן שלה בתור model.tar.gz
להעלאה ל שירות אחסון פשוט של אמזון (אמזון S3). יש לנו שתי אפשרויות בדוגמה זו: שימוש במופע מבוסס CPU או מופע מבוסס GPU. מופע מבוסס GPU מתאים יותר כאשר אתה צריך כוח עיבוד גבוה יותר ומעוניין להשתמש בליבות CUDA.
צור והעלה את חבילת הדגם עבור מופע מבוסס מעבד (מותאם למעבד) עם הקוד הבא:
צור והעלה את חבילת הדגם עבור מופע מבוסס GPU (מותאם ל-GPU) עם הקוד הבא:
צור נקודת קצה של SageMaker
כעת יש לנו את חפצי הדגם המאוחסנים בדלי S3. בשלב זה, נוכל לספק גם את משתנה הסביבה הנוסף SAGEMAKER_TRITON_DEFAULT_MODEL_NAME
, המציין את שם הדגם שיטען על ידי Triton. הערך של מפתח זה צריך להתאים לשם התיקיה בחבילת הדגם שהועלתה לאמזון S3. משתנה זה הוא אופציונלי במקרה של דגם בודד. במקרה של דגמי אנסמבל, יש לציין מפתח זה כדי ש-Triton יתחיל ב- SageMaker.
בנוסף, אתה יכול להגדיר SAGEMAKER_TRITON_BUFFER_MANAGER_THREAD_COUNT
ו SAGEMAKER_TRITON_THREAD_COUNT
לאופטימיזציה של ספירת החוטים.
אנו משתמשים במודל הקודם כדי ליצור תצורת נקודת קצה שבה נוכל לציין את סוג ומספר המופעים שאנו רוצים בנקודת הקצה
אנו משתמשים בתצורת נקודת הקצה הזו כדי ליצור נקודת קצה של SageMaker ומחכים לסיום הפריסה. עם MMEs של SageMaker, יש לנו אפשרות לארח דגמי אנסמבל מרובים על ידי חזרה על התהליך הזה, אבל אנחנו נשארים עם פריסה אחת עבור הדוגמה הזו:
הסטטוס ישתנה ל InService
כאשר הפריסה מוצלחת.
הפעל את הדגם שלך שמתארח בנקודת הקצה של SageMaker
לאחר הפעלת נקודת הקצה, נוכל להשתמש בכמה נתונים גולמיים לדוגמה כדי לבצע הסקה באמצעות JSON כפורמט המטען. עבור פורמט בקשת ההסקה, טריטון משתמש ב- KFServing
תקן קהילתי פרוטוקולי מסקנות. ראה את הקוד הבא:
את המחברת המוזכרת בבלוג ניתן למצוא ב- מאגר GitHub.
שיטות עבודה מומלצות
בנוסף לאפשרויות לכוונון עדין של ההגדרות של ה-FIL backend שהזכרנו קודם לכן, מדעני נתונים יכולים גם להבטיח שנתוני הקלט עבור ה-backend מותאמים לעיבוד על ידי המנוע. במידת האפשר, הזן נתונים בפורמט של שורה עיקרית למערך ה-GPU. פורמטים אחרים ידרשו המרה פנימית ותפוס מחזורים, ויפחיתו את הביצועים.
בשל האופן שבו מבני נתונים של FIL נשמרים בזיכרון GPU, שימו לב לעומק העץ. ככל שעומק העץ יהיה עמוק יותר, כך טביעת הרגל של זיכרון ה-GPU שלך תהיה גדולה יותר.
השתמש instance_group_count
פרמטר כדי להוסיף תהליכי עבודה ולהגדיל את התפוקה של ה-FIL backend, מה שיגרום לצריכת זיכרון CPU ו-GPU גדולה יותר. בנוסף, שקול משתנים ספציפיים ל-SageMaker הזמינים להגדלת התפוקה, כגון פתילי HTTP, גודל מאגר HTTP, גודל אצווה והשהייה מקסימלית.
סיכום
בפוסט הזה, צללנו עמוק לתוך הקצה האחורי של FIL ש-Triton Inference Server תומך ב- SageMaker. הקצה האחורי הזה מספק האצת מעבד ו-GPU כאחד של הדגמים מבוססי העצים שלך, כמו אלגוריתם XGBoost הפופולרי. ישנן אפשרויות רבות לשקול כדי לקבל את הביצועים הטובים ביותר להסקת מסקנות, כגון גדלי אצווה, פורמטים של קלט נתונים וגורמים אחרים שניתן לכוון כדי לענות על הצרכים שלך. SageMaker מאפשר לך להשתמש ביכולת זו עם נקודות קצה בודדות ומרובות דגמים כדי לאזן בין ביצועים וחיסכון בעלויות.
אנו ממליצים לך לקחת את המידע בפוסט זה ולראות אם SageMaker יכול לענות על צורכי האירוח שלך כדי לשרת מודלים מבוססי עצים, לעמוד בדרישות שלך להפחתת עלויות וביצועי עומס עבודה.
את המחברת שאליו מתייחסים בפוסט זה ניתן למצוא בדוגמאות של SageMaker מאגר GitHub. יתר על כן, אתה יכול למצוא את התיעוד העדכני ביותר ב-FIL backend on GitHub.
על הכותבים
ראגו רמשה הוא אדריכל בכיר ML Solutions בצוות Amazon SageMaker Service. הוא מתמקד בסיוע ללקוחות לבנות, לפרוס ולהעביר עומסי עבודה של ייצור ML ל-SageMaker בקנה מידה. הוא מתמחה בתחומי למידת מכונה, בינה מלאכותית וראייה ממוחשבת, ובעל תואר שני במדעי המחשב מאוניברסיטת דאלאס. בזמנו הפנוי הוא אוהב לטייל ולצלם.
פארק ג'יימס הוא אדריכל פתרונות בשירותי האינטרנט של אמזון. הוא עובד עם Amazon.com כדי לתכנן, לבנות ולפרוס פתרונות טכנולוגיים ב-AWS, ויש לו עניין מיוחד בבינה מלאכותית ולמידת מכונה. בזמנו הפנוי הוא נהנה לחפש תרבויות חדשות, חוויות חדשות ולהישאר מעודכן בטרנדים הטכנולוגיים העדכניים ביותר.
דוואל פאטל הוא אדריכל ראשי למידת מכונה ב-AWS. הוא עבד עם ארגונים החל מארגונים גדולים ועד סטארט-אפים בינוניים בבעיות הקשורות למחשוב מבוזר ובינה מלאכותית. הוא מתמקד בלמידה עמוקה, כולל NLP ותחומי ראייה ממוחשבת. הוא עוזר ללקוחות להגיע להסקת מודלים בעלי ביצועים גבוהים באמזון SageMaker.
ג'יהונג ליו הוא ארכיטקט פתרונות בצוות ספק שירותי הענן ב-NVIDIA. הוא מסייע ללקוחות באימוץ פתרונות למידת מכונה ו-AI הממנפים את המחשוב המואץ של NVIDIA כדי להתמודד עם אתגרי ההכשרה וההסקות שלהם. בשעות הפנאי שלו הוא נהנה מאוריגמי, פרויקטים של עשה זאת בעצמך ולשחק כדורסל.
קשיטיס גופטה הוא אדריכל פתרונות ב-NVIDIA. הוא נהנה לחנך את לקוחות הענן על טכנולוגיות GPU AI שיש ל-NVIDIA להציע ולסייע להם בהאצת יישומי למידת המכונה ולמידה עמוקה שלהם. מחוץ לעבודה, הוא נהנה לרוץ, לטייל ולצפות בחיות בר.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoAiStream. Web3 Data Intelligence. הידע מוגבר. גישה כאן.
- הטבעת העתיד עם אדריאן אשלי. גישה כאן.
- מקור: https://aws.amazon.com/blogs/machine-learning/hosting-ml-models-on-amazon-sagemaker-using-triton-xgboost-lightgbm-and-treelite-models/
- :יש ל
- :הוא
- :לֹא
- :איפה
- $ למעלה
- 1
- 100
- 11
- 13
- 200
- 23
- 24
- 7
- 8
- 9
- a
- יכולת
- אודות
- להאיץ
- מוּאָץ
- מאיצה
- מאיצים
- גישה
- פי
- לפיכך
- חֶשְׁבּוֹן
- להשיג
- לרוחב
- להוסיף
- תוספת
- נוסף
- כתובת
- ניתן להתייחס אליו
- אימוץ
- לאחר
- נגד
- הסכמים
- AI
- אַלגוֹרִיתְם
- תעשיות
- הקצאות
- להתיר
- מאפשר
- לאורך
- כְּבָר
- גם
- למרות
- תמיד
- אמזון בעברית
- אמזון SageMaker
- אמזון שירותי אינטרנט
- Amazon.com
- כמות
- an
- ו
- כל
- API
- יישומים
- מתאים
- ארכיטקטורה
- ARE
- אזורים
- טענה
- מערך
- מלאכותי
- בינה מלאכותית
- AS
- אסיסטים
- At
- המכונית
- זמין
- לְהִמָנַע
- AWS
- קצה אחורי
- איזון
- מבוסס
- לחבוט
- בסיס
- כדורסל
- BE
- כי
- להיות
- היה
- לפני
- להתחיל
- מאחור
- להלן
- תועלת
- הטוב ביותר
- מוטב
- בֵּין
- גדול
- בלוג
- גוּף
- שניהם
- חיץ
- לִבנוֹת
- בִּניָן
- נבנה
- אבל
- by
- C + +
- נקרא
- CAN
- כרטיס
- מקרה
- מקרים
- קטגוריה
- לגרום
- האתגרים
- שינוי
- מאפיינים
- לבדוק
- שבב
- בחרו
- בחירה
- עִיר
- בכיתה
- מיון
- לקוחות
- לקוחות
- ענן
- קוד
- עמודות
- COM
- מגיע
- מגיע
- Common
- להעביר
- תקשורת
- קהילה
- תואם
- מורכב
- חישוב
- המחשב
- מדעי מחשב
- ראייה ממוחשבת
- מחשוב
- תְצוּרָה
- הקשר
- לשקול
- נחשב
- לצרוך
- צְרִיכָה
- מכולה
- מכולות
- מכיל
- תוכן
- לעומת זאת
- לִשְׁלוֹט
- נוֹחַ
- המרה
- להמיר
- ליבה
- תוֹאֵם
- עלות
- הפחתת עלויות
- חיסכון עלויות
- לכסות
- לִיצוֹר
- נוצר
- יוצר
- הקריטריונים
- מכריע
- כיום
- מנהג
- לקוחות
- מחזורי
- דאלאס
- נתונים
- תַאֲרִיך
- יְוֹם
- עסקה
- החלטה
- עמוק
- למידה עמוקה
- עמוק יותר
- בְּרִירַת מֶחדָל
- מחדל
- תואר
- עיכוב
- תובעני
- דרישות
- תלוי
- לפרוס
- פרס
- פריסה
- פריסה
- עומק
- עיצוב
- פרטים
- לקבוע
- נחוש
- קובע
- קביעה
- מפתחים
- הבדל
- אחר
- מופץ
- מחשוב מבוזר
- DIY
- do
- תיעוד
- לא
- עושה
- תחומים
- עשה
- יונה
- ראוי
- בְּמַהֲלָך
- כל אחד
- מוקדם יותר
- לחנך
- יְעִילוּת
- יעילות
- או
- הדגשת
- מאפשר
- לעודד
- סוף
- נקודת קצה
- מנוע
- מנועים
- לְהַבטִיחַ
- הבטחתי
- מִפְעָל
- חברות
- שלם
- סביבה
- שגיאות
- אֲפִילוּ
- כל
- דוגמה
- דוגמאות
- מחליפים
- לצפות
- צפוי
- חוויות
- יצוא
- גורמים
- למדי
- פולס
- שקר
- מאפיין
- תכונות
- הפד
- האכלה
- מעטים
- תרשים
- שלח
- קבצים
- גימור
- ראשון
- תזרים
- להתמקד
- מתמקד
- לעקוב
- בעקבות
- הבא
- עָקֵב
- בעד
- טופס
- פוּרמָט
- מצא
- מסגרת
- מסגרות
- הונאה
- חופשי
- החל מ-
- יתר על כן
- רווחים
- כללי
- מייצר
- לקבל
- לתת
- נתן
- GPU
- מאוד
- קְבוּצָה
- קבוצה
- הדרכה
- לקרות
- קשה
- חומרה
- יש
- he
- לעזור
- עזרה
- עוזר
- כאן
- ברמה גבוהה
- ביצועים גבוהים
- גבוה יותר
- פסים
- שֶׁלוֹ
- להחזיק
- מחזיק
- המארח
- אירח
- אירוח
- איך
- איך
- אולם
- HTML
- http
- HTTPS
- כאב
- זהות
- מזהה
- IDX
- if
- תמונה
- פְּגִיעָה
- השפעות
- ליישם
- יושם
- מיישמים
- יבוא
- in
- לכלול
- כולל
- להגדיל
- מצביע על
- מידע
- הודעה
- קלט
- להתקין
- למשל
- הוראות
- השתלבות
- מוֹדִיעִין
- אינטרס
- פנימי
- אל תוך
- IT
- שֶׁלָה
- jpg
- ג'סון
- רק
- שמור
- מפתח
- סוג
- לדעת
- גָדוֹל
- מפעלים גדולים
- גדול יותר
- חֶבִיוֹן
- האחרון
- מערך
- לִלמוֹד
- למידה
- הכי פחות
- הוביל
- לגיטימי
- פחות
- רמה
- רמות
- תנופה
- ספריות
- סִפְרִיָה
- כמו
- להגביל
- קו
- רשימה
- לִטעוֹן
- הגיון
- הגיוני
- ארוך
- מכונה
- למידת מכונה
- לעשות
- לנהל
- רב
- מאסטר
- להתאים
- מקסימום
- מקסימום
- מאי..
- מנגנון
- לִפְגוֹשׁ
- מפגש
- זכרון
- מוּזְכָּר
- סוחר
- מדדים
- יכול
- נודד
- אכפת לי
- ML
- מצב
- מודל
- מודלים
- חוֹדֶשׁ
- יותר
- רוב
- הכי פופולארי
- המהלך
- נקודת קצה מרובת דגמים
- מספר
- צריך
- שם
- שמות
- יליד
- צורך
- צרכי
- חדש
- NLP
- לא
- צמתים
- מחברה
- עַכשָׁיו
- מספר
- קהות
- Nvidia
- להשיג
- of
- הַצָעָה
- המיוחדות שלנו
- לעתים קרובות
- on
- ONE
- יחידות
- רק
- קוד פתוח
- אופטימלי
- אופטימיזציה
- מטב
- אופטימיזציה
- מיטוב
- אפשרות
- אפשרויות
- or
- להזמין
- ארגונים
- מאורגן
- בְּמָקוֹר
- OS
- אחר
- אַחֶרֶת
- שלנו
- הַחוּצָה
- תפוקה
- בחוץ
- שֶׁלוֹ
- חבילה
- אריזה
- דובי פנדה
- מקביל
- פרמטר
- פרמטרים
- משתתף
- מסוים
- עבר
- מעברי
- נתיב
- לְבַצֵעַ
- ביצועים
- מבצע
- רשות
- צילום
- צינור
- פלטפורמה
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- משחק
- אנא
- שֶׁפַע
- מדיניות
- מדיניות
- בריכה
- פופולרי
- פופולריות
- אפשרי
- יִתָכֵן
- הודעה
- כּוֹחַ
- לחזות
- צפוי
- חזה
- נבואה
- התחזיות
- קוֹדֶם
- יְסוֹדִי
- מנהל
- בעיות
- תהליך
- תהליכים
- תהליך
- כוח עיבוד
- מעבדים
- לייצר
- הפקה
- פרויקטים
- תָקִין
- הפרוטו
- לספק
- ובלבד
- ספק
- מספק
- מתן
- פיתון
- פיטורך
- אקראי
- טִוּוּחַ
- במקום
- חי
- מוכן
- עולם אמיתי
- זמן אמת
- סיבות
- להמליץ
- להפחית
- מכונה
- ללא קשר
- באזור
- קָשׁוּר
- רלוונטי
- להחליף
- מאגר
- נציגות
- המייצג
- מייצג
- לבקש
- בקשות
- לדרוש
- נדרש
- דרישות
- דורש
- תגובה
- אחראי
- תוצאה
- תוצאות
- תפקיד
- הפעלה
- ריצה
- s
- בעל חכמים
- SageMaker Inference
- אותו
- חיסכון
- להרחבה
- סולם
- דרוג
- תרחישים
- תזמון
- מדע
- מדענים
- סקיקיט-לימוד
- ציון
- סעיף
- לִרְאוֹת
- מחפשים
- נבחר
- לשלוח
- לחצני מצוקה לפנסיונרים
- נפרד
- לשרת
- שרות
- ספק שירות
- שירותים
- הגשה
- סט
- הצבה
- הגדרות
- צוּרָה
- משותף
- צריך
- לְהַצִיג
- הופעות
- צד
- באופן משמעותי
- דומה
- פָּשׁוּט
- יחיד
- מידה
- גדל
- So
- פִּתָרוֹן
- פתרונות
- לפתור
- פותר
- כמה
- מָקוֹר
- מתמחה
- ספציפי
- מפרט
- מפורט
- לבלות
- תֶקֶן
- התחלה
- החל
- חברות סטארט
- מדינה
- מצב
- יציב
- שלב
- צעדים
- אחסון
- חנות
- מאוחסן
- פשוט
- מחרוזת
- מִבְנֶה
- מוצלח
- כזה
- להציע
- מַתְאִים
- תמיכה
- נתמך
- תומך
- לקחת
- נבחרת
- טכניקות
- טכנולוגיות
- טכנולוגיה
- לספר
- מונחים
- מֵאֲשֶׁר
- זֶה
- השמיים
- המידע
- שֶׁלָהֶם
- אותם
- אז
- שם.
- אלה
- הֵם
- דבר
- זֶה
- אלה
- אם כי?
- שְׁלוֹשָׁה
- סף
- תפוקה
- זמן
- ל
- היום
- יַחַד
- הרמה העליונה
- באופן מסורתי
- מְאוּמָן
- הדרכה
- מעביר
- נסיעה
- עץ
- מגמות
- טריטון
- נָכוֹן
- שתיים
- סוג
- סוגים
- בדרך כלל
- להבין
- נטען
- העלאה
- us
- להשתמש
- מְשׁוּמָשׁ
- משתמש
- באמצעות
- מנצל
- ניצול
- ערך
- ערכים
- שונים
- גרסה
- באמצעות
- חזון
- W
- לחכות
- רוצה
- היה
- צופה
- דֶרֶך..
- we
- אינטרנט
- שירותי אינטרנט
- טוֹב
- היו
- מה
- מתי
- בכל פעם
- אם
- אשר
- בזמן
- יצטרך
- עם
- בתוך
- לְלֹא
- תיק עבודות
- עבד
- עובד
- עובד
- היה
- XGBoost
- שנה
- אתה
- זפירנט
- רוכסן