הכירו את הטכנולוגיה שתעשה בשבילכם את עבודת הדיבוג הסיזיפית

טכנולוגיית Machine Programming היא הרחבה של AI ויכולה לענות על המחסור באנשי תוכנה. מה אפשר לעשות איתה והאם היא תשפיע על מספר המשרות בתחום?

תמונה: Pixabay

מאת מוטי אלון, Product Security Expert אינטל

החזון של אוטומציה בתחום התכנון אינו דבר חדש. אי שם בשנות ה-50, כאשר המהנדסים בחברת IBM גמרו להמציא את Fortran ואת מחשבי ה-Mainframe, הם פרסמו לראשונה את החזון במאמר “The FORTRAN Automatic Coding System”. מאז עברו כמעט 70 שנה, ולראשונה נראה שיש בשורה למהנדסי תוכנה, שיוכלו להתעסק בחלק היצירתי יותר של המקצוע, על חשבון התעסקות בחלקים הסיזיפיים והמתסכלים כמו בדיקות ו-Debugging.

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

MP מבוססת על שילוב בין מודלים ברשתות ניורונים המשתמשים ב-AI ובין Program Synthesis, שמהווה את הפיתוח האחרון באוטומציה של ייצור קוד, הפיכת הוראות בשפה טבעית (לדוגמה: עברית-אנגלית) ומידע לא מובנה (כמו תמונות ושרטוטים), לקוד שמובן על ידי המחשב.

השלב הראשון:  זיהוי קטעי קוד שפותרים את אותה בעיה

אחת המערכות הראשונות שפותחו אצלנו בתחום ה-MP הייתה MISIM – Machine Inferred Code Similarity. המערכת נועדה להשוות קטעי קוד שונים ולהחליט אם הם פותרים את אותה בעיה או לא. האלגוריתם – שפותח בשיתוף פעולה אקדמי עם אוניברסיטת פנסילבניה, המכון הטכנולוגי של ג’ורג’יה ארצות הברית והמכון הטכנולוגי של מסצ’וסטס (MIT) – מזהה את החלקים החשובים סמנטית להרצה של הקוד שנכתב, מתעלם מאילוצים של המערכת ושפת התכנות, ועל ידי זיהוי של קטעים בקוד מבין את ההקשר שבו נכתב הקוד ומצליח לפתור את הדו משמעות ולאפיין את הבעיה שהקוד אמור לפתור.

MISIM נבחנה על דאטה סט שכלל 328 אלף תוכנות שנכתבו כדי לפתור 313 בעיות, והושוותה לתוכנות המובילות בתחום. היא השיגה תוצאות יותר טובות פי למעלה מ-40 בזיהוי נכון של תוכנות, בהשוואה למערכות מקבילות.

התחנה הבאה: זיהוי באגים

אבל זה היה כבר לפני שנתיים. הצוות המשיך ופיתח את ה-Control Flag – מערכת לזיהוי באגים בצורה אוטומטית. הפיתוח מתבסס על שימוש בתכונות של MISIM כדי לבנות את הרשת שמייצגת את הקוד בצורה אופטימלית, ובשימוש בטכנולוגיה חדשה שנקראת Zero-Positive-Learning.

מדובר למעשה בהרחבה של טכנולוגיות למידת מכונה בשילוב יכולות ניהול מידע, המאפשרת לבנות מודל לזיהוי תבניות לא חוקיות (Anomaly Pattern Detection) בקבוצות מידע, ללא צורך באנומליות בזמן הלימוד. על ידי שימוש ב-Zero Positive Learning, יכולה התוכנה Control Flag לבנות מודל לזיהוי אנומליות בקוד בלי לקבל דוגמאות של באגים נפוצים ובלי לתת למחשב אפשרות ללמוד משגיאות העבר.

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

Control Flag נוסתה על cURL והצליחה לאתר אנומליות שהצביעו על באג שלא זוהה בעבר ונפתר בזכותה.

לאן הולכים מכאן?

Machine Programming אמנם מצמצת את העובדה של מהנדסי התוכנה, אבל לא תגרע ממספר המשרות בתחום, אלא להיפך – הצפי הוא למיליוני מהנדסים חדשים, אלא שאופי העבודה שלהם יהפוך להיות יצירתי יותר, וסיזיפי פחות.

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

הכתבה בחסות אינטל

ביום מעבדות המחקר (Intel Labs) האחרון, חשפה אינטל את הפיתוח האחרון שלה בעולם ה-machine programming, ה-ControlFlag. תוכנה זו בודקת את הקוד ומגלה באגים וטעויות בכתיבתו. המערכת מבוססת על קיבוץ של מידע על שפות תכנות, קומפילרים ומערכות מחשב. בנוסף, המערכת משתמשת במודל בינה מלאכותית הלומד תבניות תכנות נכונות ויודע לזהות חריגות מהתבניות הרצויות או הופעת תבניות "לא סבירות" ושגיאות.
היא אפילו לומדת את סגנון הכתיבה של המתכנת ובודקת גם אותו.
מה יעשו מתכנתות ומתכנתים שהתפנה להם כ-50% מזמנם שהוקדש בעבר לאיתור תקלות תוכנה (כך לפי הערכה)? יעקבו אחר החידושים הנוספים שאינטל מכינה להם ואחר משרות שוות בתחום התוכנה באינטל ויש לנו כמה הזדמנויות תעסוקתיות שלא כדאי לפספס. פרטים נוספים פה.

כתב אורח

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

הגב

4 תגובות על "הכירו את הטכנולוגיה שתעשה בשבילכם את עבודת הדיבוג הסיזיפית"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
משתמש אובונטו
Guest

אפשר לצרף את זה למתכנתים האוטומטיים כמו VB, מג’יק, פאוור בילדר משנות ה90. הרי בזכותם לא צריך יותר מתכנתים ויש תוכנות שכותבות את הקוד לפי דרישה.

מממ
Guest

מצחיק (או עצוב) שציינת את הטכנולוגיות האלו ביחד עם שנות -90. כל אלו עדיין בשימוש במשרדי ממשלה כולל פיתוח של מערכות חדשות על גביהן…

מממ
Guest

אצה טועה ידידי!!!

נועם
Guest

כתוב AI אז זה בוודאי מוצלח.

wpDiscuz

תגיות לכתבה: