הרבה דובר על Fine Tune. עוד מודל ששופר, עוד גרסה, עוד חידוש… אבל מה זה לכל הרוחות ואיך זה עוזר לנו? בואו נדבר על זה.
אבל לפני הכל – הישארו מעודכנים! הצטרפו לרשימת התפוצה שלנו ולא תפספסו שום עדכון, חידוש או מידע על כלי חדש שיוצא…
ממליצים לכם להצטרף גם לקהילות ה-AI של LetsAI בוואטסאפ ובטלגרם. רוצים לשמוע על הקורסים וסדנאות ה-AI שלנו? לחצו פה.
הרבה ידע – הרבה בעיות
אנחנו כבר יודעים שיש לנו מודלים גדולים של שפה, LLMs. כאלה שאפשר לשאול אותם שאלות ולקבל תשובות. המודלים האלה אומנו על המון מידע כך שמאגר הידע שלהם אדיר. דמיינו את כל האינטרנט מונח בכף ידו של מודל שפה כלשהו. איזה ידע! אז עם כמות ידע כזו – איפה הבעיה?
אם נפשט ונצמצם את הפעילות של מודל שפה גדול – הוא יודע לחזות את המילה הבאה. הוא מבין מה אנחנו שואלים, מנבא את המילה הבאה וכך בעצם משיב לנו, בהסתמך על הידע שברשותו (אלא אם הוא הוזה).
אבל מה אם לא מספיק לנו סתם ניבוי של המילה הבאה? מה אם היינו רוצים שיהיה למודל השפה אופי אחר, שהוא ישיב בצורה מסוימת (למשל בסגנון של אילון מאסק), או שהוא ייתן משקל רב יותר למאגר ידע מסוים, למשל – לפוסטים של Reddit. שכל שאלה שנשאל, נקבל תשובה שמבוססת על הידע ב-Reddit ולא סתם מהאינטרנט.
ומה אם גם אנחנו רוצים שהמודל לא סתם ינבא מילה, אלא גם ישיב בצורה של שאלה ותשובה. של שיחה. כמו צ׳אט מול נציג שירות. מה שנקרא Assistant?
שליפת מידע עם RAG
יש לנו יכולת כיום להשתמש בטכניקת ״שליפת״ תשובות ממאגרי מידע. זה מה שנקרא RAG. לוקחים מידע, ממירים אותו למספרים באמצעות תהליך שנקרא Embeddings, שומרים את המידע בצד, בבסיס נתונים מיוחד, וקטורי, ולאחר מכן בכל שאלה שאנו שואלים – גם היא הופכת למספרים, ונשלחת לבסיס הנתונים המיוחד, לשלוף תשובות שקרובות בערכן המספרי לשאלה ששאלנו. אבל לא מספיק לשמור מידע בצד ולשאול עליו. יש כאן בעיות כמו הקשר לא מספיק גדול, בעיות באיכות התשובות ועוד.
כיוונון מדויק – Fine Tune
כדי לפתור את זה, יש לנו יכולת לבצע Fine Tune, כיוונון, למודלים של שפה. כך אנחנו לא סתם מפנים למידע, אלא אנחנו ממש מוסיפים שכבות של פרמטרים (נוירונים, משקולות) לרשת הנוירונים המקורית, ובכך משנים ממש את עצם ההתנהגות של המודל עצמו. זה לא הוספה של קומה לידע, אלא שינוי של תצורת הרשת עצמה. יש טכניקות כאלה שמצריכות משאבים רבים עד כדי מחשבים חזקים. אך יש גם טכניקות אחרות, מבוססות מחקר של מיקרוסופט ומטא, שנקראות LoRA או QLoRA, שמאפשרות להוסיף את השכבות האלה לרשתות הנוירונים המקוריות, וכך באמצעות הוספה של יחסית מעט מידע, נקבל יכולת לשלוט ברשת עצמה. בהתנהגות שלה. לא רק RAG אלא ממש התנהגות אחרת של הרשת עצמה.
קצת על LoRA
מי שזה מצלצל לו, LoRA גם משמש אותנו בעולמות אימון מודלים של תמונה כמו סטייבל דיפיוז׳ן. מדובר ביצירת מודלים שמשקלם קטן, והם נוספים בשאילתא לתשאול המודל המקורי והכבד. אך במקום לאמן מודל כבד, מספיק לצרף את הקובץ הקליל הזה ומתאפשר לנו לקבל תשובות אחרות ואיכותיות יותר בהרבה ממודל השפה.
סיכום
- ביצוע Fine Tune למודל שפה מאפשר לנו לשנות את הרכב רשת הנוירונים ולגרום למודל השפה להתנהג אחרת (כמו להיות עוזר של ממש ולא רק מנבא מילים).
- באמצעות שימוש בטכניקות כמו LoRA או QLoRA אנחנו יכולים ליצור מודלים קלי משקל שמשפיעים על המודלים הכבדים ומשנים את ההתנהגות שלהם.
- מדובר ביכולת מאוד מעניינת, שאנו מעת לעת שומעים עליה, כמו עוד מודל Fine Tune ללאמה 2 או למודלים אחרים. זה לא רק לבנות ידע, אלא ממש לשנות התנהגות.