Tokenization (NLP) (PL)
Tokenizacja w kontekście dużych modeli językowych (LLM) to fundamentalny proces wstępnego przetwarzania, polegający na dzieleniu sekwencji tekstu na mniejsze, łatwiejsze w obsłudze jednostki zwane tokenami. Tokeny te są następnie przekształcane w identyfikatory numeryczne, które model może przetwarzać. Tokenizacja jest krytycznie ważnym pierwszym krokiem, ponieważ bezpośrednio wpływa na wydajność, efektywność, rzetelność i jakość rozumienia języka przez model.
Podstawowe koncepcje
Token
Token to dyskretna jednostka tekstu przetwarzana przez model językowy. W zależności od wybranej metody tokenizacji token może reprezentować:
- Całe słowo (np. „kot").
- Część słowa lub podslowo (np. „nie-", „-do-", „-brze").
- Pojedynczy znak (np. „a", „b", „c").
- Bajt (w przypadku tokenizacji na poziomie bajtów, byte-level).
Każdemu unikalnemu tokenowi przypisywany jest określony numer indeksowy ze słownika tokenizatora.
Słownik tokenizatora
Słownik (lub wokabularz) to pełny zbiór wszystkich możliwych tokenów, które model może rozpoznać. Rozmiar słownika jest ważnym hiperparametrem:
- Duży słownik pozwala reprezentować więcej słów w całości, co poprawia rozumienie i skraca długość sekwencji, ale zwiększa rozmiar modelu i złożoność uczenia.
- Mały słownik jest bardziej kompaktowy, lecz wymaga dzielenia rzadkich lub złożonych słów na większą liczbę podsłów, co może wydłużać sekwencje i utrudniać uchwycenie semantyki.
Rozmiar słownika znacznie różni się między modelami: od ~50 000 tokenów w GPT-2 do ponad 100 000 we współczesnych modelach, takich jak GPT-4 (100 277) i LLaMA-3 (128 000).
Główne metody tokenizacji
Istnieją trzy podstawowe poziomy granularności tokenizacji.
1. Tokenizacja na poziomie słów (Word-level)
- Zasada: Tekst jest dzielony na poszczególne słowa na podstawie separatorów (spacje, znaki interpunkcyjne).
- Zalety: Intuicyjnie zrozumiała; krótsze sekwencje tokenów, co zmniejsza obciążenie obliczeniowe.
- Wady:
- Problem słów spoza słownika (Out-of-Vocabulary, OOV): Model nie może przetworzyć słów, których nie było w słowniku treningowym, ani literówek i nowych słów.
- Duży rozmiar słownika: Konieczność przechowywania wszystkich unikalnych słów, co jest szczególnie problematyczne dla języków o bogatej morfologii.
2. Tokenizacja na poziomie znaków (Character-level)
- Zasada: Tekst jest dzielony na poszczególne znaki.
- Zalety:
- Brak problemu OOV: Każde słowo można przedstawić jako sekwencję znaków.
- Mały słownik: Ograniczony rozmiarem alfabetu i znaków specjalnych.
- Wady:
- Długie sekwencje: Tekst jest przekształcany w bardzo długie sekwencje tokenów, co znacząco zwiększa koszty obliczeniowe.
- Utrata semantyki: Modelowi trudniej uchwycić znaczenie, ponieważ operuje pojedynczymi znakami, a nie całymi słowami.
3. Tokenizacja podsłowna (Subword Tokenization)
To podejście pośrednie i obecnie najpopularniejsze, łączące zalety poprzednich metod.
- Zasada: Często używane słowa pozostają całymi tokenami, natomiast słowa rzadkie lub nieznane są dzielone na mniejsze, znaczące części (podsłowa).
- Zalety:
- Efektywnie obsługuje słowa OOV i wariacje morfologiczne.
- Kontrolowany rozmiar słownika.
- Uchwytuje strukturę morfologiczną słów.
- Główne algorytmy:
- Byte Pair Encoding (BPE): Iteracyjny algorytm, który rozpoczyna od zbioru znaków i sukcesywnie łączy najczęściej występujące pary w nowe tokeny. Używany w modelach GPT. Byte-level BPE, stosowany w GPT-2 i RoBERTa, traktuje słowa jako sekwencje bajtów, co całkowicie eliminuje problem OOV.
- WordPiece: Algorytm podobny do BPE, lecz przy łączeniu par wybiera te, które maksymalizują wiarygodność danych treningowych. Używany w modelach BERT.
- Unigram LM: W przeciwieństwie do BPE/WordPiece, metoda ta zaczyna od dużego zbioru podsłów i stopniowo go redukuje, usuwając tokeny mające najmniejszy wpływ na łączne prawdopodobieństwo korpusu. Pozwala to tworzyć kilka prawdopodobnych tokenizacji dla jednego słowa (regularyzacja podsłowna).
- Narzędzie SentencePiece: Biblioteka firmy Google implementująca BPE i Unigram LM, przetwarzająca tekst jako ciągły strumień znaków, co czyni ją uniwersalną dla języków bez wyraźnych separatorów słów (np. chińskiego). Używana w modelach LLaMA i T5.
Tokenizacja w multimodalnych LLM
W modelach multimodalnych, operujących nie tylko na tekście, tokenizacja rozciąga się również na inne typy danych:
- Tokenizacja wizualna: Obrazy są dzielone na małe patche (np. 16x16 pikseli), które następnie przekształcane są w wektory-tokeny, analogicznie do tokenów tekstowych.
- Tokenizacja audio: Ciągłe sygnały audio są przekształcane w sekwencję dyskretnych tokenów reprezentujących krótkie fragmenty dźwięku.
- Jednolite podejście (TEAL): Koncepcja, w której dane dowolnej modalności są najpierw tokenizowane za pomocą odpowiedniego tokenizatora, a następnie ich embeddingi przetwarzane są we wspólnej, zunifikowanej przestrzeni.
Problemy i ograniczenia
Tokenizacja, mimo swojego znaczenia, jest źródłem wielu problemów w działaniu LLM:
- Niespójność i wrażliwość: Niewielkie zmiany danych wejściowych (literówka, wielkość liter, spacja na końcu) mogą radykalnie zmienić tokenizację, prowadząc do nieprzewidywalnego zachowania modelu.
- Problemy wielojęzyczne: Wspólny słownik dla wielu języków często okazuje się nieefektywny dla języków niskobudżetowych lub morfologicznie bogatych, prowadząc do nadmiernie długich sekwencji tokenów.
- Wpływ na rozumowanie: Nielogiczne dzielenie liczb (np. „25 000" na „25", „,", „000") lub symboli utrudnia wykonywanie zadań arytmetycznych i symbolicznych.
- Tokeny-glicze (Glitch Tokens): Anomalne lub rzadkie tokeny z danych treningowych (np. nazwy użytkowników z serwisu Reddit), które mogą powodować nieprzewidywalne lub szkodliwe zachowanie modelu.
Rozwijający się krajobraz i przyszłe kierunki
Badania w dziedzinie tokenizacji są aktywnie prowadzone w następujących obszarach:
- Modele bez tokenizatora: Opracowywanie modeli (CANINE, ByT5) działających bezpośrednio na poziomie bajtów lub znaków, aby całkowicie wyeliminować etap jawnej tokenizacji i związane z nim problemy.
- Adaptacyjna i uczalna tokenizacja: Tworzenie tokenizatorów mogących dynamicznie dostosowywać się do języka, domeny lub nawet konkretnego tekstu wejściowego, bądź uczonych wspólnie z modelem głównym.
- Podejścia kognitywnie zorientowane: Opracowywanie metod inspirowanych nauką kognitywną o przetwarzaniu języka przez człowieka (np. „Zasada najmniejszego wysiłku") w celu tworzenia semantycznie bardziej sensownych tokenizacji.
Odnośniki
- Przegląd tokenizacji w kursie dotyczącym LLM od Hugging Face
- Dokumentacja tokenizacji od Mistral AI
Literatura
- 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.