AlphaCode של DeepMind כובש קידוד, מבצע כמו גם בני אדם PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

ה-AlphaCode של DeepMind כובש קידוד, ביצועים כמו בני אדם

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

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

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

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

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

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

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

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

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

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

שפה לקוד

AlphaCode הוא רק הניסיון האחרון לרתום AI ליצירת תוכניות טובות יותר.

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

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

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

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

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

קידוד AI

AlphaCode נקטה בגישה זו.

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

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

הראשון הוא נתוני אימון. בנוסף לאימון AlphaCode בקוד Github, צוות DeepMind בנה מערך נתונים מותאם אישית מ-CodeContests משני מערכי נתונים קודמים, עם למעלה מ-13,500 אתגרים. כל אחד מהם הגיע עם הסבר על המשימה שעל הפרק, ופתרונות פוטנציאליים רבים במספר שפות. התוצאה היא ספרייה עצומה של נתוני אימון המותאמים לאתגר העומד על הפרק.

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

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

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

המערכת עבדה בצורה מפתיעה. כאשר מאותגרים עם קבוצה חדשה של בעיות, AlphaCode פולטת פתרונות פוטנציאליים בשתי שפות מחשוב - Python או C++ - תוך כדי ניכוש של שפות שערורייתיות. בהתמודדות מול יותר מ-5,000 משתתפים אנושיים, הבינה המלאכותית השיגה ביצועים טובים יותר בכ-45% מהמתכנתים המומחים.

דור חדש של קודני AI

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

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

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

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

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

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

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

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

תמונת אשראי: Deepmind

בול זמן:

עוד מ רכזת הסינגולריות