אבל לפני הכל – הישארו מעודכנים! הצטרפו לרשימת התפוצה שלנו ולא תפספסו שום עדכון, חידוש או מידע על כלי חדש שיוצא…
- ממליצים לכם להצטרף גם לקהילות ה-AI של LetsAI בוואטסאפ ובטלגרם.
- רוצים לשמוע על הקורסים וסדנאות ה-AI שלנו? לחצו פה.
* הערה: כאשר אני מדבר על “למידה”, אני מתכוון גם כן ל”אימון”. אימון ולמידה הם מושגים קרובים ויתכן שהם זהים במשמעות כאן.
סוגי אימון
כיום למידה של מודלי שפה מתחלקת ל-3 קטגוריות בשלבים שונים של הפיתוח ומשך חייהם:
1. אימון מוקדם.
2. אימון ממוקד (אפשר לקרוא לו גם ׳חידוד׳, באנגלית Fine-Tuning).
3. למידה מתוך הקונטקסט (משהו שאני מכנה ״חומר פתוח״).
עכשיו אמשיל את זה לשלבי הלמידה בחייו של אדם:
1. השלב המוקדם, אפשר לדמות אותו ללמידה שמתרחשת בבית הספר. ילד יושב בבית הספר ופוגש כל מיני עולמות ידע, לומד איך לחשוב איך לחקור איך לשאול שאלות, מכיר עולמות של דמיון, של מחקר אמפירי, של יצירתיות, של ידע היסטורי, חשיבה מתמטית ועוד. כל אלה מפתחים את עולמו האינטלקטואלי ומעניקים לו בעיקר מיומנויות לעתיד. פרטי הידע בבית הספר הם לא הדבר הגורלי לעתיד המקצועי של האדם – אבל החשיפה המגוונת למדיומים השונים של הידע מפתחים את עולמו האינטלקטואלי.
2. בשלב השני התלמיד עובר ללימודים גבוהים בהם הוא משתלם במקצוע מסוים. הידע שהוא רוכש כרגע ככל הנראה ישמש אותו בצורה משמעותית יותר בקריירה העתידית. הוא מתמחה בחשיבה ספציפית לתחום ספציפי. הרבה מפרטי הידע שהוא רוכש יתכן שיעזרו לו, ויתכן שייבלעו איפשהו במח בלי שהוא יזכור אותם באופן ספציפי – אבל עדיין ההבנה של צורת החשיבה המסוימת של אותו תחום לעומק תעניק לו את המיומנות הנדרשת לעבודה בתחום הנ״ל.
3. כאשר אדם עוסק כבר בתחום עצמו, למשל רפואה. הוא נזקק מפעם לפעם לפתוח ספרים, לעיין במחקרים חדשים, אולי לעלעל ברשומות רפואיות של מטופלים קודמים וכדומה. אין בכך מגרעה. אין זה אומר שהוא לא יודע את המקצוע שלו, או שלא למד מספיק טוב לפני. הידע הספציפי שנגיש לו לתוך אירוע ספציפי שמזדמן לפניו – הוא ידע ברור מאוד, שהוא יכול להתייחס אליו בו במקום. הלמידה המקדימה וגם הלימודים המקצועיים שלו נתנו לו את הכלים לדעת איך לגשת למאמר, מה לחפש בו, איך להתייחס לשפה המיוחדת שהוא כתוב בה וכדומה. ביצוע משימה עם ״חומר פתוח״ הוא בעצם השלב האחרון בלמידה, שגם הוא נשען קומה על גבי קומה על כל מה שלמד לפני.
אם כן יש להבחין בין מיומנויות לידע מסוים. הרבה מהלמידה מכוונת לפיתוח מיומנויות. בין אם זה מיומנות כללית של שפה, הגיון, הסקת מסקנות וכו׳ ובין אם זה מיומנות ספציפית יותר של הבנה מקצועית רפואית, התמצאות במושגים, היכרות עם מבנה הגוף ופיתוח אינטואיציות לזיהוי בעיות וכדומה.
ההבדל בין מיומנות לידע לא תמיד מובחן כל כך, ולעיתים מיומנות היא ידע וידע הוא מיומנות וזה גם בסדר. אבל ככל שאנו מתקדמים עם הלמידה היא הופכת להיות יותר ויותר ממוקדת ידע, וככל שאנו חוזרים ליסודות – הם שייכים יותר לתחום המיומנויות הכלליות.
ונחזור למודלי שפה בבינה מלאכותית.
אימון מוקדם
השלב הראשון, האימון המוקדם, הוא שלב שהמודל מתאמן על המון המון טקסט. הוא מכיר את העולם, את השפה, את יחסי הגומלין, את ההיגיון. הוא לומד להיות יצירתי, לשאול שאלות, למצוא מידע בתוך כמות גדולה של מלל, לסכם, להאריך, לקצר, לסגנן ועוד ועוד…
האתגר בשלב הזה הוא העלות הגבוהה שלו. מעבר לצורך לאסוף כמות גדולה של טקסטים עליהם המודל מתאמן יש צורך בהרבה כח עיבוד וגם לא מעט זמן כדי לאמן את המודל על הטקסטים הללו.
לגבי ידע ספציפי: האימון המוקדם יכול להקנות למודל גם ידע ספציפי. זה קורה בעיקר לגבי פרטים שחוזרים על עצמם הרבה בתוך ערימות המידע שהוא עובר עליהם. אבל אין לצפות שהוא יזכור במדויק כל פרט שנמצא שם, כמו שילד לא ממש זוכר הרבה מהדברים ספציפיים שלמד בבית הספר, וזה בסדר. צריך לדעת שאימון מוקדם על כמויות גדולות של תוכן לא בהכרח יובילו לדיוק בפלט בהקשר של התוכן הזה בהמשך. ניסוי שנערך ע״י מטא (Meta) לפני כשנה וחצי הראה שגם מודל שאומן מראש על כמויות גדולות של מאמרים אקדמיים – עדיין “הזה” המון נתונים שלא היו ולא נבראו בהקשר של אותם מאמרים, ועשה זאת בסגנון אקדמי משכנע מאוד, אבל המידע הספציפי לא היה נכון בהרבה מהמקרים.
חידוד (Fine-Tuning)
מגיעים לשלב ה”חידוד” – זה שלב פשוט יותר ונגיש גם לבני אנוש כמונו. אימון מסוג Fine Tuning מתבסס על מספר קטן יחסית של דוגמאות (לרוב מאות או אלפים בודדים) שבהן אנחנו מספקים למודל דוגמאות חיות איך אנו מצפים שהוא יגיב לקלטים (Inputs) מסוימים. מעניקים לו צמדים של שאלות ותשובות למשל, והוא לומד את סגנון ואופי ההתנהגות המצופה. ידע ספציפי פה הוא גם כן לא ערובה מושלמת להצלחה, אם כי כאן הוא כבר ער יותר לעובדות מאשר באימון המוקדם. כפי שאמרנו – האיזון הוא בין מיומנות לבין ידע. שלב זה הוא מעין שלב ביניים ונועד לחדד את המודל לקראת משימה בעלת אופי מסוים. כפי שהקבלנו את זה ללימודים אקדמיים מקצועיים.
למידה מתוך הקונטקסט (“חומר פתוח”) / In-context learning
הדבר האחרון הוא ״חומר פתוח״ או “למידה בתוך הקונטקסט”. הכוונה היא שכאשר אנו נותנים את הפרומפט למודל, שהוא לרוב שאלה – אנו מספקים לו גם כן כמות טקסט לפני כן, שממנו אנו מצפים שהוא ינסח את התשובה. למשל אפשר לתת לו מאמר ולשאול אותו שאלות על המאמר. כל מה שנמצא בתוך הקלט של המודל נקרא ״קונטקסט״ ובמקרה הזה זה כולל את המאמר וגם את השאלות. התשובה שתינתן תהיה מדויקת הרבה יותר מהיכולת של המודל לענות מ”הידע הכללי” עליו אומן קודם לכן – מכיוון שהפעם החומר ׳מונח לפניו׳, גלוי באופן נקודתי לאירוע הזה. כמו אותו רופא שפותח ספר ועונה מתוכו.
למידה בתוך הקונטקסט (In-context learning) הופכת ליותר ויותר משמעותית ככל שאורך חלון הקונטקסט של המודלים גדל. כיום יש לנו מגבלה שבכל מודל יש אורך מקסימלי של קונטקסט שלתוכו אפשר לשפוך מידע ולבקש תשובה מתוכו. מודל ״קלוד״ למשל מסוגל לעבד כמות גדולה יחסית של טקסט בו זמנית, קרוב ל-200 אלף מילים באנגלית (בעברית זה בערך רבע מזה). אז נניח אפשר לתת לו גם ספר שלם ולבקש שיתייחס אליו בתשובה.
הכללה (Generalization) והגיון (reasoning)
למידה מתוך קונטקסט מוצלחת בעיקר בגלל שיש בה יכולת ״הכללה״ (Generalization) שמובילה להבנת ההיגיון (reasoning) כלומר: לא רק שהמודל יכול לתת מענה ספציפי לעובדות שמופיעות לו בטקסט – הוא אף יכול בעצם לבצע משימות רבות שנובעות מתוך הבנה כוללת של הטקסט, בין אם זה הצלבה של מידע ובין אם זה ממש פיענוח של מוטיבים עמוקים ששזורים בטקסט ודורשים העמקה. דוגמא פשוטה לזה: משימת תרגום על שפה חדשה שהמודל לא אומן עליה מראש, לא באימון המקדים ולא באימון המקצועי והמחודד. ניתן לדחוף ספר תחביר + מילון שלם לתוך מודל עם קונטקסט ענק (ג׳מיני פרו 1.5!) ולבקש ממנו לתרגם קטע והוא ידע לעשות את זה יפה, כי בבת אחת הוא “רואה” לפניו גם את ספר הלימוד של השפה וגם את המשימה ומבצע את הכל יחד. זה בהחלט מופלא!
הקושי ב-In-context learning
הקושי עם למידה מתוך קונטקסט זה עלות ומהירות. עיבוד כמות גדולה כל כך של תוכן בכל קריאה יכולה להיחשב בזבזנית. היא עלולה לקחת זמן ארוך לכל קריאה (באזור הדקה למשל) וזה לא תמיד נוח לעבוד באופן הזה. עם זאת עדיין יש פה יתרונות עצומים, בדגש על יכולת ההכללה.
RAG (Retrieval-Augmented Generation)
קצת על RAG
כאשר אורך הקונטקסט לא מספיק – יש טכניקה נוספת שמשתמשים בה שנקראת RAG או Retrieval-Augmented Generation, שבאופן עקרוני היא אותו סוג של למידה, אלא שמצרפים מנגנון נוסף שחיצוני למודל השפה שאחראי לספק לתוך הקונטקסט את הפרוסה המתאימה מתוך המידע בהתאם לאופי השאלה.
טכניקת Retrieval-Augmented Generation (RAG) מסייעת בשיפור הדיוק והאמינות של מודלים ג’נרטיביים באמצעות עובדות שנאספו ממקורות חיצוניים. במילים אחרות, זה ממלא פער באופן שבו מודלי שפה גדולים (LLMs) עובדים. מתחת למכסה, LLM מורכבים מ”רשתות נוירונים” הנמדדים על בכמות הפרמטרים שהם מכילים. הפרמטרים של LLM (מודלי שפה גדולים) מייצגים בעיקר את התבניות הכלליות של האופן שבו בני אדם משתמשים במילים כדי ליצור משפטים. אותה הבנה עמוקה, שלפעמים נקראת “parameterized knowledge”, הופכת את ה-LLMs לשימושיים ומהירים בתגובה לפרומפטים כלליים. עם זאת, זה לא משרת משתמשים שרוצים צלילה עמוקה יותר לנושא ספציפי וממוקד יותר.
עם RAG, משתמשים יכולים למעשה לקיים שיחות עם מאגרי מידע, מה שפותח סוגים חדשים של חוויות – שלם שעולה על סך חלקיו. לדוגמה, מודל AI ג’נרטיבי המשולב עם אינדקס רפואי יכול להיות עוזר מצוין עבור רופא או אחות. אנליסטים פיננסיים יפיקו תועלת מסייען AI המקושר לנתוני שוק. למעשה, כמעט כל עסק יכול להפוך את המדריכים הטכניים או המדיניים שלו, סרטונים או יומנים לבסיסי ידע שיכולים לשפר את ה-LLMs. מקורות אלה יכולים לאפשר שימושים כמו תמיכה בלקוחות, הדרכת עובדים ועוד.
יתרונות וחסרונות
השיטה הזו לא תמיד עובדת טוב כי יש פה כמה מרכיבים שיכולים להשתבש בדרך. כשנדרשת משימה של הכללה והבנה RAG פחות מוצלח כי הוא יכול להביא כל פעם רק חלק מהמידע. אולם כאשר מדובר על שאלה שנוגעת למידע מקומי ספציפי שניתן לאתר אותו דרך קירבה סמנטית לשאלה (סוג של חיפוש, לא מילולי לגמרי אלא יותר דרך המשמעות) – אז RAG יכול לעשות עבודה טובה גם כשמדובר בכמויות אסטרונומיות של מידע הוא יאתר את החלק הרלוונטי ויגיש אותו לקונטקסט לטובת ניסוח התשובה ע״י מודל השפה.
״למידה בתוך הקונטקסט״ היא הסיבה שההכרזה של גוגל על מודל ג׳מיני 1.5 החדש עם קונטקסט של מיליון טוקנים (כ-750,000 מילים באנגלית) היא משמעותית כל כך. יש לזה המון יישומים שדורשים הכללה של המון ידע חדש שהמודל לא אומן עליו מראש.
למידה אקטיבית
פרט אחרון: למידה אקטיבית. זה אמנם נושא שלא ממש מפותח במודלי שפה עדיין, אבל הוא קורה אצל בני אדם. אנחנו ממשיכים ללמוד כל הזמן. כל אינטראקציה עם העולם היא למעשה הזדמנות ללמידה. מודלי שפה, מעבר ל-3 ההזדמנויות שציינתי – בעקרון לא לומדים דברים חדשים. אם יש צ׳אט או בוט שהמפתחים שלו בנו איזה מנגנון של חידוד תוך כדי תנועה זה אולי אפשרי, אבל בעקרון זה לא קורה.
בהקשר הזה OpenAI הלכו לכיוון מעניין כאשר הם הוסיפו מנגנון של זיכרון לטווח ארוך של ChatGPT שהוא מסוגל תוך כדי שיחה לזהות פרטי מידע מסוימים ששווה לשים אותם בזיכרון. הוא מנסח משפטים ושומר אותם בצד, כך שבפעם אחרת הוא יוכל למשוך אותם בחזרה לתוך הקונטקסט ולענות בהתחשב בהם. באופן הזה יש הדמייה מסויימת של למידה אקטיבית, אם כי בפועל זה מנגנון חיצוני שמשתמש בלמידה בתוך הקונטקסט. יתכן שעוד נראה שיפורים מעניינים בשדה הזה.
מאמר טוב.