Tokenization (NLP) (HE)

From Systems analysis Wiki
Jump to navigation Jump to search

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

מושגי יסוד

טוקן

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

  • מילה שלמה (לדוגמה, «חתול»).
  • חלק ממילה או תת-מילה (לדוגמה, «בלתי-», «-ניתן-», «-ות»).
  • תו בודד (לדוגמה, «א», «ב», «ג»).
  • בייט (במקרה של טוקניזציה ברמת הבייט).

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

מילון הטוקניזר

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

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

גודל המילון משתנה מאוד בין מודלים: מכ-50,000 טוקנים ב-GPT-2 ועד ליותר מ-100,000 במודלים מודרניים כגון GPT-4 (100,277) ו-LLaMA-3 (128,000).

שיטות הטוקניזציה העיקריות

קיימות שלוש רמות גרנולריות עיקריות של טוקניזציה.

1. טוקניזציה ברמת המילה (Word-level)

  • עיקרון: הטקסט מחולק למילים בודדות על בסיס מפרידים (רווחים, סימני פיסוק).
  • יתרונות: אינטואיטיבי; רצפי הטוקנים קצרים יותר, מה שמפחית את העומס החישובי.
  • חסרונות:
    • בעיית מילים לא ידועות (Out-of-Vocabulary, OOV): המודל אינו מסוגל לעבד מילים שלא היו במילון האימון, כמו גם שגיאות כתיב ומילים חדשות.
    • גודל מילון גדול: נדרש לאחסן את כל המילים הייחודיות, דבר שבעייתי במיוחד עבור שפות עם מורפולוגיה עשירה.

2. טוקניזציה ברמת התו (Character-level)

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

3. טוקניזציה של תת-מילים (Subword Tokenization)

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

  • עיקרון: מילים בשימוש תדיר נשארות כטוקנים שלמים, ואילו מילים נדירות או לא ידועות מפורקות לחלקים קטנים ומשמעותיים יותר (תת-מילים).
  • יתרונות:
    • מטפל ביעילות במילות OOV ובווריאציות מורפולוגיות.
    • גודל מילון נשלט.
    • לוכד את המבנה המורפולוגי של מילים.
  • אלגוריתמים עיקריים:
    • Byte Pair Encoding (BPE): אלגוריתם איטרטיבי שמתחיל מקבוצת תווים ומאחד באופן עקבי את הזוגות השכיחים ביותר לטוקנים חדשים. משמש במודלי GPT. Byte-level BPE, המשמש ב-GPT-2 וב-RoBERTa, מתייחס למילים כרצפי בייטים, מה שפותר לחלוטין את בעיית ה-OOV.
    • WordPiece: אלגוריתם דומה ל-BPE, אך לצורך מיזוג זוגות הוא בוחר את אלה שממקסמים את הסבירות של נתוני האימון. משמש במודלי BERT.
    • Unigram LM: בשונה מ-BPE/WordPiece, שיטה זו מתחילה מאוסף גדול של תת-מילים ומצמצמת אותו בהדרגה על ידי הסרת טוקנים בעלי ההשפעה הקטנה ביותר על ההסתברות הכוללת של הקורפוס. זה מאפשר יצירת מספר טוקניזציות סבירות למילה אחת (ויסות תת-מילים).
  • ערכת הכלים SentencePiece: ספרייה של Google, המממשת BPE ו-Unigram LM ומטפלת בטקסט כזרם רציף של תווים, מה שהופך אותה לאוניברסלית עבור שפות ללא מפרידי מילים מפורשים (לדוגמה, סינית). משמשת במודלי LLaMA ו-T5.

טוקניזציה ב-LLM מולטי-מודאליים

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

  • טוקניזציה ויזואלית: תמונות מפורקות לפאצ'ים (patches) קטנים (לדוגמה, 16x16 פיקסלים), המומרים לאחר מכן לוקטורי טוקנים, בדומה לטקסט.
  • טוקניזציה של אודיו: אותות אודיו רציפים מומרים לרצף של טוקנים דיסקרטיים המייצגים קטעי שמע קצרים.
  • גישה מאוחדת (TEAL): מושג שבו נתונים מכל מודאליות עוברים תחילה טוקניזציה באמצעות הטוקניזר המתאים, ולאחר מכן ה-embeddings שלהם מעובדים במרחב משותף אחיד.

בעיות ומגבלות

הטוקניזציה, למרות חשיבותה, היא מקור לבעיות רבות בפעולת LLM:

  • חוסר עקביות ורגישות: שינויים קטנים בנתוני הקלט (שגיאת כתיב, אותיות רישיות, רווח בסוף) עשויים לשנות באופן קיצוני את הטוקניזציה, מה שמוביל להתנהגות בלתי צפויה של המודל.
  • בעיות רב-לשוניות: מילון אחיד עבור שפות רבות מתגלה לעתים קרובות כלא יעיל עבור שפות עם משאבים מועטים או עשירות מורפולוגית, מה שמוביל לרצפי טוקנים ארוכים מדי.
  • השפעה על הסקה: פירוק לא הגיוני של מספרים (לדוגמה, «25,000» ל-«25», «,», «000») או סמלים מקשה על ביצוע משימות אריתמטיות וסמליות.
  • Glitch Tokens: טוקנים חריגים או נדירים מנתוני האימון (לדוגמה, שמות משתמשים מ-Reddit), שעלולים לגרום להתנהגות בלתי צפויה או מזיקה של המודל.

נוף מתפתח וכיוונים עתידיים

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

  • מודלים ללא טוקניזר: פיתוח מודלים (CANINE, ByT5) הפועלים ישירות ברמת הבייט או התו, כדי לבטל לחלוטין את שלב הטוקניזציה המפורשת ואת הבעיות הנלוות לה.
  • טוקניזציה אדפטיבית וניתנת לאימון: יצירת טוקניזרים שיכולים להסתגל באופן דינמי לשפה, לתחום או אפילו לטקסט קלט ספציפי, או שמאומנים במשותף עם המודל הראשי.
  • גישות מוכוונות-קוגניציה: פיתוח שיטות בהשראת מדעי הקוגניציה על עיבוד שפה אנושי (לדוגמה, «עיקרון המאמץ המינימלי»), ליצירת טוקניזציות בעלות משמעות סמנטית גבוהה יותר.

קישורים

  • סקירת טוקניזציה בקורס LLM של Hugging Face
  • תיעוד טוקניזציה של Mistral AI

ספרות

  • Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
  • Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
  • Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
  • Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
  • Song, X. et al. (2021). Fast WordPiece Tokenization. ACL-Anthology.
  • Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
  • Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
  • Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
  • Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. arXiv:2305.17179.
  • Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT. arXiv:2303.00722.
  • Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
  • Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.