מה זה טוקיינזר במודלים גדולים של שפה?

מאת Yuval Avidani

תוכן עניינים

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

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

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

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

לא רק זה, אלא יש שיטות כמו Byte Pair Encoding שלמעשה דוחסות את כמות הטוקנים כדי לחסוך טוקנים, אך גם מגדילה את גודל המילון של הטוקיינזר. זאת אומרת, מצד אחד כל הדאטה שעליה אנו מאמנים מודל הופכת לטוקנים, אך מצד שני, קיימת גם הגדרה של ״מילון״ שזה בעצם כמה ״חלקיקים״ / ״אטומים״ יש לנו בדאטה, אבני יסוד שמהם מורכבים המילים, הטוקנים.

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

כך למשל, ל-GPT-4 יש טוקיינזר ששופר מ-3.5 בכך שהוא הצליח להבין בקוד שמספר רווחים זה טוקן אחד ולא כמה, מה ששיפר את הביצועים של מודל השפה באיכות הקוד שכתב. מנגד, הטוקיינזר של המודל החדש GPT-4o שופר אף יותר, אומן על שפות רבות יותר לפי איך שזה נראה, כפי שאמר אברהם יצחק מאיר , שהחיסכון בטוקנים בעברית הוא 50%! הוא אפילו עקף את הטוקיינזר המדהים של Cohere שהיה הטופ בעברית! ואגב, גם הטוקיינזר Gemma של גוגל היה מעולה בעברית, חבל שג׳ימיני עצמו פחות אבל לפחות הטוקיינזר מדהים.

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

שיהיה ערב טוב ובשורות טובות.
יובל

תוייג ב

LLM, Machine Learning

עדכון אחרון יוני 03, 2024

אודות המחבר