BPE vs. SentencePiece vs. tiktoken: wie sich Tokenizers unterscheiden

Automatische Übersetzung

Dieser Artikel wurde automatisch aus der englischen Originalversion übersetzt.

BPE ist ein Tokenization-Algorithmus. SentencePiece und tiktoken sind Implementierungen mit unterschiedlichen Konventionen für Training, Vorverarbeitung und Vokabular. SentencePiece unterstützt BPE- und Unigramm-Modelle; tiktoken nutzt BPE-Kodierungen auf Byte-Ebene. Ihre Token-IDs sind nicht austauschbar.

Wer den Kontextbedarf abschätzt oder Text verarbeitet, muss den Tokenizer und das Prompt-Template des konkreten Checkpoints oder API-Modells verwenden.

Algorithmus und Implementierung unterscheiden

Byte Pair Encoding lernt, benachbarte Symbole wiederholt zusammenzuführen. Zeichenbasiertes BPE beginnt mit Zeichen; Varianten auf Byte-Ebene beginnen mit Bytes. Die gelernten Zusammenführungen und das Vokabular bestimmen, wie eine Zeichenfolge aufgeteilt wird. Ein geläufiges Wort kann in einem Vokabular ein Token und in einem anderen mehrere Tokens sein.

NameWas er festlegtWas weiterhin vom Model abhängt
BPEEin Algorithmus auf Basis von ZusammenführungenAusgangssymbole, Vorverarbeitung, Zusammenführungen, Vokabular
SentencePieceEine Tokenizer-Implementierung für Rohtext mit Unterstützung für BPE und UnigrammModel-Typ, Normalisierung, Vokabular, Byte-Fallback
tiktokenEine Implementierung von BPE-Kodierungen auf Byte-EbeneKodierung, Vokabular, Regeln für spezielle Tokens

SentencePiece verarbeitet Unicode-Rohtext und stellt Leerraum mit dem Marker ▁ dar. Byte-Fallback ist optional. tiktoken bietet benannte Kodierungen und Verarbeitung auf Byte-Ebene.

Auch innerhalb einer Model-Marke können sich die Tokenizer-Familien ändern. Die Dokumentation von Mistral unterscheidet frühere SentencePiece-Tokenizers von Tekken, das BPE im Stil von tiktoken verwendet. Laden Sie den Tokenizer des Checkpoints, statt ihn aus der Marke abzuleiten.

Repräsentativen Text messen

Erfassen Sie für jede unterstützte Sprache und Inhaltsart die Anzahl der Tokens nach Anwendung des tatsächlichen Prompt-Templates. Berücksichtigen Sie Rollenmarker, spezielle Tokens, Tools und alle zusätzlichen serialisierten Anweisungen. Der sichtbare Nutzertext allein kann die Größe der Anfrage unterschätzen.

Definieren Sie für den Vergleich von Tokenizers anhand einer festen Stichprobe eine Einheit, etwa Wörter oder Zeichen, und teilen Sie die Anzahl der Tokens durch die Anzahl dieser Einheiten. Halten Sie Normalisierung und Stichprobe konstant. Durch Leerraum definierte „Wörter“ sind nicht für jede Sprache eine vergleichbare linguistische Einheit. Geben Sie deshalb die Messregel an.

Die Größe des Vokabulars allein belegt keine Token-Effizienz über unterschiedliche Trainingskorpora hinweg. Auch eine Zählung mit dem Tokenizer eines anderen Models beweist nicht, dass Ihre Anfrage in das Kontextlimit des gewählten Models passt.

Engineering-Leitfaden: Tokenization zeigt Beispiele für Vokabulare und erklärt die Tokenizer-Fertilität.