דלג לתוכן
English

Jericho ו-TextWorld

הגדרה

⁦Jericho⁩ ו-⁦TextWorld⁩ הן שתי סביבות-קוד-פתוח של ⁦Microsoft Research⁩ לאימון ולבדיקת סוכני בינה מלאכותית במשחקי-הרפתקה טקסטואליים: ⁦TextWorld⁩ (2018) מייצרת משחקים חדשים לפי מידה, ו-⁦Jericho⁩ (2019) מריצה משחקים אמיתיים וותיקים, ובהם ⁦Zork⁩, כמבחן-יכולת לסוכני למידת חיזוק.

💡 דוגמה

דמיינו שרוצים לבדוק אם תוכנת ⁦AI⁩ מבינה שפה, לא רק יודעת לזהות תמונות. ⁦Jericho⁩ נותן לה לשחק ב-⁦Zork I⁩ המקורי מ-1980, ובודק כמה היא מתקדמת. ⁦TextWorld⁩, לעומת זאת, מייצר אלפי משחקי-אימון קטנים בדיוק בגודל ובקושי שרוצים, כדי שהסוכן יתאמן בהדרגה לפני שהוא בכלל מגיע למשחק אמיתי.

שתי סביבות, אותם חוקרים, שאלה אחת

⁦Jericho⁩ ו-⁦TextWorld⁩ נולדו מתוך אותה קבוצת-מחקר בקירוב: חוקרי ⁦Microsoft Research⁩, ובהם ⁦Marc-Alexandre Côté⁩ ו-⁦Xingdi Yuan⁩ ממעבדת מונטריאול ו-⁦Matthew Hausknecht⁩, שחתומים על שני המאמרים. שתי הסביבות מתמודדות עם אותה שאלה: איך בודקים אם סוכן בינה מלאכותית באמת "מבין" שפה, ולא רק פועל נכון בעולם חזותי כמו משחקי מסך? אבל הן פותרות אותה בכיוונים הפוכים. ⁦TextWorld⁩, שהחוקרים פרסמו ב-2018, מייצרת משחקי-הרפתקה חדשים לגמרי, בקושי ובהיקף שהחוקר בוחר. ⁦Jericho⁩, שהאוסקנכט ושותפיו פרסמו ב-2019 — ביניהם ⁦Prithviraj Ammanabrolu⁩ מהמכון הטכנולוגי של ג'ורג'יה — מריצה משחקים אמיתיים שאנשים כתבו בעבר, ובהם ⁦Zork⁩ עצמו.

TextWorld: מפעל למשחקים בהתאמה אישית

⁦TextWorld⁩ הוצגה ב-2018 בסדנת ⁦Computer Games Workshop⁩ של כנס ⁦IJCAI⁩ בשטוקהולם. היא ספריית ⁦Python⁩ שמריצה משחקי-טקסט, עוקבת אחרי מצב המשחק ומחליטה מתי לתת תגמול לסוכן שמשחק בו. היא מגיעה עם רשימה קבועה של משחקים שהחוקרים ניתחו, אבל היתרון המרכזי שלה הוא אחר: אפשר לכתוב משחק ביד, ואפשר גם לייצר משחקים אוטומטית. היצירה האוטומטית מאפשרת שליטה מדויקת ברמת הקושי, בהיקף ובשפה של המשחק — כלומר אפשר, למשל, לייצר אלף משחקים קטנים שכולם דומים אבל לא זהים, כדי לבדוק אם סוכן שלמד על חלקם מצליח גם בחלקים שלא ראה, ולא רק זוכר משחק בודד בעל-פה. ⁦TextWorld⁩ גם ממסגרת את המשחקים האלה בשפה הפורמלית של למידת חיזוק, ומגיעה עם קבוצת משחקי-ייחוס שהחוקרים בנו בעצמם. משחק שנוצר אוטומטית נבנה כקוד מקור בשפת ⁦Inform 7⁩, ואז מתורגם לקובץ הרצה בפורמט ⁦Glulx⁩; שמות החפצים, תיאורי החדרים וההוראות נשענים על דקדוק חסר-הקשר (⁦CFG⁩) בשתי ערכות-נושא, "בית" ו"בסיסי". החוקרים גם מבטיחים שכל משחק שנוצר אוטומטית פתיר: ידוע מראש מסלול-ניצחון מהמצב ההתחלתי אל המטרה. הרשימה הקבועה שמגיעה עם ⁦TextWorld⁩ כוללת 50 משחקים שאנשים כתבו, שנבחרו בעקבות עבודה קודמת של ⁦Fulda⁩ ועמיתיה מ-2017.

