מקסימום ביצועים ביישומי AI Edge - KDnuggets

מקסימום ביצועים ביישומי AI Edge - KDnuggets

צומת המקור: 2919295

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

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

ייתכן שיהיה צורך במאיץ AI ייעודי, בין אם הוא דיסקרטי או משולב ב-SoC (בניגוד להרצת הסקת הבינה המלאכותית על מעבד או GPU).

  • הבנת ההבדל בין תפוקה לאחביון; לפיה תפוקה היא הקצב שניתן לעבד נתונים במערכת והשהייה מודדת את העיכוב בעיבוד הנתונים במערכת ולעתים קרובות קשורה להיענות בזמן אמת. לדוגמה, מערכת יכולה ליצור נתוני תמונה ב-100 פריימים לשנייה (תפוקה) אך נדרשות 100ms (שהייה) לתמונה לעבור במערכת.   
  • בהתחשב ביכולת להגדיל בקלות את ביצועי הבינה המלאכותית בעתיד כדי להתאים לצרכים הולכים וגדלים, דרישות משתנות וטכנולוגיות מתפתחות (למשל, מודלים מתקדמים יותר של בינה מלאכותית להגברת הפונקציונליות והדיוק). אתה יכול לבצע קנה מידה של ביצועים באמצעות מאיצי AI בפורמט מודול או עם שבבי מאיץ AI נוספים.

דרישות הביצוע בפועל תלויות ביישום. בדרך כלל, אפשר לצפות שלניתוח וידאו, המערכת חייבת לעבד זרמי נתונים המגיעים ממצלמות בקצב של 30-60 פריימים לשנייה וברזולוציה של 1080p או 4k. מצלמה התומכת בינה מלאכותית תעבד זרם יחיד; מכשיר קצה יעבד מספר זרמים במקביל. בכל מקרה, מערכת ה-Edge AI חייבת לתמוך בפונקציות העיבוד המקדים כדי להפוך את נתוני החיישן של המצלמה לפורמט התואם את דרישות הקלט של סעיף הסקת ה-AI (איור 1).

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

 

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

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

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

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

במצלמה חכמה או במכשיר קצה, ה-SoC המשולב (כלומר, המעבד המארח) רוכש את מסגרות הווידאו ומבצע את שלבי העיבוד המקדים שתיארנו קודם לכן. ניתן לבצע פונקציות אלו עם ליבות ה-CPU של ה-SoC או ה-GPU (אם קיים), אך ניתן לבצע אותן גם על ידי מאיצי חומרה ייעודיים ב-SoC (למשל, מעבד אותות תמונה). לאחר השלמת שלבי העיבוד המקדים הללו, מאיץ הבינה המלאכותית שמשולב ב-SoC יכול לגשת ישירות לקלט המקודם הזה מזיכרון המערכת, או במקרה של מאיץ בינה מלאכותית בדיד, הקלט מועבר להסקה, בדרך כלל דרך ממשק USB או PCIe. 

SoC משולב יכול להכיל מגוון של יחידות חישוב, כולל CPUs, GPUs, מאיץ AI, מעבדי ראייה, מקודדים/מפענחים וידאו, מעבד אותות תמונה (ISP) ועוד. יחידות החישוב הללו חולקות כולן את אותו אפיק זיכרון וכתוצאה מכך גישה לאותו זיכרון. יתרה מזאת, ייתכן שהמעבד וה-GPU יצטרכו גם הם למלא תפקיד בהסקה ויחידות אלו יהיו עסוקות בהפעלת משימות אחרות במערכת פרוסה. לזה אנחנו מתכוונים בתקורה ברמת המערכת (איור 2).

מפתחים רבים מעריכים בטעות את הביצועים של מאיץ ה-AI המובנה ב-SoC מבלי לקחת בחשבון את ההשפעה של תקורה ברמת המערכת על הביצועים הכוללים. כדוגמה, שקול להפעיל מדד YOLO על מאיץ AI של 50 TOPS המשולב ב-SoC, שעשוי להשיג תוצאת מדד של 100 מסקנות לשנייה (IPS). אבל במערכת פרוסה עם כל יחידות החישוב האחרות שלה פעילות, 50 ה-TOPS הללו יכולים לצמצם למשהו כמו 12 TOPS והביצועים הכוללים יניבו רק 25 IPS, בהנחה של מקדם ניצול נדיב של 25%. תקורה של המערכת היא תמיד גורם אם הפלטפורמה מעבדת ברציפות זרמי וידאו. לחלופין, עם מאיץ בינה מלאכותית בדיד (למשל Kinara Ara-1, Hailo-8, Intel Myriad X), השימוש ברמת המערכת יכול להיות גדול מ-90% מכיוון שברגע שה-SoC המארח יוזם את פונקציית ההסקה ומעביר את הקלט של מודל הבינה המלאכותית נתונים, המאיץ פועל באופן אוטונומי תוך שימוש בזיכרון הייעודי שלו לגישה למשקלים ופרמטרים של הדגם.

 

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

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

באופן כללי, ישנם שלושה מרכיבים של חביון ביישום ניתוח וידאו (איור 3):

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

 

מקסימום ביצועים ביישומי Edge AI
איור 3. צינור ניתוח הווידאו מורכב מלכידת נתונים, העברת נתונים ועיבוד נתונים.
 

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

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

בול זמן:

עוד מ KDnuggets