Tokenization (NLP) (SV)

From Systems analysis Wiki
Jump to navigation Jump to search

Tokenisering i kontexten av stora språkmodeller (LLM) är en grundläggande förbehandlingsprocess som består i att dela upp en textsekvens i mindre, hanterbara enheter kallade tokens. Dessa tokens omvandlas sedan till numeriska identifierare som modellen kan bearbeta. Tokenisering är ett kritiskt viktigt första steg eftersom det direkt påverkar modellens prestanda, effektivitet, rättvisa och kvalitet på språkförståelse.

Grundläggande koncept

Token

Token är en diskret textenhet som en språkmodell bearbetar. Beroende på vald tokeniseringsmetod kan en token representera:

  • Ett helt ord (till exempel "katt").
  • En del av ett ord eller ett delord (till exempel "o-", "-tro-", "-lig").
  • Ett enskilt tecken (till exempel "a", "b", "c").
  • En byte (vid byte-level-tokenisering).

Varje unik token tilldelas ett specifikt indexnummer från tokeniserarens ordlista.

Tokeniserarens ordlista

Ordlistan (eller vokabulären) är den fullständiga uppsättningen av alla möjliga tokens som modellen kan känna igen. Ordlistans storlek är en viktig hyperparameter:

  • En stor ordlista gör det möjligt att representera fler ord i sin helhet, vilket förbättrar förståelsen och minskar sekvensernas längd, men ökar modellens storlek och träningskomplexiteten.
  • En liten ordlista är mer kompakt men kräver att sällsynta eller komplexa ord delas upp i fler delord, vilket kan förlänga sekvenser och försvåra inläsning av semantik.

Ordlistans storlek varierar kraftigt mellan modeller: från ~50 000 tokens i GPT-2 till över 100 000 i moderna modeller som GPT-4 (100 277) och LLaMA-3 (128 000).

Huvudsakliga tokeniseringsmetoder

Det finns tre grundläggande granularitetsnivåer för tokenisering.

1. Tokenisering på ordnivå (Word-level)

  • Princip: Texten delas upp i enskilda ord baserat på avgränsare (mellanslag, skiljetecken).
  • Fördelar: Intuitivt begripligt; tokensekvenser är kortare, vilket minskar beräkningsbelastningen.
  • Nackdelar:
    • Problem med okända ord (Out-of-Vocabulary, OOV): Modellen kan inte bearbeta ord som inte fanns i träningsordlistan, liksom stavfel och nya ord.
    • Stor ordlistestorlek: Alla unika ord måste lagras, vilket är särskilt problematiskt för språk med rik morfologi.

2. Tokenisering på teckennivå (Character-level)

  • Princip: Texten delas upp i enskilda tecken.
  • Fördelar:
    • Inget OOV-problem: Vilket ord som helst kan representeras som en sekvens av tecken.
    • Liten ordlista: Begränsad till alfabetets och specialtecknens storlek.
  • Nackdelar:
    • Långa sekvenser: Texten omvandlas till mycket långa tokensequenser, vilket avsevärt ökar beräkningskostnaderna.
    • Förlust av semantik: Det är svårare för modellen att fånga innebörden eftersom den opererar med enskilda tecken snarare än hela ord.

3. Delords-tokenisering (Subword Tokenization)

Detta är ett mellanliggande och i dag mest populärt tillvägagångssätt som kombinerar fördelarna med tidigare metoder.

  • Princip: Ofta förekommande ord förblir hela tokens, medan sällsynta eller okända ord delas upp i mindre, betydelsefulla delar (delord).
  • Fördelar:
    • Hanterar effektivt OOV-ord och morfologiska variationer.
    • Kontrollerbar ordlistestorlek.
    • Fångar ords morfologiska struktur.
  • Huvudsakliga algoritmer:
    • Byte Pair Encoding (BPE): En iterativ algoritm som börjar med en uppsättning tecken och successivt slår samman de vanligast förekommande paren till nya tokens. Används i GPT-modeller. Byte-level BPE, som används i GPT-2 och RoBERTa, behandlar ord som bytesekvenser, vilket fullständigt löser OOV-problemet.
    • WordPiece: En algoritm liknande BPE, men för sammanfogning av par väljer den de par som maximerar sannolikheten för träningsdatan. Används i BERT-modeller.
    • Unigram LM: Till skillnad från BPE/WordPiece börjar denna metod med en stor uppsättning delord och minskar den gradvis genom att ta bort de tokens som minst påverkar korpusens totala sannolikhet. Detta gör det möjligt att skapa flera sannolika tokeniseringar för ett och samma ord (subords-regularisering).
  • SentencePiece-verktyget: Ett bibliotek från Google som implementerar BPE och Unigram LM och behandlar text som ett kontinuerligt teckenflöde, vilket gör det universellt för språk utan tydliga ordavgränsare (till exempel kinesiska). Används i LLaMA- och T5-modeller.

Tokenisering i multimodala LLM

I multimodala modeller som arbetar med mer än bara text utsträcks tokenisering även till andra datatyper:

  • Visuell tokenisering: Bilder delas upp i små patchar (till exempel 16x16 pixlar), som sedan omvandlas till token-vektorer på liknande sätt som text.
  • Ljudtokenisering: Kontinuerliga ljudsignaler omvandlas till en sekvens av diskreta tokens som representerar korta ljudfragment.
  • Enhetligt tillvägagångssätt (TEAL): Ett koncept där data från vilken modalitet som helst först tokeniseras med hjälp av en lämplig tokeniserare, varefter deras embeddings bearbetas i ett gemensamt samlat rum.

Problem och begränsningar

Tokenisering är, trots sin betydelse, en källa till många problem i LLM:ers funktion:

  • Inkonsekvens och känslighet: Små förändringar i indata (stavfel, versaler, blanksteg i slutet) kan drastiskt förändra tokeniseringen, vilket leder till oförutsägbart modellbeteende.
  • Flerspråkiga problem: En gemensam ordlista för många språk är ofta ineffektiv för lågresurs- eller morfologiskt rika språk, vilket leder till alltför långa tokensequenser.
  • Påverkan på resonemang: Ologisk uppdelning av tal (till exempel "25 000" i "25", ",", "000") eller symboler försvårar utförandet av aritmetiska och symboliska uppgifter.
  • Glitch-tokens: Avvikande eller sällsynta tokens från träningsdatan (till exempel användarnamn från Reddit) som kan orsaka oförutsägbart eller skadligt modellbeteende.

Det förändrade landskapet och framtida riktningar

Forskning inom tokenisering bedrivs aktivt inom följande riktningar:

  • Modeller utan tokeniserare: Utveckling av modeller (CANINE, ByT5) som arbetar direkt på byte- eller teckennivå för att helt eliminera steget med explicit tokenisering och dess associerade problem.
  • Adaptiv och inlärningsbar tokenisering: Skapande av tokeniserare som dynamiskt kan anpassa sig till språk, domän eller till och med specifik indata, eller som tränas gemensamt med huvudmodellen.
  • Kognitivt orienterade tillvägagångssätt: Utveckling av metoder inspirerade av kognitionsvetenskap om mänsklig språkbehandling (till exempel "Principen om minsta ansträngning") för att skapa mer semantiskt meningsfulla tokeniseringar.

Referenser

  • Översikt av tokenisering i LLM-kursen från Hugging Face
  • Dokumentation om tokenisering från Mistral AI

Litteratur

  • 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.