Jericho: להריץ את Zork I המקורי

⁦Jericho⁩ פותרת בעיה הפוכה: היא לא מייצרת משחקים, אלא מריצה משחקי-הרפתקה טקסטואליים אמיתיים שאנשים כתבו בעשורים הקודמים, ובהם ⁦Zork I⁩ עצמו — קובץ בפורמט ⁦Z-machine⁩. היא ממשק ⁦Python⁩ פתוח-קוד עם סגנון דומה ל-⁦OpenAI Gym⁩, כך שסוכן למידה יכול להתחבר אליה בלי להתעסק בפרטים הטכניים של כל משחק. המאמר שהציג אותה, ⁦Interactive Fiction Games: A Colossal Adventure⁩, הוצג בכנס ⁦AAAI-20⁩, ונכתב בידי חוקרים מ-⁦Microsoft Research⁩ ומהמכון הטכנולוגי של ג'ורג'יה. המחברים טענו שמשחקי-הרפתקה טקסטואליים הם שדה-מבחן מצוין לסוכני-שפה, בדיוק בגלל שהם משלבים שלושה אתגרים בבת אחת: מרחב-פעולות עצום, הבנת שפה, והיגיון של שכל-ישר. הכנס עצמו, ⁦AAAI-20⁩, היה הכנס ה-34 של ⁦Association for the Advancement of Artificial Intelligence⁩, והתקיים בפברואר 2020 — כמה חודשים אחרי שהמאמר פורסם לראשונה כ-⁦preprint⁩ ב-⁦arXiv⁩. הקוד של ⁦Jericho⁩ עצמו פתוח ברישיון ⁦GPL-2.0⁩, ומתפרסם במאגר ⁦github.com/microsoft/jericho⁩.

איך Jericho מקטין מרחב-פעולות של מיליארדים

סוכן שבוחר פקודה של עד ארבע מילים מתוך אוצר-מילים של כ-700 מילים עומד, תיאורטית, בפני כ-240 מיליארד אפשרויות. ⁦Jericho⁩ מצמצם את זה דרך "תבניות-פעולה": תבנית כמו "שים את החפץ ב-" כבר קובעת מבנה, וצריך רק להשלים את החסר ממילון המשחק. במשחק עם כ-200 תבניות ואוצר-מילים של כ-700 מילים, זה מוריד את המרחב לכ-98 מיליון אפשרויות — שלושה סדרי-גודל פחות. ⁦Jericho⁩ גם מזהה אילו פעולות באמת תקפות, על ידי ביצוע ניסיוני שלהן ובדיקה אם מצב-העולם השתנה בעקבותיהן, ושומרת על "עץ-אובייקטים של העולם": תיאור של מי נמצא בתוך מי ומי נמצא לצד מי, שמסייע לזהות היכן השחקן נמצא ואילו חפצים קרובים אליו.

מה קרה כשסוכני AI באמת שיחקו: Zork כמבחן

החוקרים הרצו ארבעה סוכנים שונים על 32 משחקים שנתמכים ב-⁦Jericho⁩, ובהם ⁦Zork I⁩: סוכן אקראי לגמרי, סוכן היוריסטי בשם ⁦NAIL⁩ שניצח בעבר בתחרות, וסוכני-למידה בשם ⁦TDQN⁩ ו-⁦DRRN⁩. התוצאה נמדדה כאחוז-ההתקדמות הממוצע במשחק, מתוך הניקוד המקסימלי האפשרי. הסוכן האקראי הגיע בממוצע ל-1.8% מהניקוד האפשרי, ⁦NAIL⁩ ל-4.9%, ⁦TDQN⁩ ל-6.1%, והטוב מכולם, ⁦DRRN⁩, רק ל-10.7%. בבלוג של ⁦Microsoft Research⁩ כתבו המחברים שנדרש "שיפור רב" לפני שהאלגוריתמים האלה ואחרים יוכלו להתחרות בשחקנים אנושיים מיומנים. המספרים האלה ממחישים פער עצום: משחקים שנכתבו עשרות שנים קודם, עם מנתח-פקודות שמתאים מילים לרשימה סגורה, נשארו ב-2019 מבחן שסוכני-שפה לומדים עדיין נכשלו בו ברובו. בחמישה מתוך 32 המשחקים לא הצליח אף סוכן, מהאקראי ועד ⁦DRRN⁩, לצבור ניקוד כלשהו.

