לפעמים זה יכול להיות מאוד מועיל להשתמש בכלים כגון מהדרים שיכולים לשנות ולהדר את המודלים שלך לביצועי הסקה מיטביים. בפוסט זה, אנו חוקרים את TensorRT וכיצד להשתמש בו אמזון SageMaker מסקנות באמצעות NVIDIA Triton Inference Server. אנו חוקרים כיצד TensorRT עובד וכיצד לארח ולייעל מודלים אלה לביצועים ויעילות עלות ב- SageMaker. SageMaker מספקת נקודות קצה של מודל יחיד (עסקים קטנים ובינוניים), המאפשרים לך לפרוס מודל ML יחיד, או נקודות קצה מרובות-מודלים (MMEs), המאפשרים לך לציין מספר דגמים לארח מאחורי נקודת קצה לוגית לניצול גבוה יותר של משאבים.
כדי לשרת דגמים, Triton תומך ב-backends שונים כמנועים לתמיכה בהפעלה והגשה של דגמי ML שונים להסקת מסקנות. עבור כל פריסה של Triton, חיוני לדעת כיצד התנהגות הקצה האחורי משפיעה על עומסי העבודה שלך ולמה לצפות כדי שתוכל להצליח. בפוסט זה, אנו עוזרים לך להבין את TensorRT אחורי שנתמך על ידי Triton ב- SageMaker כך שתוכל לקבל החלטה מושכלת עבור עומסי העבודה שלך ולקבל תוצאות נהדרות.
צלול עמוק לתוך הקצה האחורי של TensorRT
TensorRT מאפשר לך לייעל מסקנות באמצעות טכניקות כגון קוונטיזציה, היתוך שכבות וטנזור, כוונון ליבה ואחרות במעבדי NVIDIA GPU. על ידי אימוץ והידור מודלים לשימוש ב-TensorRT, אתה יכול לייעל את הביצועים והניצול לעומסי העבודה שלך. במקרים מסוימים, יש פשרות, שאופייניות לטכניקות כמו קוונטיזציה, אך התוצאות יכולות להיות דרמטיות בהטבת הביצועים, בהתייחסות ל-latency ומספר העסקאות שניתן לעבד.
הקצה האחורי של TensorRT משמש להפעלת דגמי TensorRT. TensorRT הוא SDK שפותח על ידי NVIDIA המספק ספריית מסקנות למידה עמוקה בעלת ביצועים גבוהים. זה מותאם עבור NVIDIA GPUs ומספק דרך להאיץ מסקנות למידה עמוקות בסביבות ייצור. TensorRT תומכת במסגרות למידה עמוקות עיקריות וכוללת ביצועים גבוהים של אופטימיזציית הסקת למידה עמוקה וזמן ריצה המספקת השהייה נמוכה ותפוקה גבוהה עבור יישומי AI.
TensorRT מסוגלת להאיץ את ביצועי המודל באמצעות טכניקה הנקראת אופטימיזציה של גרפים כדי לייעל את גרף החישוב שנוצר על ידי מודל למידה עמוקה. זה מייעל את הגרף כדי למזער את טביעת הרגל של הזיכרון על ידי שחרור זיכרון מיותר ושימוש חוזר ביעילות בו. הידור TensorRT ממזג את הפעולות הדלילות בתוך גרף המודל ליצירת ליבה גדולה יותר כדי למנוע את התקורה של השקות ליבה קטנות מרובות. עם כוונון אוטומטי של ליבה, המנוע בוחר את האלגוריתם הטוב ביותר עבור GPU היעד, תוך ניצול מירבי של החומרה. בנוסף, TensorRT משתמשת בזרמי CUDA כדי לאפשר עיבוד מקביל של דגמים, ולשפר עוד יותר את הניצול והביצועים של GPU. לבסוף, באמצעות קוונטיזציה, TensorRT יכולה להשתמש בהאצה בעלת דיוק מעורב של ליבות Tensor, מה שמאפשר למודל לפעול בדיוק FP32, TF32, FP16 ו-INT8 לקבלת ביצועי ההסקה הטובים ביותר. עם זאת, למרות שהדיוק המופחת יכול לשפר בדרך כלל את ביצועי ההשהיה, הוא עשוי לבוא עם חוסר יציבות וירידה ברמת דיוק המודל. בסך הכל, שילוב הטכניקות של TensorRT מביא להסקת הסקה מהירה יותר והשהייה נמוכה יותר בהשוואה למנועי הסקה אחרים.
הקצה האחורי של TensorRT עבור Triton Inference Server נועד לנצל את יכולות ההסקה החזקות של NVIDIA GPUs. כדי להשתמש ב-TensorRT כ-backend עבור Triton Inference Server, עליך ליצור מנוע TensorRT מהמודל המאומן שלך באמצעות TensorRT API. לאחר מכן, מנוע זה נטען לתוך Triton Inference Server ומשמש לביצוע הסקת מסקנות על בקשות נכנסות. להלן השלבים הבסיסיים לשימוש ב-TensorRT כ-backend עבור Triton Inference Server:
- המר את הדגם המאומן שלך ל- אונקס פוּרמָט. Triton Inference Server תומך ב-ONNX כפורמט דגם. ONNX הוא תקן לייצוג מודלים של למידה עמוקה, המאפשר העברתם בין מסגרות. אם הדגם שלך עדיין לא בפורמט ONNX, עליך להמיר אותו באמצעות הכלי המתאים למסגרת הספציפית. לדוגמה, ב- PyTorch, ניתן לעשות זאת באמצעות ה
torch.onnx.export
שִׁיטָה. - ייבא את מודל ה-ONNX אל TensorRT והפק את מנוע TensorRT. עבור TensorRT, ישנן מספר דרכים לבנות TensorRT מדגם ה-ONNX שלך. עבור פוסט זה, אנו משתמשים ב-
trtexec
כלי CLI.trtexec
הוא כלי לניצול מהיר של TensorRT מבלי שתצטרך לפתח אפליקציה משלך. הtrtexec
לכלי שלוש מטרות עיקריות:- השוואת רשתות על נתוני קלט אקראיים או שסופקו על ידי המשתמש.
- הפקת מנועים סדרתיים מדגמים.
- יצירת מטמון תזמון מסודר מהבנאי.
- טען את מנוע TensorRT ב-Triton Inference Server. לאחר יצירת מנוע TensorRT, ניתן לטעון אותו לתוך Triton Inference Server על ידי יצירת א תצורת הדגם קוֹבֶץ. תצורת הדגם (
config.pbtxt
) הקובץ צריך לכלול את הנתיב לקובץ מנוע TensorRT ואת צורות הקלט והפלט של המודל.
כל דגם ב-a מאגר דגמים חייב לכלול תצורת דגם המספקת מידע נדרש ואופציונלי על הדגם. בדרך כלל, תצורה זו מסופקת ב-a config.pbtxt
הקובץ שצוין כ ModelConfig protobuf. יש לשים לב למספר נקודות מפתח בקובץ התצורה הזה:
- שם – שדה זה מגדיר את שם המודל ועליו להיות ייחודי בתוך מאגר המודלים.
- פלטפורמה – שדה זה מגדיר את סוג הדגם: מנוע TensorRT, PyTorch או משהו אחר.
- מקסימום_גודל_אצווה - זה מציין את גודל האצווה המרבי שניתן להעביר לדגם זה. אם ממד האצווה של המודל הוא הממד הראשון, ולכל התשומות והפלטים למודל יש ממד אצווה זה, טריטון יכול להשתמש בו באצ'ר דינמי or באצ'ר רצף כדי להשתמש באופן אוטומטי באצווה עם הדגם. במקרה הזה,
max_batch_size
יש להגדיר לערך גדול או שווה ל-1, המציין את גודל האצווה המקסימלי ש-Triton צריך להשתמש בו עם המודל. עבור דגמים שאינם תומכים באצווה, או שאינם תומכים באצווה בדרכים הספציפיות שתיארנו,max_batch_size
חייב להיות מוגדר ל-0. - קלט ופלט - שדות אלה נדרשים מכיוון ש-NVIDIA Triton זקוקה למטא נתונים על הדגם. בעיקרו של דבר, זה דורש את שמות שכבות הקלט והפלט של הרשת שלך ואת הצורה של הכניסות והיציאות האמורות.
- instance_group - זה קובע כמה מופעים של מודל זה ייווצרו והאם הם ישתמשו ב-GPU או ב-CPU.
- דינאמי_אצווה - אצווה דינמית הוא תכונה של Triton המאפשרת לשלב בקשות הסקה על ידי השרת, כך שאצווה נוצרת באופן דינמי. ה
preferred_batch_size
מאפיין מציין את גדלי האצווה שעל ה-batcher הדינמי לנסות ליצור. עבור רוב הדגמים,preferred_batch_size
אין לציין, כמתואר ב תהליך תצורה מומלץ. יוצא דופן הוא דגמי TensorRT המציינים פרופילי אופטימיזציה מרובים עבור גדלי אצווה שונים. במקרה זה, מכיוון שפרופילי אופטימיזציה מסוימים עשויים להעניק שיפור משמעותי בביצועים בהשוואה לאחרים, ייתכן שיהיה הגיוני להשתמש בהםpreferred_batch_size
עבור גדלי אצווה הנתמכים על ידי פרופילי אופטימיזציה בעלי ביצועים גבוהים יותר. אתה יכול גם להתייחס לגודל האצווה ששימש בעבר בעת ההפעלהtrtexec
. אתה יכול גם להגדיר את זמן ההשהיה כדי לאפשר עיכוב של בקשות לזמן מוגבל במתזמן כדי לאפשר לבקשות אחרות להצטרף לאצווה הדינמית.
הקצה האחורי של TensorRT משופר כדי לקבל ביצועים טובים יותר באופן משמעותי. שיפורים כוללים הפחתת מחלוקת בין חוטים, שימוש בזיכרון מוצמד להעברות מהירות יותר בין מעבד ו-GPU, והגדלת חפיפת העתקת המחשוב והזיכרון ב-GPUs. זה גם מפחית את השימוש בזיכרון של דגמי TensorRT במקרים רבים על ידי שיתוף משקלים על פני מקרי מודל מרובים. בסך הכל, הקצה האחורי של TensorRT עבור Triton Inference Server מספק דרך רבת עוצמה וגמישה לשרת מודלים של למידה עמוקה עם הסקת TensorRT אופטימלית. על ידי התאמת אפשרויות התצורה, אתה יכול לייעל את הביצועים והתנהגות השליטה כדי להתאים למקרה השימוש הספציפי שלך.
SageMaker מספקת את Triton באמצעות חברות SME ו-MME
SageMaker מאפשר לך לפרוס שניהם יחיד ו רב דגם נקודות קצה עם Triton Inference Server. Triton תומך באשכול הטרוגני עם GPUs ו-CPUs, מה שעוזר לסטנדרטיזציה של מסקנות בין פלטפורמות ומתרחב באופן דינמי לכל CPU או GPU כדי להתמודד עם עומסי שיא. התרשים הבא ממחיש את ארכיטקטורת Triton Inference Server. בקשות להסיק מגיעות לשרת דרך אחת מהן HTTP / REST או על ידי C API, ולאחר מכן מנותבים למתזמן המתאים לכל דגם. טריטון מיישם אלגוריתמים מרובים של תזמון ואצווה שניתן להגדיר על בסיס דגם אחר דגם. מתזמן של כל דגם מבצע אופציונלי אצווה של בקשות הסקת מסקנות ולאחר מכן מעביר את הבקשות ל- Backend מתאים לסוג הדגם. ה-framework backend מבצע הסקת מסקנות באמצעות התשומות שסופקו בבקשות המצורפות כדי לייצר את הפלטים המבוקשים. לאחר מכן מתעצבים הפלטים ומוחזרים בתגובה. ה מאגר דגמים הוא מאגר מבוסס מערכת קבצים של המודלים שטריטון יהפוך לזמינים להסקת מסקנות.
SageMaker דואגת לעיצוב תעבורה לנקודת הקצה של MME ושומרת על עותקי דגם אופטימליים במופעי GPU לביצועי המחיר הטובים ביותר. הוא ממשיך לנתב את התעבורה למופע שבו המודל נטען. אם משאבי המופע מגיעים לקיבולת עקב ניצול גבוה, SageMaker פורק את הדגמים הכי פחות בשימוש מהמיכל כדי לפנות משאבים לטעינת מודלים בשימוש תכוף יותר. SageMaker MMEs מציעים יכולות להרצת מודלים מרובים של למידה עמוקה או ML על ה-GPU, במקביל, עם Triton Inference Server, שהורחב ליישום חוזה MME API. MMEs מאפשרים שיתוף מופעי GPU מאחורי נקודת קצה על פני מספר דגמים, וטעינה ופריקה דינמית של מודלים על סמך התעבורה הנכנסת. בעזרת זה, אתה יכול בקלות להשיג ביצועי מחיר אופטימליים.
כאשר SageMaker MME מקבל בקשת הפצת HTTP עבור דגם מסוים המשתמש TargetModel
בבקשה יחד עם המטען, הוא מנתב את התנועה למופע הנכון מאחורי נקודת הקצה שבה נטען מודל היעד. SageMaker דואגת לניהול מודלים מאחורי נקודת הקצה. זה מוריד באופן דינמי דגמים מ שירות אחסון פשוט של אמזון (Amazon S3) לנפח האחסון של המופע אם הדגם המופעל אינו זמין בנפח האחסון של המופע. לאחר מכן, SageMaker טוען את הדגם לזיכרון של מיכל ה-NVIDIA Triton במופע מואץ של GPU ומשרת את בקשת ההסקה. ליבת ה-GPU משותפת לכל הדגמים במופע אחד. למידע נוסף על MME של SageMaker ב-GPU, ראה הפעל מספר מודלים של למידה עמוקה ב-GPU עם נקודות קצה מרובי דגמים של Amazon SageMaker.
MMEs של SageMaker יכולים לשנות קנה מידה אופקי באמצעות מדיניות קנה מידה אוטומטי ולספק מופעי מחשוב נוספים של GPU בהתבסס על מדדים שצוינו. בעת הגדרת קבוצות קנה המידה האוטומטי שלך עבור נקודות קצה של SageMaker, ייתכן שתרצה לשקול SageMakerVariantInvocationsPerInstance
כקריטריונים העיקריים לקביעת מאפייני קנה המידה של קבוצות קנה המידה האוטומטי שלך. בנוסף, על סמך אם הדגמים שלך פועלים על GPU או CPU, אתה יכול גם לשקול להשתמש CPUUtilization
or GPUUtilization
כקריטריונים נוספים. עבור נקודות קצה של מודל בודד, מכיוון שהמודלים שנפרסו זהים, זה די פשוט לקבוע מדיניות מתאימה כדי לעמוד ב-SLA שלך. עבור נקודות קצה מרובות, אנו ממליצים לפרוס מודלים דומים מאחורי נקודת קצה נתונה כדי לקבל ביצועים יציבים יותר ניתנים לחיזוי. במקרים של שימוש בהם נעשה שימוש בדגמים בגדלים ודרישות שונות, ייתכן שתרצה להפריד את עומסי העבודה הללו בין מספר נקודות קצה מרובות דגמים או להקדיש זמן מה לכוונון עדין של מדיניות קבוצת קנה המידה האוטומטית שלך כדי להשיג את האיזון הטוב ביותר בין עלות וביצועים.
סקירת פתרונות
עם NVIDIA טריטון תמונת container ב- SageMaker, כעת תוכל להשתמש ב-TensorRT backend של Triton, המאפשר לך לפרוס דגמי TensorRT. ה TensorRT_backend repo מכיל את התיעוד והמקור עבור ה-backend. בסעיפים הבאים, נלווה אותך דרך ה מחברת דוגמה שמדגים כיצד להשתמש ב-NVIDIA Triton Inference Server ב-MME של SageMaker עם תכונת ה-GPU כדי לפרוס מודל BERT לעיבוד שפה טבעית (NLP).
הגדר את הסביבה
אנו מתחילים בהגדרת הסביבה הנדרשת. אנו מתקינים את התלות הנדרשות כדי לארוז את צינור המודלים שלנו ולהפעיל מסקנות באמצעות Triton Inference Server. אנחנו גם מגדירים את AWS זהות וניהול גישה תפקיד (IAM) שנותן ל-SageMaker גישה לחפצי הדגם ול-NVIDIA Triton מרשם מיכל אלסטי של אמזון תמונה (Amazon ECR). אתה יכול להשתמש בדוגמה הבאה לקוד כדי לאחזר את תמונת Triton ECR הבנויה מראש:
הוסף שיטות שירות להכנת מטען הבקשה
אנו יוצרים את הפונקציות כדי להפוך את הטקסט לדוגמה שבו אנו משתמשים להסקת מסקנות למטען שניתן לשלוח להסקת מסקנות ל-Triton Inference Server. ה tritonclient
החבילה, שהותקנה בהתחלה, מספקת שיטות שירות ליצירת המטען ללא צורך לדעת את פרטי המפרט. אנו משתמשים בשיטות שנוצרו כדי להמיר את בקשת ההסקה שלנו לפורמט בינארי, המספק זמן אחזור נמוך יותר להסקת הסקה. פונקציות אלו משמשות במהלך שלב ההסקה.
הכן את מודל TensorRT
בשלב זה, אנו טוענים את מודל BERT מאומן מראש ולהמיר לייצוג ONNX באמצעות יצואן הלפיד ONNX וה- onnx_exporter.py
תַסרִיט. לאחר יצירת מודל ONNX, אנו משתמשים ב- TensorRT trtexec
פקודה ליצירת תוכנית המודל שתתארח אצל Triton. זה מתנהל כחלק מה- generate_model.sh
סקריפט מהתא הבא. שימו לב שהתא לוקח בערך 30 דקות להשלמתו.
בזמן ההמתנה לסיום הפעלת הפקודה, תוכל לבדוק את הסקריפטים המשמשים בשלב זה. בתוך ה onnx_exporter.py
סקריפט, אנו משתמשים ב- torch.onnx.export
פונקציה ליצירת מודל ONNX:
שורת הפקודה בקובץ gener_model.sh יוצרת את תוכנית המודל של TensorRT. למידע נוסף, עיין ב כלי שורת הפקודה trtexec.
בנה מאגר מודלים של TensorRT NLP BERT
השימוש ב-Triton ב- SageMaker מחייב אותנו להגדיר תחילה א מאגר דגמים תיקייה המכילה את הדגמים שאנו רוצים לשרת. עבור כל דגם, עלינו ליצור ספריית מודל המורכבת מחפץ המודל ולהגדיר את config.pbtxt
קובץ כדי לציין את תצורת המודל שבה משתמש Triton כדי לטעון ולהגיש את המודל. למידע נוסף על הגדרות התצורה, עיין ב תצורת דגמים. מבנה מאגר המודלים עבור מודל BERT הוא כדלקמן:
שימו לב שלטריטון יש דרישות ספציפיות לפריסת מאגר המודלים. בתוך ספריית מאגר המודלים ברמה העליונה, לכל דגם יש ספריית משנה משלו המכילה את המידע עבור המודל המתאים. לכל ספריית מודל בטריטון חייבת להיות לפחות ספריית משנה מספרית אחת המייצגת גרסה של המודל. כאן, תיקייה 1 מייצגת את גרסה 1 של מודל BERT. כל מודל מנוהל על ידי קצה אחורי מסוים, כך שבתוך כל ספריית משנה של גרסה חייבים להיות חפצי המודל הנדרשים על ידי קצה העורפי הזה. כאן, אנו משתמשים בקצה האחורי של TensorRT, הדורש את קובץ התוכנית TensorRT המשמש להגשה (לדוגמה זו, model.plan
). אם היינו משתמשים ב-PyTorch backend, א model.pt
יידרש קובץ. לפרטים נוספים על מוסכמות שמות עבור קובצי מודל, עיין ב קבצי דגם.
כל דגם TensorRT חייב לספק א config.pbtxt
קובץ המתאר את תצורת הדגם. על מנת להשתמש ב-backend זה, עליך להגדיר את backend
התחום של הדגם שלך config.pbtxt
הקובץ אל tensorrt_plan
. קטע הקוד הבא מציג דוגמה כיצד להגדיר את קובץ התצורה עבור מודל BERT המוגש דרך ה-TensorRT האחורי של טריטון:
SageMaker מצפה שקובץ .tar.gz המכיל כל מאגר מודלים של Triton יתארח בנקודת הקצה מרובת הדגמים. כדי לדמות כמה דגמים דומים שמתארחים, אולי תחשוב שכל מה שצריך זה לטרנס את מאגר המודלים שכבר בנינו, ואז להעתיק אותו עם שמות קבצים שונים. עם זאת, טריטון דורש שמות דגמים ייחודיים. לכן, תחילה אנו מעתיקים את ה-Repo של המודל N פעמים, ומשנים את שמות ספריית המודלים והמתאימים להם config.pbtxt
קבצים. אתה יכול לשנות את מספר ה-N כדי לקבל יותר עותקים של המודל שניתן לטעון באופן דינמי לנקודת הקצה המארח כדי לדמות את פעולת הטעינה/פריקה של המודל המנוהלת על ידי SageMaker. ראה את הקוד הבא:
צור נקודת קצה של SageMaker
כעת, לאחר שהעלינו את חפצי הדגם לאמזון S3, אנו יכולים ליצור את אובייקט המודל של SageMaker, תצורת נקודת הקצה ונקודת הקצה.
ראשית, עלינו להגדיר את מיכל ההגשה. בהגדרת המכולה, הגדר את ModelDataUrl
כדי לציין את ספריית S3 שמכילה את כל הדגמים שבהם תשתמש נקודת הקצה של SageMaker מרובת מודלים כדי לטעון ולהגיש תחזיות. מַעֲרֶכֶת Mode
ל MultiModel
כדי לציין ש- SageMaker תיצור את נקודת הקצה עם מפרטי מיכל MME. ראה את הקוד הבא:
לאחר מכן אנו יוצרים את אובייקט המודל של SageMaker באמצעות ה create_model
boto3 API על ידי ציון ה- ModelName
והגדרת מיכל:
אנו משתמשים במודל זה כדי ליצור תצורת נקודת הקצה שבו נוכל לציין את סוג ומספר המופעים שאנו רוצים בנקודת הקצה. כאן אנו פורסים למופע g5.xlarge NVIDIA GPU:
עם תצורת נקודת קצה זו, אנו יוצרים נקודת קצה חדשה של SageMaker ומחכים לסיום הפריסה. הסטטוס ישתנה ל InService
כאשר הפריסה מוצלחת.
הפעל את הדגם שלך שמתארח בנקודת הקצה של SageMaker
כאשר נקודת הקצה פועלת, אנו יכולים להשתמש בכמה נתונים גולמיים לדוגמה כדי לבצע הסקה באמצעות JSON או binary+JSON כפורמט המטען. עבור פורמט בקשת ההסקה, Triton משתמש בתקן הקהילה KFServing פרוטוקולי מסקנות. אנו יכולים לשלוח את בקשת ההסקה לנקודת הקצה מרובת המודלים באמצעות ה- invoke_enpoint
ממשק API. אנו מציינים את TargetModel
בקריאת ההזמנה והעבירו את המטען עבור כל סוג דגם. כאן אנו מפעילים את נקודת הקצה בלולאת for כדי לבקש את נקודת הקצה אליה לטעון או לפרוק דגמים באופן דינמי על סמך הבקשות:
אתה יכול לעקוב אחר מצב הטעינה והפריקה של הדגם באמצעות אמזון CloudWatch מדדים ויומנים. נקודות קצה מרובות של SageMaker מספקות מדדים ברמת המופע לניטור; לפרטים נוספים, עיין ב עקוב אחר אמזון SageMaker עם אמזון CloudWatch. ה LoadedModelCount
מדד מציג את מספר הדגמים הטעונים במכולות. ה ModelCacheHit
המדד מציג את מספר הפניות למודל שכבר נטענו על המכולה כדי לעזור לך לקבל תובנות ברמת ההזמנה של המודל. כדי לבדוק אם מודלים נפרקים מהזיכרון, אתה יכול לחפש את ערכי היומן שנפרקו המוצלחים ביומני CloudWatch של נקודת הקצה.
את המחברת ניתן למצוא ב מאגר GitHub.
שיטות עבודה מומלצות
לפני תחילת כל מאמץ אופטימיזציה עם TensorRT, חיוני לקבוע מה יש למדוד. ללא מדידות, אי אפשר להתקדם מהימנה או למדוד אם הושגה הצלחה. הנה כמה שיטות עבודה מומלצות שכדאי לקחת בחשבון בעת השימוש ב-TensorRT backend עבור Triton Inference Server:
- בצע אופטימיזציה של מודל TensorRT שלך - לפני פריסת מודל על Triton עם ה-TensorRT backend, הקפד לבצע אופטימיזציה של המודל בעקבות TensorRT שיטות עבודה מומלצות להנחות. זה יעזור לך להשיג ביצועים טובים יותר על ידי הפחתת זמן ההסקה וצריכת הזיכרון.
- השתמש ב-TensorRT במקום ב-Triton backends אחרים במידת האפשר - TensorRT נועד לייעל מודלים של למידה עמוקה לפריסה על NVIDIA GPUs, כך שהשימוש בו יכול לשפר משמעותית את ביצועי ההסקות בהשוואה לשימוש ב-Triton backends נתמכים אחרים.
- השתמש בדיוק הנכון - TensorRT תומך במספר דיוקים (FP32, FP16, INT8), ולבחירת הדיוק המתאים לדגם שלך יכולה להיות השפעה משמעותית על הביצועים. שקול להשתמש ברמת דיוק נמוכה יותר במידת האפשר.
- השתמש בגדלי אצווה המתאימים לחומרה שלך - הקפד לבחור גדלי אצווה המתאימים לזיכרון וליכולות המחשוב של ה-GPU שלך. שימוש בגדלי אצווה גדולים מדי או קטנים מדי עלול להשפיע לרעה על הביצועים.
סיכום
בפוסט הזה, צללנו עמוק לתוך הקצה האחורי של TensorRT בו תומך Triton Inference Server ב- SageMaker. הקצה האחורי הזה מספק גם האצת מעבד ו-GPU של דגמי ה-TensorRT שלך. ישנן אפשרויות רבות לשקול כדי לקבל את הביצועים הטובים ביותר להסקת מסקנות, כגון גדלי אצווה, פורמטים של קלט נתונים וגורמים אחרים שניתן לכוון כדי לענות על הצרכים שלך. SageMaker מאפשר לך לנצל את היכולת הזו באמצעות נקודות קצה של דגם בודד לביצועים מובטחים ונקודות קצה מרובות דגמים כדי לקבל איזון טוב יותר בין ביצועים וחיסכון בעלויות. כדי להתחיל עם תמיכת MME עבור GPU, ראה אלגוריתמים, מסגרות ומופעים נתמכים.
אנו מזמינים אותך לנסות את מיכלי Triton Inference Server ב- SageMaker, ולשתף את המשוב והשאלות שלך בתגובות.
על הכותבים
מלאני לי הוא TAM מומחה בכיר בינה מלאכותית/ML ב-AWS שבסיסה בסידני, אוסטרליה. היא עוזרת ללקוחות ארגוניים לבנות פתרונות הממנפים את כלי ה-AI/ML המתקדמים ביותר ב-AWS ומספקת הנחיות לגבי ארכיטקטורה והטמעה של פתרונות למידת מכונה עם שיטות עבודה מומלצות. בזמנה הפנוי היא אוהבת לחקור את הטבע בחוץ ולבלות עם משפחה וחברים.
פארק ג'יימס הוא אדריכל פתרונות בשירותי האינטרנט של אמזון. הוא עובד עם אמזון כדי לתכנן, לבנות ולפרוס פתרונות טכנולוגיים ב-AWS, ויש לו עניין מיוחד בבינה מלאכותית ולמידת מכונה. בזמנו הפנוי הוא נהנה לחפש תרבויות חדשות, חוויות חדשות ולהישאר מעודכן בטרנדים הטכנולוגיים העדכניים ביותר.
ג'יהונג ליו הוא ארכיטקט פתרונות בצוות ספק שירותי הענן ב-NVIDIA. הוא מסייע ללקוחות באימוץ פתרונות למידת מכונה ו-AI הממנפים את המחשוב המואץ של NVIDIA כדי להתמודד עם אתגרי ההכשרה וההסקות שלהם. בשעות הפנאי שלו הוא נהנה מאוריגמי, פרויקטים של עשה זאת בעצמך ולשחק כדורסל.
קשיטיס גופטה הוא אדריכל פתרונות ב-NVIDIA. הוא נהנה לחנך את לקוחות הענן על טכנולוגיות GPU AI שיש ל-NVIDIA להציע ולסייע להם בהאצת יישומי למידת המכונה ולמידה עמוקה שלהם. מחוץ לעבודה, הוא נהנה לרוץ, לטייל ולצפות בחיות בר.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoAiStream. Web3 Data Intelligence. הידע מוגבר. גישה כאן.
- הטבעת העתיד עם אדריאן אשלי. גישה כאן.
- קנה ומכירה של מניות בחברות PRE-IPO עם PREIPO®. גישה כאן.
- מקור: https://aws.amazon.com/blogs/machine-learning/host-ml-models-on-amazon-sagemaker-using-triton-tensorrt-models/
- :יש ל
- :הוא
- :לֹא
- :איפה
- $ למעלה
- 1
- 10
- 100
- 11
- 12
- 13
- 23
- 30
- 7
- 8
- a
- יכול
- אודות
- להאיץ
- מוּאָץ
- מאיצה
- גישה
- דיוק
- להשיג
- הושג
- לרוחב
- פעולה
- תוספת
- נוסף
- בנוסף
- כתובת
- פְּנִיָה
- אימוץ
- יתרון
- לאחר
- AI
- AI / ML
- אַלגוֹרִיתְם
- אלגוריתמים
- תעשיות
- להתיר
- מאפשר
- לאורך
- כְּבָר
- גם
- למרות
- אמזון בעברית
- אמזון SageMaker
- אמזון שירותי אינטרנט
- an
- ו
- כל
- API
- בקשה
- יישומים
- מתאים
- ארכיטקטורה
- ARE
- סביב
- AS
- אסיסטים
- At
- אוסטרליה
- המכונית
- באופן אוטומטי
- זמין
- לְהִמָנַע
- AWS
- קצה אחורי
- איזון
- בסיס
- מבוסס
- בסיסי
- בסיס
- כדורסל
- BE
- כי
- היה
- לפני
- להתחיל
- ההתחלה
- מאחור
- להיות
- מועיל
- מרוויח
- הטוב ביותר
- שיטות עבודה מומלצות
- מוטב
- בֵּין
- גוּף
- שניהם
- לִבנוֹת
- בונה
- נבנה
- אבל
- by
- סליק
- שיחה
- נקרא
- CAN
- יכולות
- קיבולת
- אשר
- מקרה
- מקרים
- האתגרים
- שינוי
- משתנה
- מאפיינים
- לבדוק
- בחרו
- לקוחות
- לקוחות
- ענן
- אשכול
- קוד
- COM
- שילוב
- משולב
- איך
- הערות
- קהילה
- לעומת
- להשלים
- חישוב
- לחשב
- מחשוב
- תְצוּרָה
- לשקול
- מורכב
- צְרִיכָה
- מכולה
- מכולות
- מכיל
- ממשיך
- לִשְׁלוֹט
- להמיר
- ליבה
- תוֹאֵם
- עלות
- חיסכון עלויות
- לִיצוֹר
- נוצר
- יוצר
- יוצרים
- יצירה
- הקריטריונים
- מכריע
- לקוחות
- נתונים
- תַאֲרִיך
- החלטה
- עמוק
- למידה עמוקה
- מגדיר
- עיכוב
- נדחה
- מספק
- מדגים
- לפרוס
- פרס
- פריסה
- פריסה
- מְתוּאָר
- עיצוב
- מעוצב
- פרטים
- לקבוע
- קובע
- לפתח
- מפותח
- אחר
- מֵמַד
- DIY
- תיעוד
- עשה
- לא
- יונה
- הורדות
- באופן דרמטי
- ראוי
- בְּמַהֲלָך
- דינמי
- באופן דינמי
- כל אחד
- בקלות
- אדג '
- לחנך
- יְעִילוּת
- יעילות
- מאמץ
- או
- מעסיקה
- לאפשר
- מאפשר
- מה שמאפשר
- נקודת קצה
- מנוע
- מנועים
- מִפְעָל
- סביבה
- סביבות
- שווה
- חיוני
- למעשה
- דוגמה
- יוצא מן הכלל
- לצפות
- מצפה
- חוויות
- לחקור
- גורמים
- למדי
- משפחה
- מהר יותר
- מאפיין
- מָשׁוֹב
- שדה
- שדות
- שלח
- קבצים
- סנפיר
- בסופו של דבר
- גימור
- ראשון
- מתאים
- גמיש
- הבא
- כדלקמן
- עָקֵב
- בעד
- טופס
- פוּרמָט
- מצא
- מסגרת
- מסגרות
- חופשי
- בתדירות גבוהה
- חברים
- החל מ-
- פונקציה
- פונקציות
- נוסף
- היתוך
- בדרך כלל
- ליצור
- נוצר
- לקבל
- לתת
- נתן
- נותן
- GPU
- GPUs
- גרף
- גדול
- יותר
- קְבוּצָה
- קבוצה
- מובטח
- הדרכה
- מדריך
- לטפל
- חומרה
- יש
- יש
- he
- לעזור
- עוזר
- לה
- כאן
- גָבוֹהַ
- ביצועים גבוהים
- גבוה יותר
- שֶׁלוֹ
- אופקית
- המארח
- אירח
- אירוח
- איך
- איך
- אולם
- HTML
- http
- HTTPS
- i
- ID
- זהות
- if
- מדגים
- תמונה
- פְּגִיעָה
- השפעות
- ליישם
- יישום
- מיישמים
- לייבא
- בלתי אפשרי
- לשפר
- משופר
- השבחה
- שיפורים
- שיפור
- in
- לכלול
- כולל
- נכנס
- גדל
- תוֹסֶפֶת
- להצביע
- מצביע על
- מידע
- הודעה
- קלט
- תשומות
- תובנות
- אי יציבות
- להתקין
- מותקן
- למשל
- במקום
- אינטרס
- אל תוך
- להזמין
- הופעל
- IT
- שֶׁלָה
- להצטרף
- jpg
- ג'סון
- מפתח
- סוג
- לדעת
- שפה
- גָדוֹל
- גדול יותר
- חֶבִיוֹן
- האחרון
- השקות
- שכבה
- שכבות
- מערך
- לִלמוֹד
- למידה
- הכי פחות
- תנופה
- מינוף
- סִפְרִיָה
- מוגבל
- קו
- לִטעוֹן
- טוען
- המון
- היכנס
- הגיוני
- נראה
- נמוך
- להוריד
- מכונה
- למידת מכונה
- ראשי
- שומר
- גדול
- לעשות
- הצליח
- ניהול
- רב
- להתאים
- מקסום
- מקסימום
- מאי..
- למדוד
- מידות
- לִפְגוֹשׁ
- זכרון
- מידע נוסף
- שיטה
- שיטות
- מטרי
- מדדים
- יכול
- דקות
- ML
- מצב
- מודל
- מודלים
- לשנות
- צג
- יותר
- רוב
- נקודת קצה מרובת דגמים
- מספר
- צריך
- שם
- שמות
- שמות
- טבעי
- עיבוד שפה טבעית
- טבע
- צורך
- צרכי
- באופן שלילי
- רשתות
- חדש
- NLP
- מחברה
- עַכשָׁיו
- מספר
- Nvidia
- אובייקט
- להשיג
- of
- הַצָעָה
- on
- ONE
- לפתוח
- תפעול
- אופטימלי
- אופטימיזציה
- מטב
- אופטימיזציה
- מייעל
- אפשרויות
- or
- להזמין
- OS
- אחר
- אחרים
- שלנו
- הַחוּצָה
- בחוץ
- תפוקה
- בחוץ
- מקיף
- שֶׁלוֹ
- חבילה
- מקביל
- חלק
- מסוים
- לעבור
- עבר
- מעברי
- נתיב
- שִׂיא
- לְבַצֵעַ
- ביצועים
- מבצע
- צינור
- תכנית
- פלטפורמה
- פלטפורמות
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- משחק
- נקודות
- מדיניות
- מדיניות
- אפשרי
- הודעה
- חזק
- פרקטיקות
- דיוק
- צפוי
- התחזיות
- העריכה
- קודם
- קוֹדֶם
- מחיר
- יְסוֹדִי
- מעובד
- תהליך
- לייצר
- הפקה
- פרופילים
- התקדמות
- פרויקטים
- תָקִין
- רכוש
- הפרוטו
- לספק
- ובלבד
- ספק
- מספק
- אַספָּקָה
- למטרות
- פיטורך
- שאלות
- מהירות
- להעלות
- אקראי
- חי
- לְהַגִיעַ
- מקבל
- להמליץ
- מופחת
- מפחית
- הפחתה
- באזור
- אָמִין
- מאגר
- נציגות
- המייצג
- מייצג
- לבקש
- בקשות
- נדרש
- דרישות
- דורש
- משאב
- משאבים
- תגובה
- תוצאות
- תפקיד
- מסלול
- נתיבים
- rt
- הפעלה
- ריצה
- s
- בעל חכמים
- אמר
- אותו
- שמור
- חיסכון
- סולם
- מאזניים
- דרוג
- תזמון
- סקריפטים
- Sdk
- סעיף
- סעיפים
- לִרְאוֹת
- מחפשים
- בחירה
- לשלוח
- לחצני מצוקה לפנסיונרים
- תחושה
- נפרד
- לשרת
- משמש
- שרות
- ספק שירות
- שירותים
- הגשה
- סט
- הצבה
- הגדרות
- כמה
- צוּרָה
- צורות
- מעצבים
- שיתוף
- משותף
- שיתוף
- היא
- צריך
- הופעות
- משמעותי
- באופן משמעותי
- דומה
- פָּשׁוּט
- יחיד
- מידה
- גדל
- קטן
- חברות קטנות ובינוניות
- So
- פִּתָרוֹן
- פתרונות
- כמה
- משהו
- מָקוֹר
- מומחה
- ספציפי
- מפרט
- מפרטים
- מפורט
- לבלות
- תֶקֶן
- החל
- החל
- מדינה-of-the-art
- מצב
- יציב
- שלב
- צעדים
- אחסון
- פשוט
- זרמים
- מִבְנֶה
- הצלחה
- מוצלח
- כזה
- כדלקמן
- תמיכה
- נתמך
- תומך
- סידני
- לקחת
- לוקח
- יעד
- נבחרת
- טכניקות
- טכנולוגיות
- טכנולוגיה
- מֵאֲשֶׁר
- זֶה
- השמיים
- הגרף
- המידע
- שֶׁלָהֶם
- אותם
- אז
- שם.
- לכן
- אלה
- הֵם
- לחשוב
- זֶה
- אלה
- שְׁלוֹשָׁה
- דרך
- זמן
- פִּי
- תזמון
- ל
- גַם
- כלי
- כלים
- הרמה העליונה
- לפיד
- תְנוּעָה
- מְאוּמָן
- הדרכה
- עסקות
- הועבר
- העברות
- לשנות
- רוֹבּוֹטרִיקִים
- מגמות
- טריטון
- סוג
- טיפוסי
- בדרך כלל
- להבין
- ייחודי
- נטען
- us
- נוֹהָג
- להשתמש
- במקרה להשתמש
- מְשׁוּמָשׁ
- באמצעות
- תועלת
- לנצל
- ערך
- שונים
- גרסה
- מאוד
- באמצעות
- כֶּרֶך
- לחכות
- הַמתָנָה
- רוצה
- היה
- צופה
- דֶרֶך..
- דרכים
- we
- אינטרנט
- שירותי אינטרנט
- היו
- מה
- מתי
- אם
- אשר
- יצטרך
- עם
- בתוך
- לְלֹא
- תיק עבודות
- עובד
- היה
- אתה
- זפירנט