בינה מלאכותית בקנה מידה
בניית מודל של בינה מלאכותית דורש כוח מחשוב גדול, ולפעמים נמשך ימים ואף שבועות ● הכותב מציע להתמודד עם האתגר באמצעות קוד שמפתחים על המחשב האישי והרצתו בצורה מבוזרת על גבי תשתית של קוברנטיס
בינה מלאכותית, למידת מכונה ולמידה עמוקה כבר מזמן הפכו לחלק מאוצר המילים כמעט בכל ארגון הרוצה להשתמש במידע שברשותו על מנת להפיק תובנות הנותנות יתרון עסקי. כיום ארגונים וחברות מאמנים מודלים ובונים רשתות נוירונים מלאכותיות כדי שאלו יפיקו לנו תובנות, אשר יסייעו לנו בקבלת ההחלטות העסקיות שלנו ולעיתים אף יקבלו את ההחלטות עבורנו.
תהליך בניית מודל של בינה מלאכותית אינו פשוט, והוא מצריך תהליך של איסוף מידע, תיוג וטיוב המידע, ביצוע תהליכי סטנדרטיזציה, ניקוי המידע, למידתו, מציאת מאפיינים בעלי חשיבות, בחירת ארכיטקטורה, אימון ותיקוף המודל הנלמד על מידע חדש.
תהליך זה יכול להשתנות אם מדובר על מידע מובנה או מידע לא מובנה (כגון טקסט, תמונות, וידיאו או שמע), אך ברמת העיקרון, ככל שיש יותר דוגמאות – סיכויי ההצלחה של האלגוריתם ללמוד תבניות עולה.
בעוד שלצורך הוכחת יכולת ראשונית המעבד או הכרטיס הגרפי של המחשב האישי שלכם ככל הנראה יספיקו, בשלב הוכחת היכולת המעשית, שבו נרצה להזין למודל מיליוני דוגמאות שאותם הוא ילמד, התהליך מתארך משמעותית ולעיתים נמשך ימים ושבועות שלמים, זמן יקר שאנחנו לא יכולים להרשות לעצמנו לבזבז בעידן התחרותי שבו אנו חיים.
אם הייתם רוצים לאמן מודל שיזהה התנהגות אלימה מתוך מידע המצולם במאות מצלמות אבטחה ומגיע בזמן אמת, עומד לרשותכם מחשב עם מעבד (CPU) חזק של 32 ליבות, היודע להריץ 64 תהליכים במקביל ומחובר אליו כרטיס עם מעבד גרפי (GPU) איכותי, נניח NVidia RTX 3090. בשלב הוכחת היכולת המעשית נרצה לתת לאלגוריתם או לרשת הנוירונים ללמוד תבניות מתוך מספר רב של דוגמאות, שיכולות להגיע גם למיליוני תצפיות. תהליך זה מורכב ודורש עיבוד רב, ולכן יימשך זמן רב, זמן יקר מאוד, שבסופו אנחנו יכולים להתאכזב מהתוצאות, מה שיגרום לנו להתחיל את תהליך האימון מחדש על בסיס אלגוריתם חדש, מאפיינים נוספים, או עדכון הפרמטרים של האלגוריתם.
תהליך אימון של אלגוריתם מושפע מפרמטרים שונים, כמו קצב הלמידה, מספר התצפיות שנטענות בכל מחזור לימוד, מספר השכבות הנסתרות, פונקציות הפעלה ועוד. מציאת הפרמטרים האופטימליים לרוב נעשית במקביל, כך שבפועל אנחנו מאמנים מספר רב של מודלים בבת אחת, פעולה זו דורשת כוח עיבוד רב, ולעיתים כתוצאה מחוסר ביכולת המחשוב חוקרי הנתונים מתבססים על חלק מהמידע כדי שהריצה תסתיים בזמן סביר, מה שמוביל למודלים פחות מדויקים.
תשתית קוברנטיס
כדי להתמודד עם כך, יש אפשרות לקחת קוד שמפתחים על המחשב האישי ולהריץ אותו בצורה מבוזרת על גבי תשתית של קוברנטיס. באמצעות מערכת ניהול ותזמון משימות האימון, הקוד שלהם (שלרוב כתוב בשפת (Python), נארז בתוך Docker container, ומתחיל לרוץ בצורה מבוזרת על גבי אשכול מחשבים (Cluster) בצורה שקופה, וככל שהאשכול גדול יותר, כוח העיבוד העומד לרשותם עולה. בסיום ריצת מאות משימות אימון עם פרמטרים שונים, המערכת אוספת את התוצאות מכולן כדי לבחור את המודל המוצלח והמדויק ביותר, תוך כדי חיסכון של שעות ולפעמים ימים לעומת אימון על מחשב בודד.
יתרה מזאת, ליכולות הביזור יש יתרונות משמעותיים בשלל תהליכים שאליהם נדרשים על מנת לחקור ולעבד נתוני עתק (Big Data), באמצעות כלים דוגמת Apache Spark, וליישם עליהם יכולות ניתוח מתקדמות.
הפלטפורמה מאפשרת חקר נתונים, מציאת מאפיינים והפעלת אלגוריתמיקה מתקדמת בעוד שכל ענייני התשתית והמהירות מטופלים על ידי הפלטפורמה. בנוסף, שימוש בתשתית מבוססת קוברנטיס מאפשרת למקבל משימות בקנה מידה על גבי הכרטיסים הגרפים (vGPU) של חברת אנבידיה (Nvidia), הידועים בשל הביצועים הטובים שלהם ותמיכת הספריות הרבות בקהילת המפתחים.
הדבר החשוב ביותר כאן הוא, שהמפתחים או חוקרי הנתונים מתעסקים במהות החשובה של הפקת התובנות העסקיות ומשאירים את כל ענייני ניהול התשתית לפלטפורמה, בעוד שהפלטפורמה יודעת לנצל בצורה הטובה ביותר את משאבי הסביבה שעליה היא מותקנת.
הכותב הוא מהנדס נתונים בחברת קליידו מקבוצת בינת תקשורת.
תגובות
(0)