מדע נתונים מבוסס GPU (לא למידה עמוקה) עם RAPIDS

צומת המקור: 997659

מדע נתונים מבוסס GPU (לא למידה עמוקה) עם RAPIDS

כיצד לנצל את העוצמה של ה- GPU שלך למדעי נתונים רגילים ולמידת מכונות גם אם אינך עושה הרבה למידת עומק.



תמונת הכותרת
מקור תמונהpixabay (תמונה חינם)

האם אתה מחפש "מדע נתונים מבוסס GPU"?

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

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

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

אתה שומע על העוצמה המדהימה ועל יכולת החישוב המהירה של מערכות GPU כמו אלה מ- NVidia לכל סוגי היישומים התעשייתיים והמדעיים.

ואתה ממשיך לחשוב - "מה יש בשבילי? כיצד אוכל לנצל את החלקים החזקים האלה של מוליכים למחצה בזרימת העבודה הספציפית שלי? "

אתה מחפש מדע נתונים מבוסס GPU.

אחת האפשרויות הטובות ביותר (והמהירות ביותר) להערכת גישה זו היא שימוש בשילוב של ענן שבתאי + אֶשֶׁדתן לי להסביר בפירוט…

מעבד GPU בפולקלור AI/ML מיועד בעיקר ללמידה מעמיקה

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

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

אם כן, השאלה החשובה היא: האם אנו יכולים למנף את העוצמה של GPU ומחשוב מבוזר עבור עבודות עיבוד נתונים רגילות?



מקור תמונה: המחבר יצר קולאז 'מתמונות חינם (pixabay)

 

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

המערכת האקולוגית המהירה של RAPIDS

 
 
השמיים חבילת RAPIDS של ספריות תוכנה וממשקי API לתת לך - מדען נתונים רגיל (ולאו דווקא מתרגל למידה מעמיקה) - את האפשרות והגמישות לביצוע צינורות מדעי הנתונים והקצה מקצה לקצה לחלוטין על מעבדי GPU.

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

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



מקור תמונה: המחבר יצר קולאז '

 

שלושת המרכיבים הבולטים (והפיטוניים) - המעניינים במיוחד את מדעני הנתונים הנפוצים - הם,

  • CuPy: ספריית מערכים המופעלת על ידי CUDA הנראית ומרגישה ממש כמו Numpy, תוך שימוש בספריות CUDA שונות, למשל, cuBLAS, cuDNN, cuRand, cuSolver, cuSPARSE, cuFFT ו- NCCL כדי לנצל את מלוא היתרונות של הארכיטקטורה של GPU מתחת.
  • CuDF: זוהי ספריית GPU DataFrame לטעינת, צבירה, צירוף, סינון וניטור נתונים באמצעות API דמוי פנדה. מהנדסי נתונים ומדעני נתונים יכולים להשתמש בו כדי להאיץ את זרימת המשימות שלהם בקלות באמצעות מעבדי GPU חזקים מבלי ללמוד מעולם את האגוזים והברגים של תכנות CUDA.
  • CuML: ספרייה זו מאפשרת למדעני נתונים, אנליסטים וחוקרים להריץ אלגוריתמים מסורתיים/ קלאסיים של ML ומשימות עיבוד נלוות, תוך ניצול מלא של כוחו של GPU. מטבע הדברים, זה משמש בעיקר עם מערכי נתונים טבלאריים. תחשוב על Scikit-learn ומה הוא יכול לעשות עם כל מאות ליבות Cuda ו- Tensor בכרטיס ה- GPU שלך! ברמז לכך, ברוב המקרים, ה- Python API של cuML תואם את זה של Scikit-learn. יתר על כן, הוא מנסה להציע תמיכה מרובת GPUים ורב-צומת-GPU by משתלב בחינניות עם לוּחַ מַחווָנִיםבכל מקום שהוא יכול לנצל את העיבוד המבוזר האמיתי/ מחשוב אשכולות.


האם אנו יכולים למנף את העוצמה של GPU ומחשוב מבוזר עבור עבודות עיבוד נתונים רגילות ולמידת מכונה עם נתונים מובנים?

האם זה שונה משימוש באפצ'י ספארק?

 
 
אתה עשוי לשאול כיצד עיבוד הנתונים המופעל על ידי GPU שונה משימוש ב- Apache Spark. למעשה, ישנם כמה הבדלים עדינים, ורק לאחרונה, עם Spark 3.0, GPUs הם משאב רגיל לעומסי עבודה של Spark.

האצת Apache Spark 3.0 עם מעבדי GPU ו- RAPIDS | בלוג מפתחים של NVIDIA
 

אין לנו זמן או מקום לדון בהבדלים הייחודיים של גישת מדעי הנתונים המופעלת על ידי GPU לעומת משימות Big Data המתאימות במיוחד ל- Apache Spark. אבל שאל את עצמך את השאלות האלה וכנראה שתבין את ההבדל הדק,

"בתור מדען נתונים שמדגם עסקאות כלכליות וניהול תיקים, אני רוצה לפתור א מערכת משוואות לינאריות עם 100,000 משתנים. האם אני משתמש בספריית אלגברה לינארית טהורה או באפצ'י ספארק? "

"כחלק מצינור דחיסת תמונות, אני רוצה להשתמש פירוק ערך יחיד על מטריצה ​​גדולה של מיליוני ערכים. האם Apache Spark היא בחירה טובה לכך? "

גודל הבעיה הגדול לא תמיד אומר שמערכת המערכת האקולוגית של Apache Spark או Hadoop. חישוב גדול אינו שווה ל- Big Data. בתור מדען נתונים מעוגל, אתה צריך לדעת את שניהם כדי להתמודד עם כל מיני בעיות.

