top of page

המדע וההנדסה של טוקניזציה

  • Writer: shlomoyona
    shlomoyona
  • Apr 13
  • 9 min read

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


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


אתגר מרכזי במודלי שפה נובע מסיבוכיות זמן וזיכרון של מנגנון ה-self attention. בארכיטקטורת טרנספורמר חישוב ה-attention דורש סיבוכיות של O(n²) ביחס לאורך הרצף n. לכן ייצוג קלט ברמת התו מקטין את אוצר המילים אך מאריך את רצף הקלט n מה שהופך את החישוב ליקר מבחינה חישובית ומונע מהמודל ללכוד סמנטיקה ממרחקים גדולים. מנגד ייצוג ברמת המילה שומר על אורך רצף קצר אך מוביל לאוצר מילים דליל ובלתי נשלט שקורס אל מול מילים נדירות או מילים שאינן באוצר המילים. 


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


השוואה אלגוריתמית ומתמטית בין BPE ל WordPiece


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


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


אלגוריתם BPE, שמשמש מודלים כגון GPT ו-Llama, פועל באופן חמדני שמבוסס על תדירות. בכל שלב, BPE סורק את הקורפוס ובוחר במיזוג שממקסם את השכיחות המוחלטת של הצמד: argmax_{A,B} Count(A, B). מבחינה הסתברותית, זהו פשוט מיקסום ההסתברות המשותפת P(A, B).

לעומתו, WordPiece, שפותח עבור BERT, משלב שיקולים של סבירות סטטיסטית. במקום להסתכל רק על שכיחות, הוא מחפש את המיזוג שיתרום הכי הרבה לסבירות של הקורפוס. הקריטריון למיזוג הוא מקסום היחס בין ההסתברות המשותפת למכפלת ההסתברויות השוליות: argmax_{A,B} P(A, B) / (P(A) * P(B)).


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


מודל Unigram ואלגוריתם Expectation Maximization


סוגיה נוספת נוגעת למקומו של אלגוריתם Unigram. בניגוד לגישה של BPE ו WordPiece אלגוריתם Unigram שפועל במודלים כגון T5 מתאפיין בגישה הפוכה ונשען על מודל הסתברותי מסודר.  


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


נניח ש X הוא קורפוס נתונים ו x הוא משפט מתוכו. נגדיר את y כחלוקה מסוימת של x לסדרת טוקנים y = (t₁, t₂,..., tₖ). מודל Unigram מניח שכל טוקן מופק באופן בלתי תלוי. לכן ההסתברות לחלוקה מסוימת היא מכפלת ההסתברויות של מרכיביה P(y) = ∏ P(tᵢ). ההסתברות השולית לתצפית במשפט הקלט x היא סכום ההסתברויות של כלל החלוקות האפשריות שלו S(x) ומסומנת כ P(x) = ∑{y ∈ S(x)} P(y). מטרת התהליך היא למצוא את התפלגות ההסתברויות P(tᵢ) שממקסמת את פונקציית נראות הלוג של הקורפוס כולו L = ∑{x ∈ X} log P(x).  


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


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


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

גודל אוצר המילים לאור חוקי קנה המידה


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


מצד אחד הגדלת אוצר המילים מפחיתה את מספר הטוקנים שנדרש לייצוג כל טקסט N. מכיוון שסיבוכיות המחשוב בטרנספורמרס גדלה ביחס של O(N²) הקטנת N מובילה להפחתה במספר פעולות חישוב לעיבוד הרצף.  מצד שני כל טוקן שנוסף למילון מרחיב את ממדי שכבות הייצוג במודל ודורש משאבי חישוב נוספים על חשבון פעולות אחרות ברשת.


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

אנטרופיה יחס דחיסה ומדדים של תורת המידע


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


אנטרופיית שנון מהווה בסיס למדידת כמות מידע שמצויה בהתפלגות טוקנים. בהינתן התפלגות הסתברויות p_{i,k} של טוקן tᵢ במילון שגודלו V האנטרופיה מוגדרת כ Hᵢ = −∑{k=1}^{V} p{i,k} log₂ p_{i,k}.  שפות טבעיות מתאפיינות בהתפלגות שבה מספר קטן של מילים מופיע בשכיחות גבוהה בעוד שאר המילים נדירות.


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


יחס הדחיסה מחושב כיחס בין כמות הנתונים בקלט המקורי לבין כמות הנתונים לאחר עיבוד לפי המשוואה g(C(D)) = Bits(D) / Bits(C(D)).  מודל שמציג יחס דחיסה גבוה מעיד על יכולת לקודד משמעות במספר מועט של טוקנים מה שחוסך משאבי חישוב. חישובים של אנטרופיה שמסתמכים רק על הטוקן הראשון של כל מילה דורשים משנה זהירות.


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


מדד הבלבול והקשר המתמטי לטוקניזציה


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


אם נגדיר את N כמספר הטוקנים ברצף הבלבול יחושב כך Perplexity = 2^H = 2^(−(1/N) ∑{i=1}^{N} log₂ P(tᵢ | t₁... t{i-1})).  המשמעות של מדד בלבול מוסברת כגורם הסתעפות.


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


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


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


עומס טוקניזציה והטיות בשפות שונות


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


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


לשם דוגמה אם טקסט באנגלית מיוצג על ידי N טוקנים ואותו טקסט בשפה אחרת מיוצג בעזרת 2N טוקנים העלות עולה באופן ריבועי. בגלל סיבוכיות של O(N²) זמן האימון בטרנספורמר עולה פי 4 כלומר ל O(4N²).


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


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


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


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


מעבר ל Tiktoken במודלים מתקדמים


שינוי בולט בהבנת מערכות נוכחיות הוא עדכון ארכיטקטוני שבוצע במודל Llama 3 שעבר לשימוש בטוקנייזר מבוסס Tiktoken במקום בשיטות קודמות.  ההחלטה על המעבר נובעת מדרישה לייעול תהליכים בסביבת ייצור. שלב הפעולה המקדים שכולל ניקוי ופיצול טקסט גובה משאבי מערכת. ניתוחים הראו שמערכות שפועלות בשפות תכנות מסוימות איטיות לעומת מערכות שנכתבו ב Rust או ב C++. המערכת של Tiktoken נכתבה בשפות אלו ומאפשרת קצב עיבוד מהיר בעזרת פעולות במקביל. בנוסף קיים הבדל באופן ניהול הנתונים. בשיטות מסורתיות מילה שמוזנת פנימה מפורקת לפי חוקי מיזוג גם אם היא מורכבת מצירופים מוכרים שעברו אימון.  


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


שיטות הוספת אקראיות בתהליך האימון


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


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


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


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


כשלים במערכות טוקניזציה והפקת לקחים


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


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


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


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


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


סיכום ומסקנות


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


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


המדע וההנדסה של טוקניזציה
המדע וההנדסה של טוקניזציה


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

מייסד ומדען ראשי, מתמטיקאי מחקר ופיתוח בע"מ

053-7326360


פודקאסט על החברה ועליי, שלמה יונה, ואופן העבודה שלנו ואיתנו: A technical deep dive about


 
 
 

Comments


  • Facebook Social Icon
  • LinkedIn Social Icon

© 2010-2026 mathematic.ai

bottom of page