Tokenizacja to jedyny krok w całym przebiegu modelu, w którym nic się nie uczy. Zwykły algorytm ze stałą listą — i mimo to decyduje o rachunku, który dostaniesz.
Czym jest tokenizacja
Tokenizacja to zamiana ciągu znaków na ciąg numerów tokenów przy użyciu stałego słownika. Najpopularniejsza rodzina metod to BPE i jej warianty: słownik buduje się raz, przed treningiem modelu, scalając najczęściej współwystępujące pary znaków w coraz dłuższe fragmenty. Efektem jest lista kilkudziesięciu do kilkuset tysięcy fragmentów, która potem już się nie zmienia.
To nie jest część sieci neuronowej
Tokenizer nie ma wag i niczego się nie uczy podczas pracy. Jest deterministyczny — ten sam tekst zawsze da ten sam wynik. Znaczenie pojawia się dopiero krok dalej, gdy numer tokenu służy do wyciągnięcia wiersza z macierzy embeddingów, a ta jest już częścią modelu i powstała w treningu. Rozbijanie jest algorytmem, nadawanie znaczenia jest siecią.
Tokenizer jest przyspawany do modelu
Numer tokenu to adres wiersza w macierzy embeddingów. Podmiana tokenizera sprawia, że te same numery wskazują inne wiersze, więc model przestaje działać sensownie. Dlatego tokenizer nie jest wymiennym narzędziem, tylko integralną częścią wydania modelu — i dlatego liczby tokenów nie da się przenosić między modelami.
Anglocentryczność i koszt polskiego
Słowniki powstają na danych treningowych, w których dominuje angielski, więc angielskie słowa częściej mieszczą się w jednym tokenie. Języki fleksyjne rozbijają się gęściej: każda forma gramatyczna jest osobnym, rzadszym ciągiem znaków. Praktyczny skutek dla polskich wdrożeń to wyższy koszt i szybsze zapełnianie okna kontekstu przy tej samej treści.