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.

NazwaCo określaCo nadal zależy od modelu
BPEAlgorytm oparty na scalaniuSymbole początkowe, przetwarzanie wstępne, scalenia, słownik
SentencePieceImplementacja tokenizatora surowego tekstu obsługująca BPE i modele unigramoweTyp modelu, normalizacja, słownik, zastępowanie nieznanych symboli bajtami
tiktokenImplementacja kodowań BPE na poziomie bajtówKodowanie, 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.