BPE, SentencePiece i tiktoken: czym różnią się tokenizatory
Tłumaczenie automatyczne
Ten artykuł został automatycznie przetłumaczony z angielskiego oryginału.
BPE to algorytm tokenizacji. SentencePiece i tiktoken to implementacje o różnych zasadach treningu, przetwarzania wstępnego i budowy słownika. SentencePiece obsługuje modele BPE i unigramowe; tiktoken korzysta z kodowań BPE na poziomie bajtów. Ich identyfikatory tokenów nie są wymienne.
Inżynierowie szacujący wykorzystanie kontekstu lub przetwarzający tekst muszą używać tokenizatora i szablonu promptu właściwych dla konkretnego checkpointu lub modelu API.
Odróżnij algorytm od implementacji
Byte Pair Encoding uczy się kolejnych scaleń sąsiednich symboli. BPE oparte na znakach zaczyna od znaków; wersje działające na poziomie bajtów zaczynają od bajtów. Wyuczone scalenia i słownik określają sposób podziału ciągu znaków. Popularne słowo może stanowić jeden token w jednym słowniku, a kilka w innym.
| Nazwa | Co określa | Co nadal zależy od modelu |
|---|---|---|
| BPE | Algorytm oparty na scalaniu | Symbole początkowe, przetwarzanie wstępne, scalenia, słownik |
| SentencePiece | Implementacja tokenizatora surowego tekstu obsługująca BPE i modele unigramowe | Typ modelu, normalizacja, słownik, zastępowanie nieznanych symboli bajtami |
| tiktoken | Implementacja kodowań BPE na poziomie bajtów | Kodowanie, słownik, reguły tokenów specjalnych |
SentencePiece przetwarza surowy tekst Unicode i reprezentuje białe znaki za pomocą znacznika ▁. Zastępowanie nieznanych symboli bajtami jest opcjonalne. tiktoken udostępnia nazwane kodowania i obsługę na poziomie bajtów.
Rodziny tokenizatorów mogą zmieniać się również w obrębie jednej marki modeli. Dokumentacja Mistral odróżnia wcześniejsze tokenizatory SentencePiece od Tekken, który korzysta z BPE w stylu tiktoken. Wczytaj tokenizator checkpointu, zamiast wnioskować o nim na podstawie marki.
Mierz reprezentatywny tekst
Dla każdego obsługiwanego języka i rodzaju treści zapisuj liczbę tokenów po zastosowaniu rzeczywistego szablonu promptu. Uwzględnij znaczniki ról, tokeny specjalne, narzędzia i wszelkie dodatkowe zserializowane instrukcje. Sam widoczny tekst użytkownika może zaniżać rozmiar żądania.
Aby porównać tokenizatory na stałej próbce, określ jednostkę, na przykład słowa lub znaki, i podziel liczbę tokenów przez liczbę tych jednostek. Zachowaj tę samą normalizację i próbkę. „Słowa” wyznaczane przez białe znaki nie są porównywalną jednostką językową dla każdego języka, więc podaj regułę pomiaru.
Sam rozmiar słownika nie dowodzi efektywności tokenizacji między różnymi korpusami treningowymi. Wynik uzyskany tokenizatorem innego modelu również nie dowodzi, że żądanie mieści się w limicie kontekstu wybranego modelu.
Przewodnik inżynierski: tokenizacja przedstawia przykłady słowników i wyjaśnia płodność tokenizatora.