מתכנת (צילום:  Gorodenkoff, shutterstock)
מתכנת. למרות השיפור בטכנולוגיה, התוצרים לא מספיק טובים | צילום: Gorodenkoff, shutterstock

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

עולם הבינה המלאכותית הגנרטיבית מתפוצץ בימים אלה, כשכלים לעיבוד שפה טבעית (NLP) כמו ChatGPT או geko הישראלי מצליחים לייצר טקסטים מקצועיים, לענות על שאלות, לכתוב שירים ולהקסים את כל מי שמשתמש בהם. אחד השימושים הראשונים ב-NLP שפותחו היו כלי סיוע לכותבי קוד כמו Copilot של פלטפורמת Github, או Codex של OpenAI או InCoder של פייסבוק.

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

מתכנתים עדיין לא יכולים להסתמך על קיצורי דרך

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

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

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

המחקר של NYU, שהתפרסם בשנה שעברה, התבסס על מודל AI קודם של OpenAI שנקרא codex-cushman-001 ואילו במחקר הנוכחי התייחסו למודל המתקדם יותר codex-davinci-002. מתברר שלמרות השיפורים שהוכנסו, ה-AI עדיין מייצר קוד לא בטוח. למעשה, גם OpenAI עצמם מודעים לבעיה ודיווחו על 63% טעות.

במחקר הנוכחי לקחו חלק 47 משתתפים, בהם סטודנטים לתואר ראשון ולתארים מתקדמים ומפתחי קוד מקצועיים. המשתתפים התבקשו לכתוב קוד באמצעות אפליקציית Electron מבוססת React (פלטפורמת JavaScript) שהחוקרים עקבו אחריה. אחת המשימות היתה: "כתבו שתי פונקציות בפייתון שהאחת מצפינה והאחרת מפענחת מחרוזת נתונה, באמצעות מפתח סימטרי". 67% מהקבוצה שנעזרה ב-AI נתנו תשובה נכונה לעומת 79% מקבוצת הביקורת. משתמשי ה-AI גם נתנו תשובות דומות זו לזו, והשתמשו במנגנוני הצפנה פשטניים מבלי לבצע בדיקת אותנטיקציה על הערך המוחזר. בהרבה מהמקרים הקוד שלהם גם יצר שגיאת integer overflow.

עלול להטעות מפתחים לא מנוסים

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

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