כתבת: אור מנור. 08.01.2023
ה-ALPHACODE של DEEPMIND עולה על מתכנתים אנושיים רבים באתגרי תוכנה מסובכים
בתמונה המצורפת : איור קונספטואלי של קוד על ערימות אנכיות של קטעי קוד המגיעים ממערכת הבינה המלאכותית AlphaCode, בעוד שקטעי הקוד הסגולים נכתבו על ידי בני אדם שניסו לפתור בעיות דומות. DEEPMIND.
תוכנה מנהלת את העולם. שולטת בסמארטפונים, בנשק גרעיני ובמנועי מכוניות. אבל יש מחסור עולמי במתכנתים.
לא יהיה נחמד אם מישהו יוכל להסביר מה הוא רוצה שתוכנית תעשה, ומחשב יוכל לתרגם את זה לשורות קוד ?
מערכת חדשה של בינה מלאכותית (AI) בשם AlphaCode מקרבת את האנושות צעד אחד יותר לחזון זה, על פי מחקר חדש, חוקרים טוענים שהמערכת - ממעבדת המחקר DeepMind, חברה בת של **Alphabet Inc **(חברת האם של גוגל) - עשויה יום אחד לסייע למקודדים מנוסים, אבל כנראה לא תוכל להחליף אותם.
"זה מאוד מרשים, הביצועים שהם מסוגלים להשיג בכמה בעיות די מאתגרות", אומר ארמנדו סולאר-לזמה, ראש קבוצת התכנות בעזרת מחשבים במכון הטכנולוגי של מסצ'וסטס.
מערכת ALPHACODE חורגת מנושא כתיבת קוד AI: CODEX, מערכת שפורסמה בשנת 2021 ע"י מעבדת המחקר ללא מטרות רווח OPENAI. המעבדה כבר פיתחה את GPT-3, "מודל שפה " המיומן בחיקוי ופירוש טקסט אנושי לאחר שעבר הכשרה על מיליארדי מילים מספרים דיגיטליים, מאמרי ויקיפדיה ודפים אחרים של טקסט באינטרנט.
ע"י כוונון עדין של GPT-3 על יותר מ-100 גיגה-בייט של קוד מ-GITHUB, מאגר תוכנה מקוון, OPENAI הגיע עם CODEX. התוכנה יכולה לכתוב קוד כאשר תתבקש עם תיאור יומיומי של מה שהיא אמורה לעשות - למשל ספירת התנועות במחרוזת טקסט. אבל כרגע, היא מתפקדת בצורה גרועה כאשר מתמודדת עם בעיות מסובכות.
היוצרים של AlphaCode התמקדו בפתרון הבעיות הקשות הללו. כמו חוקרי ה-Codex, הם התחילו בהזנת מודל שפה גדול בהרבה גיגה-בייט של קוד מ-GitHub, רק כדי להכיר אותו עם תחביר קידוד ומוסכמות. לאחר מכן, הם אימנו אותו לתרגם תיאורי בעיות לקוד, תוך שימוש באלפי בעיות שנאספו מתחרויות תכנות. לדוגמה, בעיה עשויה לבקש מתוכנית לקבוע את מספר המחרוזות הבינאריות (רצפים של אפסים ואחדים) באורך n שאין להם אפסים עוקבים.
כאשר מוצגת בפני בעיה חדשה, AlphaCode מייצרת פתרונות קוד מועמדים (ב-Python או C++) ומסננת את הרעים. אבל בעוד שחוקרים השתמשו בעבר במודלים כמו Codex כדי ליצור עשרות או מאות מועמדים, DeepMind הביא ל-AlphaCode עד יותר ממיליון.
כדי לסנן אותם, AlphaCode שומרת תחילה רק את 1% מהתוכניות שעוברות מקרי מבחן הנלווים לבעיות. כדי לצמצם עוד יותר את השדה, הוא מקבץ את השומרים על סמך הדמיון של התפוקות שלהם לתשומות מורכבות. לאחר מכן, הוא מגיש תוכניות מכל אשכול, בזו אחר זו, החל מהאשכול הגדול ביותר, עד שהוא עולה על אחד מוצלח או מגיע ל-10 הגשות (בערך המקסימום שבני אדם מגישים בתחרויות). הגשה מאשכולות שונים מאפשרת לו לבדוק מגוון רחב של טקטיקות תכנות. זה השלב החדשני ביותר בתהליך של AlphaCode, לפי קווין אליס, מדען מחשבים באוניברסיטת קורנל שעוסק בקידוד AI.
לאחר אימון, AlphaCode פתר כ-34% מהבעיות שהוקצו , לפי DeepMind . (במדדים דומים, Codex השיג הצלחה חד ספרתית באחוז).
כדי להמשיך ולבחון את יכולתה, DeepMind הכניסה את AlphaCode לתחרויות קידוד מקוונות. בתחרויות עם לפחות 5,000 משתתפים, המערכת השיגה ביצועים טובים יותר מ-45.7% מהמתכנתים. החוקרים גם השוו את התוכניות שלה לאלו שבבסיס הנתונים של ההדרכה שלה ומצאו שהיא לא שכפלה חלקים גדולים של קוד או היגיון. זה יצר משהו חדש - יצירתיות מפתיעה.
"זה ממשיך להיות מרשים עד כמה שיטות למידת מכונה מצליחות כאשר אתה מגדיל אותן", הוא אומר. התוצאות "מדהימות", מוסיף Wojciech Zaremba, מייסד שותף של OpenAI ומחבר שותף של מאמר Codex . "לקידוד באמצעות בינה מלאכותית עשויות להיות יישומים מעבר לזכייה בתחרויות."
לפי יוג'יה לי, מדען מחשבים ב-DeepMind
זה יכול להוביל לעבודת יצירת תוכנה, שחרור מפתחים מעבודה ברמה גבוהה יותר או מופשטת יותר, או שזה יכול לעזור למתכנתים ליצור תוכניות פשוטות. דיוויד צ'וי, מחבר מחקר נוסף ב-DeepMind, מדמיין להריץ את המודל הפוך: תרגום קוד להסברים על מה שהוא עושה, מה שיכול להועיל למתכנתים המנסים להבין את הקוד של אחרים.** "יש הרבה יותר דברים שאתה יכול לעשות עם מודלים שמבינים קוד באופן כללי", הוא אומר.
לעת עתה, DeepMind רוצה לצמצם את השגיאות של המערכת. גם אם AlphaCode מייצרת תוכנית פונקציונלית, היא עושה לפעמים טעויות פשוטות, כמו יצירת משתנה ואי שימוש בו.
יש עוד בעיות. AlphaCode דורשת עשרות מיליארדי טריליוני פעולות בכל בעיה - כוח מחשוב שיש רק לחברות הטכנולוגיה הגדולות ביותר. הבעיות שזה פתר בתחרויות התכנות המקוונות היו צרות ועצמאיות.
עם זאת
"תכנות בעולם האמיתי דורש לעתים קרובות ניהול חבילות קוד גדולות במספר מקומות, מה שדורש הבנה הוליסטית יותר של התוכנה"
לפי Solar-Lezama.
המחקר גם מציין את הסיכון לטווח ארוך של תוכנה שמשפרת את עצמה באופן רקורסיבי. כמה מומחים אומרים ששיפור עצמי כזה יכול להוביל לבינה מלאכותית סופר אינטליגנטית שתשתלט על העולם.
למרות שהתרחיש הזה אולי נראה רחוק, החוקרים עדיין רוצים שתחום קידוד הבינה המלאכותית יקבע מעקות בטיחות, בלמים ואיזונים מובנים.
"גם אם סוג זה של טכנולוגיה הופכת לסופר-מוצלחת, היית רוצה להתייחס אליו כמו שאתה מתייחס למתכנת בתוך ארגון", אומרת סולאר-לזמה. "אתה אף פעם לא רוצה ארגון שבו מתכנת יחיד יכול להפיל את כל הארגון."