RAPIDS מתמקד במיוחד חשיפת מקביליות GPU ותכונות מהירות זיכרון ברוחב פס גבוה באמצעות ממשקי API של Python.

מה אנו מציגים במאמר זה?

 
 

דוגמאות חדות של CuPy ו- ​​CuML בלבד

 
אז במאמר זה נדגים דוגמאות חדות של CuPy ו- ​​CuML,

  • כיצד הם משווים (במהירות) עם פונקציות/ אומדני Numpy ו- Scikit-leer המתאימים
  • כיצד משנה הנתונים/גודל הבעיה בהשוואת המהירות הזו.

דוגמאות CuDF במאמר מאוחר יותר

 
למרות שהדוגמאות להנדסת נתונים הדומות לעיבוד הנתונים של פנדה מעניינות מאוד מדעני נתונים רבים, נסקור את דוגמאות ה- CuDF במאמר מאוחר יותר.

מהי פלטפורמת החומרה מבוססת ה- GPU שלי?

 
אני משתמש ב- ענן שבתאי Tesla T4 GPU מופע מכיוון שזה ממש 5 דקות של עבודה לסובב א משאב מחשוב מלא ונטען (עם ספריות DS ו- AI) בענן כי כל מדעי הנתונים שלי עובדים עם השירות שלהם. כל עוד אני לא עולה על 10 שעות של שימוש במחברת Jupyter בחודש, זה בחינם! אם אתה רוצה לקרוא עוד על השירות שלהם,

Saturn Cloud Hosted השיקה: מדעי הנתונים של GPU לכולם!

מחשוב GPU הוא העתיד של מדעי הנתונים. חבילות כגון RAPIDS, TensorFlow ו- PyTorch מאפשרות מהירות ברקים ...

מלבד שיש את GPU של טסלה T4, מדובר במעבדה של 4 ליבות אינטל (R) Xeon (R) Platinum 8259CL @ 2.50GHz עם 16 ג'יגה-בייט זיכרון RAM ו -10 ג'יגה-בתים מתמשכים. אז זוהי התקנה רגילה למדי מבחינת תצורה של חומרה (כונן קשיח מוגבל בגלל השכבה הפנויה) כלומר לכל מדען נתונים יש ברשותו חומרה מסוג זה. הגורם המבדיל היחיד הוא הנוכחות של ה- GPU והגדרת כל ספריות CUDA ו- Python בצורה נכונה כך שחבילת RAPIDS תעבוד ללא שיהוק.


גודל הבעיה הגדול לא תמיד אומר שמערכת המערכת האקולוגית של Apache Spark או Hadoop. חישוב גדול אינו שווה ל- Big Data. בתור מדען נתונים מעוגל, אתה צריך לדעת את שניהם כדי להתמודד עם כל מיני בעיות.

פתרון מערכת משוואות לינאריות

 
אנו יוצרים מערכות לינאריות של משוואות בגדלים משתנים ומשתמשות ב- Numpy (ו- CuPy) linalg.solveשגרה לפתור את זה עם הקוד הבא,



והקוד משתנה באות אחת (במספר קריאות) ליישום CuPy!



שים לב גם כיצד אנו יכולים ליצור מערכי CuPy ממערכים Numpy כארגומנטים.

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



פירוק ערך יחיד

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



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

נחזור לבסיס: היפוך מטריקס

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



טיפול בבעיית K פירושו בעיית אשכולות

 
לאחר מכן, אנו שוקלים בעיית למידה ללא פיקוח של צביר באמצעות אלגוריתם הכל כך מוכר k. כאן אנו משווים פונקציית CuML עם אומדן מקביל מחבילת Scikit-learn.

רק לעיון, להלן השוואת ה- API בין שני אומדנים אלה.



מקור תמונהScikit-ללמוד ו אתר CuML (פרויקטים של קוד פתוח)

 

להלן התוצאה עבור מערך נתונים עם 10 תכונות/ממדים.



והנה התוצאה של ניסוי נוסף עם מערך נתונים בן 100 תכונות.



ברור שגם גודל המדגם (מספר השורות) וגם המימדיות (מספר העמודות) היו חשובים לאופן הביצועים של התאוצה המבוססת על GPU.

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

 
מי יכול להתעלם מבעיית רגרסיה לינארית להשוואת מהירות תוך התמודדות עם מערכי נתונים טבלאריים? בעקבות הקצב כמו בעבר, אנו משתנים את גודל הבעיה - הפעם הן מספר הדגימות והן הממדים בו זמנית - ומשווים את הביצועים של CuML LinearRegression מעריך את זה המתקבל מאורסת Scikit-learn.

ציר ה- X באיור הבא מייצג את גודל הבעיה-מ -1,000 דגימות/50 תכונות ל -20,000 דגימות/1000 תכונות.

שוב, מעריך CuML מתפקד הרבה יותר טוב ככל שמורכבות הבעיה (גודל המדגם והמידות) גדלה.



<br> סיכום

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



מקור תמונה: נוצר על ידי המחבר עם תמונות חופשיות של Pixabay (Link-1Link-2Link-3)

 

השתמשנו ב- ענן שבתאי מופע מבוסס טסלה T4 עבור התקנה קלה, חינמית ומהירה והראה כמה תכונות של ספריות CuPy ו- ​​CuML והשוואות ביצועים של אלגוריתמים בשימוש נרחב.

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

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

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

תודה למל.

 
מְקוֹרִי. פורסם מחדש באישור.

מידע נוסף:

מקור: https://www.kdnuggets.com/2021/08/gpu-powered-data-science-deep-learning-rapids.html

בול זמן:

עוד מ KDnuggets