close menu

האם הגענו לנקודת מפנה בלמידה מחיזוקים?

דמיינו לכם שהיה קיים רובוט שיכלתם פשוט לאמר לו "לך תביא לי קולה מהמקרר" והוא היה מנווט לבד בבית ומביא לכם קולה.

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

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

למה יש ChatGPT אבל אין "נהג-מוניתGPT"?

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

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

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

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

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

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

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

אנחנו אפילו כל כך אוהבים את היכולות הללו שהגענו למצב בו אנחנו יודעים לחזות את ביצועי מודלי שפה בהתאם לגודלם ובכך לאמן מודלים בגודל אופטימלי על כמות דאטה אופטימלית.

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

אמ;לק: חחח אין.

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

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

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

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

הפוטנציאל של למידה מחיזוקים

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

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

בחודשים האחרונים קיבלנו שלושה מאמרים [1][2][3] שאולי מבשרים על נקודת מפנה בתחום:

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

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

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

כמובן, בסביבה חדשה שאינו ראה מעולם.

מה זאת אומרת "סקיילאביליות בRL" בכלל?

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

בנוסף: על שיפור ביצועים זה להוביל להכללה ו"התנהגות מתוחכמת".

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

איפה אנחנו עומדים

למרות שבתחומי למידה אחרים נראה כי שיפור המודל מוביל לשיפור ביצועים..

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

..בלמידה מחיזוקים זה לא המצב. לפחות לא באופן מובהק.

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

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

הסוכן DreamerV3:

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

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

הסוכן DreamerV3 חשוב לדיון מכיוון שהציג סוכן ש"קל לאמן" בלי התעסקות רבה. [6]

הסוכן AdA:

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

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

אבל הכי הכי הכי חשוב: הסוכן "מבין" את הסביבה תוך מספר ניסיונות בודד – במקרים רבים תוך ניסיון אחד.

הוא עושה זאת על ידי שימוש ב"זכרון", בסוף כל ניסיון הסביבה מתאפסת אבל זכרון ה In Context של הסוכן לא. בזכרון זה נשמרים הניסיונות הקודמים של הסוכן בסביבה זו. באמצעות זכרון זה, גם כשחוקי המשחק משתנים (ולסוכן כמובן אין גישה אליהם) יכול הסוכן "לנסות כמה פעמים" על מנת להבין "מה רוצים ממנו?".

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

בסרטון: הסוכן AdA משחק בסביבה

https://www.youtube.com/watch?v=U93bUQ1roiw&ab_channel=AdaptiveAgent

רפרנסים:

[1] – מאמר הסוכן AdA המכיל זכרון Few Shot כאן: https://sites.google.com/view/adaptive-agent/

[2] – מאמר הסוכן DreamerV3 שאותו ניתן לאמן ללא כיול היפרפרמטרים כבד וגם מפגין שיפור כתלות בגודל המודל: https://danijar.com/project/dreamerv3/

[3] – מאמר עדכני על חוקי סקיילאביליות בRL כאן: https://arxiv.org/abs/2301.13442

[4] – לאמן בלי חיפוש היפרפרמטרים כבד יקר שלוקח המון זמן

[5] – הכוונה היא "להראות להם" דוגמאות בFew Sho, זה עדיין לא כמו בטקסט כי זה עובד על מרחב האמבדינגס אבל זה צעד ענק בכיוון ולדעתי אנחנו הולכים לראות tבקרוב מאוד סוכנים שאפשר "להדגים להם" משחק בודד שהם מעולם לא ראו והם מיד ישחקו בעצמם.

[6] – קל לאמן ככל הנראה, אפשר לדעת רק אם ננסה.

עוד בנושא: