GPUs עמוסים: שיטת דגימה וצנרת מזרזת למידה עמוקה בגרפים גדולים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

גרפי GPU עסוקים: שיטת הדגימה והצנרת מזרזת למידה עמוקה בגרפים גדולים

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

כעת, שיטה חדשה, שנקראת SALIENT (Sampling, sLIcing, and data movemeNT), שפותחה על ידי חוקרים ב-MIT ו-IBM Research, משפרת את ביצועי ההדרכה וההסקה על ידי טיפול בשלושה צווארי בקבוק מרכזיים בחישוב. זה מקצץ באופן דרמטי את זמן הריצה של GNNs על מערכי נתונים גדולים, אשר, למשל, מכילים בקנה מידה של 100 מיליון צמתים ומיליארד קצוות. יתרה מכך, הצוות מצא שהטכניקה מתרחבת היטב כאשר מתווספת כוח חישוב מאחת ל-1 יחידות עיבוד גרפיות (GPUs). העבודה הוצגה בכנס החמישי בנושא למידת מכונה ומערכות.

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

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

המחברים המשותפים של Kaler וחן כוללים את Nickolas Stathas MEng '21 מ-Jump Trading, שפיתח את SALIENT כחלק מעבודתו לתואר שני; לשעבר מתמחה MIT-IBM Watson AI Lab וסטודנטית לתואר שני ב-MIT Anne Ouyang; פוסט דוקטורט של MIT CSAIL אלכסנדרוס-סטברוס איליופולוס; מדען מחקר MIT CSAIL Tao B. Schardl; וצ'ארלס אי. לייזרסון, פרופסור להנדסת חשמל של אדווין סיבלי וובסטר ב-MIT וחוקר במעבדת MIT-IBM Watson AI.     

לבעיה זו, הצוות נקט בגישה מוכוונת מערכות בפיתוח השיטה שלהם: SALIENT, אומר Kaler. לשם כך, החוקרים יישמו את מה שנראה בעיניהם כחשוב, אופטימיזציות בסיסיות של רכיבים המשתלבים במסגרות קיימות של למידת מכונה, כמו PyTorch Geometric וספריית הגרפים העמוקים (DGL), שהם ממשקים לבניית מודל למידת מכונה. סטטהס אומר שהתהליך הוא כמו החלפת מנועים כדי לבנות מכונית מהירה יותר. השיטה שלהם תוכננה כך שתתאים לארכיטקטורות הקיימות של GNN, כך שמומחי תחום יוכלו בקלות ליישם את העבודה הזו בתחומים שצוינו כדי לזרז את אימון המודלים ולהקניט תובנות במהלך הסקת מסקנות מהר יותר. הטריק, קבע הצוות, היה להעסיק את כל החומרה (מעבדים, קישורי נתונים ו-GPU) כל הזמן: בעוד שה-CPU דוגם את הגרף ומכין מיני-אצטות של נתונים שיועברו לאחר מכן דרך קישור הנתונים , ה-GPU הקריטי יותר עובד כדי להכשיר את מודל למידת המכונה או להסיק מסקנות. 

החוקרים התחילו בניתוח הביצועים של ספריית למידת מכונה נפוצה עבור GNNs (PyTorch Geometric), שהראתה ניצול נמוך להדהים של משאבי GPU זמינים. תוך יישום אופטימיזציות פשוטות, החוקרים שיפרו את ניצול ה-GPU מ-10 ל-30 אחוזים, וכתוצאה מכך שיפור ביצועים פי 1.4 עד פי שניים ביחס לקודי השוואות הציבוריים. קוד בסיס מהיר זה יכול לבצע מעבר שלם אחד על מערך אימון גדול דרך האלגוריתם (תקופה) תוך 50.4 שניות.                          

