מתכנתי בינה מלאכותית אולי לא יולידו באגים רבים כמו שחששו מ- PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

מתכנתי בינה מלאכותית אולי לא יולידו כל כך הרבה באגים כפי שחששו

מודלים של לימוד מכונה המניעים כלים להשלמת קוד מהדור הבא כמו GitHub Copilot יכולים לעזור למפתחי תוכנה לכתוב קוד פונקציונלי יותר, מבלי להפוך אותו לפחות מאובטח.

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

In נייר המופץ באמצעות ArXiv, Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt, ו- Siddharth Garg מספרים כיצד הם העמידו את האבטחה של קוד המקור שנוצר בעזרת מודלים של שפה גדולים (LLMs) למבחן.

לימודי תואר שני כמו משפחת OpenAI GPT עברו הכשרה על כמויות אדירות של נתוני טקסט ציבוריים, או קוד מקור ציבורי במקרה של ה-Codex של OpenAI, צאצא של GPT והבסיס ל-Copilot של GitHub. ככאלה, הם עשויים לשחזר שגיאות שנעשו בעבר על ידי מתכנתים אנושיים, מה שממחיש את המילים "זבל פנימה, זבל החוצה". היה חשש שהכלים האלה יתעוררו ויציעו קוד גרוע למפתחים, שיכניסו את החומר לפרויקטים שלהם.

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

במובן מסוים, החוקרים כיבו את האש של עצמם. לפני כשנה, שניים מאותם מדעני מחשב תרמו למאמר שכותרתו "ישנים ליד המקלדת? הערכת האבטחה של תרומות הקוד של GitHub Copilot." העבודה הזו נמצאה כאחוז 40 מהפלט מ-Copilot כלל חולשות שעלולות להיות ניתנות לניצול (CWEs).

"ההבדל בין שני המסמכים הוא ש'Sleep at the Keyboard' הסתכלה על יצירת קוד אוטומטי לחלוטין (אין אדם בלולאה), ולא היו לנו משתמשים אנושיים להשוות מולם, אז לא יכולנו לומר דבר על איך האבטחה של Copilot's בהשוואה לאבטחת הקוד שנכתב על ידי אדם", אמר ברנדן דולן-גאוויט, מחבר שותף בעבודות וגם עוזר פרופסור במחלקה למדעי המחשב והנדסה ב-NYU Tandon, בדוא"ל אל הקופה.

"מאמר המחקר של המשתמש מנסה להתמודד ישירות עם אותם חלקים חסרים, על ידי כך שמחצית מהמשתמשים מקבלים סיוע מ-Codex (המודל שמניע את Copilot) והחצי השני כותב את הקוד בעצמם. עם זאת, הוא גם צר יותר מ'ישנו במקלדת': הסתכלנו רק על משימה אחת ושפה אחת (כתיבת רשימה מקושרת ב-C).

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

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

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

שנית, הם מבחינים שבעוד שהוכח כי LLMs מייצרים קוד באגי, גם בני אדם עושים זאת. הבאגים בנתוני אימון LLM הגיעו מאנשים.

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

מדעני המחשב של NYU גייסו 58 משתתפי סקר - סטודנטים לתואר ראשון ושני בקורסי פיתוח תוכנה - וחילקו אותם לקבוצת בקרה, שתעבוד ללא הצעות, וקבוצה מסייעת, שהיתה לה גישה למערכת הצעות מותאמת אישית שנבנתה באמצעות OpenAI API של Codex. הם גם השתמשו במודל Codex כדי ליצור 30 פתרונות לבעיות התכנות הנתונות כנקודת השוואה. קבוצת טייס אוטומטי זו תפקדה בעיקר כקבוצת ביקורת שנייה.

הן הקבוצות בסיוע והן בקרה הורשו להתייעץ עם משאבי אינטרנט, כגון Google ו-Stack Overflow, אך לא לבקש עזרה מאחרים. העבודה נעשתה ב-Visual Studio Code בתוך קונטיינר מבוסס אינטרנט שנבנה עם קוד פתוח אנוביס.

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

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

נראה ברור, אבל יש פרטים

"[לא מצאנו ראיות המצביעות על כך שסיוע בקודקס מגביר את שכיחות באגי האבטחה", קבע העיתון, תוך שהוא מציין כי גודל המדגם הקטן של המחקר אומר שיש צורך במחקר נוסף. "להיפך, יש כמה ראיות המצביעות על כך ש-CWEs/LoC [שורות קוד] יורדות עם סיוע Codex."

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

קשה להסיק זאת בביטחון סטטיסטי רב

עם זאת, הוא אמר, "הנתונים מראים שמצבם של משתמשי Copilot לא היה הרבה יותר גרוע."

דולן-גבית גם זהירה לגבי הממצאים.

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

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

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

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

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

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

צפו לעבודה נוספת בכיוון זה. ®

בול זמן:

עוד מ הקופה