יחידה יבמ מחקר של בינה מלאכותית (AI) הציג מערך נתונים של 14 מיליון דוגמאות לפיתוח מודלים של למידת מכונה שיכולים לסייע במשימות תכנות. מערך נתונים בשם פרויקט CodeNet, לוקח את שמו מ-ImageNet, מאגר התמונות המפורסם שחולל מהפכה בראייה ממוחשבת ובלמידה עמוקה.
מתכנתים מגלים בעיות חדשות וחוקרים פתרונות שונים, תוך שימוש במנגנונים רבים של חשיבה מודעת ותת-מודע. רוב האלגוריתמים של למידת מכונה דורשים משימות מוגדרות היטב וכמויות גדולות של נתונים מוערים כדי לפתח מודלים שיכולים לפתור את אותן בעיות.
מאמץ רב הושקע ביצירת מערכי נתונים ואמות מידה לפיתוח והערכה של מערכות בינה מלאכותית לקוד על ידי קהילת המומחים. אבל, לאור האופי היצירתי והפתוח של פיתוח תוכנה, קשה מאוד ליצור את מערך הנתונים המושלם לתכנות. עם Project CodeNet, חוקרי IBM ניסו ליצור מערך נתונים רב תכליתי שניתן להשתמש בו כדי לאמן מודלים של למידת מכונה במגוון משימות. היוצרים של CodeNet מתארים אותו כ"מערך נתונים בקנה מידה גדול מאוד, מגוון ואיכותי להאצת התקדמות אלגוריתמית ב-AI עבור קוד."
מערך הנתונים מכיל 14 מיליון דוגמאות של 500 מיליון שורות קוד שנכתבו ב-55 שפות תכנות שונות. דוגמאות קוד התקבלו מכמעט 4000 משימות שהוגשו שפורסמו בפלטפורמות הקידוד המקוונות של AIZU ו-AtCoder. דוגמאות הקוד כוללות גם תשובות נכונות וגם לא נכונות למשימות הנתונות.
מעניין גם:
- האבל נכנסה למצב בטוח עקב שגיאת תוכנה במחשב המובנה
- בעיה נוספת עבור CD Projekt: האקרים מאיימים להדליף את קודי המקור של משחקים לרשת
אחת התכונות המרכזיות של CodeNet היא כמות ההערות שנוספו לדוגמאות. לכל אחת ממשימות הקידוד הכלולות במערך הנתונים יש תיאור טקסטואלי, כמו גם מגבלות זמן וזיכרון של מעבד. כל הגשת קוד מכילה תריסר פיסות מידע, כולל שפה, תאריך הגשה, גודל, זמן ביצוע, קבלה וסוגי שגיאות. חוקרי IBM גם עשו מאמצים רבים כדי להבטיח שמערך הנתונים יהיה מאוזן על פני מגוון פרמטרים, כולל שפת תכנות, קבילות וסוגי שגיאות.
CodeNet אינו מערך הנתונים היחיד לאימון מודלים של למידת מכונה במשימות תכנות. אבל יש כמה מאפיינים המייחדים אותו. הראשון הוא הגודל העצום של מערך הנתונים, כולל מספר הדגימות ומגוון השפות. אבל אולי חשוב יותר הם המטא נתונים שמגיעים עם דוגמאות הקוד. ההערות העשירות שנוספו ל- CodeNet הופכות אותו למתאים למגוון של משימות, בניגוד למערכי נתונים אחרים של קידוד שמתמחים במשימות תכנות ספציפיות.
זה נשף נפש.
בעזרת GPT-3 בניתי גנרטור פריסה בו אתה פשוט מתאר כל פריסה שאתה רוצה, והוא יוצר עבורך את קוד JSX.
מה תמונה.twitter.com/w8JkrZO4lk
- שריף שמם (@sharifshameem) 13 ביולי 2020
ישנן מספר דרכים להשתמש ב- CodeNet. אחד מהם הוא תרגום שפה. מכיוון שכל משימת קידוד במערך הנתונים מכילה ייצוגים של שפות תכנות שונות, מדעני נתונים יכולים להשתמש בה כדי לבנות מודלים של למידת מכונה המתרגמים קוד משפה אחת לאחרת. זה יכול להיות נוח לארגונים שרוצים להעביר קוד ישן לשפות חדשות ולהפוך אותם לנגישים לדורות חדשים של מתכנתים.
קרא גם:
- IBM הציגה את הטכנולוגיה הראשונה בעולם לייצור שבבים 2nm
- IBM מפתחת בינה מלאכותית כדי להמציא אנטיביוטיקה חדשה
מסורות ותורשה צריכים לשחק יחד עם חשיבה שונה, עם הדורות הצעירים ביותר של אלגוריתמים עצביים ושיטות ML של הצבת בעיות, ומשפרים זה את זה.
עם הזמן רמת המתכנתים תרד עוד יותר (בהשוואה לעכשיו). כלומר, ניתן יהיה לכתוב קוד אלכסוני ועקום ב"שפת החרא". ואז המכונה תעשה אופטימיזציה, וניתן יהיה לקבל קוד אופטימלי של מתכנת אסמבלר מקצועי (או אפילו יותר טוב).