בחיפוש אחר שיפורי ביצועים נוספים, החוקרים יצאו לבחון את צווארי הבקבוק המתרחשים בתחילת צינור הנתונים: האלגוריתמים לדגימת גרפים והכנת מיני-אצווה. בניגוד לרשתות עצביות אחרות, GNNs מבצעים פעולת צבירה שכונתית, אשר מחשבת מידע על צומת באמצעות מידע הקיים בצמתים סמוכים אחרים בגרף - למשל, בגרף רשת חברתית, מידע מחברים של חברים של משתמש. ככל שמספר השכבות ב-GNN גדל, מספר הצמתים שהרשת צריכה לפנות אליהם כדי לקבל מידע יכול להתפוצץ ולחרוג מהמגבלות של מחשב. אלגוריתמים של דגימת שכונות עוזרים על ידי בחירת תת-קבוצה אקראית קטנה יותר של צמתים לאיסוף; עם זאת, החוקרים גילו שהיישום הנוכחי של זה היה איטי מכדי לעמוד בקצב העיבוד של מעבדי GPU מודרניים. בתגובה, הם זיהו שילוב של מבני נתונים, אופטימיזציות אלגוריתמיות וכן הלאה ששיפרו את מהירות הדגימה, ובסופו של דבר שיפרו את פעולת הדגימה לבדה בכ-50.4 פעמים, תוך שהן לוקחות את זמן הריצה לכל תקופה מ-34.6 ל-XNUMX שניות. הם גם מצאו שדגימה, בקצב מתאים, יכולה להיעשות במהלך מסקנות, תוך שיפור היעילות והביצועים האנרגטיים הכוללים, נקודה שהתעלמה מהספרות, מציין הצוות.      

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

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

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

המהירות של SALIENT הוערכה בשלושה מערכי נתונים סטנדרטיים ogbn-arxiv, ogbn-products ו-ogbn-papers100M, כמו גם בהגדרות של ריבוי מכונות, עם רמות שונות של fanout (כמות הנתונים שה-CPU יכין עבור ה-GPU), וכן על פני מספר ארכיטקטורות, כולל האחרונה המתקדמת ביותר, GraphSAGE-RI. בכל הגדרה, SALIENT התעלה על PyTorch Geometric, בעיקר במערך הנתונים הגדול ogbn-papers100M, המכיל 100 מיליון צמתים ולמעלה ממיליארד קצוות. כאן הוא היה מהיר פי שלושה, פועל על GPU אחד, מאשר קו הבסיס הממוטב שנוצר במקור עבור העבודה הזו; עם 16 GPUs, SALIENT היה מהיר יותר פי שמונה נוספים. 

בעוד שלמערכות אחרות היו הגדרות חומרה וניסויים שונות במקצת, כך שזו לא תמיד הייתה השוואה ישירה, SALIENT עדיין עמדה בביצועים טובים יותר. בין המערכות שהשיגו דיוק דומה, מספרי ביצועים מייצגים כוללים 99 שניות באמצעות GPU אחד ו-32 CPUs, ו-13 שניות באמצעות 1,536 CPUs. לעומת זאת, זמן הריצה של SALIENT באמצעות GPU אחד ו-20 מעבדים היה 16.5 שניות והיה רק ​​שתי שניות עם 16 GPUs ו-320 CPUs. "אם אתה מסתכל על המספרים בשורה התחתונה שעבודה קודמת מדווחת, זמן הריצה של 16 GPU שלנו (שתי שניות) מהיר בסדר גודל ממספרים אחרים שדווחו בעבר על מערך הנתונים הזה", אומר Kaler. החוקרים ייחסו את שיפורי הביצועים שלהם, בין השאר, לגישה שלהם לאופטימיזציה של הקוד שלהם עבור מכונה בודדת לפני המעבר להגדרה המבוזרת. Stathas אומר כי הלקח כאן הוא שבשביל הכסף שלך, "זה הגיוני יותר להשתמש בחומרה שיש לך ביעילות, ובקיצוניות שלה, לפני שתתחיל להגדיל למספר מחשבים", מה שיכול לספק חיסכון משמעותי בעלויות ובפליטת פחמן. שיכול לבוא עם הכשרת דוגמניות.

היכולת החדשה הזו תאפשר כעת לחוקרים להתמודד ולחפור עמוק יותר לתוך גרפים גדולים יותר ויותר. לדוגמה, רשת הביטקוין שהוזכרה קודם הכילה 100,000 צמתים; מערכת SALIENT יכולה להתמודד עם גרף גדול פי 1,000 (או שלושה סדרי גודל).

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

מחקר זה נתמך על ידי MIT-IBM Watson AI Lab ובחלקו על ידי מעבדת המחקר של חיל האוויר האמריקאי ומאיץ הבינה המלאכותית של חיל האוויר האמריקאי.

בול זמן:

עוד מ יועצי בלוקצ'יין