מה הקשר להיסטוריה של משחקי הטקסט

שתי הסביבות האלה הן ההמשך הישיר של השאלה שעמדה במרכז הרפתקאות-הטקסט המוקדמות: איך יודעים אם מחשב באמת "מבין" את מה שהקלדתם? המנתח של שתי מילים ב-⁦Colossal Cave Adventure⁩ מאמצע שנות ה-70, והמנתח המורכב יותר של ⁦Zork⁩ מ-1977, נתנו תשובה ברורה: הם לא הבינו, הם התאימו מילים לרשימה סגורה. ⁦TextWorld⁩ ו-⁦Jericho⁩ הן הכלים שבהם חוקרי ⁦AI⁩ של היום בודקים אם סוכני-למידה — שלא מקבלים רשימת-מילים סגורה אלא לומדים משפה חופשית — מתקרבים בכלל להבנה אמיתית. התוצאות של 2019 מראות שהתשובה היתה, באותה תקופה, עדיין לא: אפילו הסוכן הטוב ביותר שנבדק לא התקרב לרמת שחקן אנושי.

📬 הגיליון השבועי של Wiki-AI

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

Jericho מול TextWorld: שתי גישות למשחקי-טקסט
Jericho (2019)TextWorld (2018)
סוג המשחקיםמשחקים אמיתיים שאנשים כתבו בעבר, בפורמט Z-machineמשחקים מיוצרים לפי מידה, אוטומטית או ביד
מטרה מרכזיתלמדוד כמה סוכן-למידה מתקדם במשחק קיים ומאתגרלאמן סוכן בהדרגה, עם שליטה בקושי ובהיקף
ארגון ושנהMicrosoft Research והמכון הטכנולוגי של ג'ורג'יה, 2019Microsoft Research מונטריאול, 2018
ממשק טכניספריית Python בסגנון OpenAI Gym, שמריצה קובצי Z-machineספריית Python שמייצרת ומריצה משחקים מותאמים

שאלות נפוצות ❓

מה ההבדל בין ⁦Jericho⁩ ל-⁦TextWorld⁩?

⁦TextWorld⁩ מייצרת משחקי-הרפתקה טקסטואליים חדשים, בקושי ובהיקף שהחוקר קובע, כדי לאמן סוכנים בהדרגה. ⁦Jericho⁩, לעומתה, מריצה משחקים אמיתיים שאנשים כתבו בעבר — ובהם ⁦Zork I⁩ עצמו — ובודקת כמה סוכן-למידה מתקדם בהם.

למה סוכן ⁦AI⁩ לא יכול פשוט לבחור כל פקודה אפשרית במשחק כמו ⁦Zork⁩?

כי מרחב הפקודות האפשריות עצום: פקודה של ארבע מילים מתוך אוצר-מילים של כ-700 מילים נותן כ-240 מיליארד צירופים. ⁦Jericho⁩ מצמצם את זה לכ-98 מיליון אפשרויות, בעזרת תבניות-פעולה מובנות, אבל זה עדיין מרחב-חיפוש גדול מאוד.

כמה טוב הצליחו סוכני ⁦AI⁩ לשחק במשחקים של ⁦Jericho⁩?

לא מרשים בכלל, לפחות בבדיקה המקורית מ-2019. על 32 משחקים, ובהם ⁦Zork I⁩, הסוכן הטוב ביותר שנבדק (⁦DRRN⁩) הגיע בממוצע רק ל-10.7% מהניקוד האפשרי. סוכן אקראי לגמרי הגיע ל-1.8%.

מי עומד מאחורי ⁦Jericho⁩ ו-⁦TextWorld⁩?

שתיהן פרויקטים של ⁦Microsoft Research⁩, בחלקן מאותם חוקרים: ⁦Matthew Hausknecht⁩, ⁦Marc-Alexandre Côté⁩ ו-⁦Xingdi Yuan⁩. ⁦TextWorld⁩, מ-2018, פותחה בעיקר במעבדת ⁦Microsoft Research⁩ במונטריאול; ⁦Jericho⁩, מ-2019, נכתבה בשיתוף עם ⁦Prithviraj Ammanabrolu⁩ מהמכון הטכנולוגי של ג'ורג'יה.

שתפו:וואטסאפטלגרם

מצאתם טעות בערך, או שיש לכם מקור שכדאי להוסיף? כתבו לנו