Tokenisierung
Wie Text zu Zahlen wird: Byte-Pair-Encoding, warum deutsche Komposita teurer sind als englische Wörter und was das für Kosten und Kontext bedeutet.
Die Idee
Ein Modell rechnet mit Zahlen. Bevor Text hineingeht, wird er in Stücke geschnitten, und jedes Stück bekommt eine Nummer. Diese Stücke heißen Token und sind meist kürzer als ein Wort und länger als ein Buchstabe.
„Rechnungsprüfung" wird etwa zu Rech | nungs | prüfung, also drei Token. Das
englische „invoice check" ist zwei.
Was daraus folgt
| Auswirkung | Praktische Folge |
|---|---|
| Deutsch braucht mehr Token | Derselbe Inhalt kostet 20 bis 40 Prozent mehr |
| Kontextfenster zählt Token | Ein deutsches Dokument passt kürzer hinein |
| Zahlen werden zerlegt | Rechnen ist deshalb keine Stärke von Sprachmodellen |
| Seltene Namen werden zerstückelt | Fachbegriffe belegen unverhältnismäßig viele Token |
Byte-Pair-Encoding
- 01
Mit einzelnen Bytes beginnen
Das Vokabular enthält zunächst alle 256 möglichen Bytes. Damit ist jeder Text darstellbar, auch mit Emoji und fremden Schriften.
- 02
Häufigstes Paar suchen
Über den gesamten Trainingstext das am häufigsten benachbarte Paar finden.
- 03
Zusammenfassen
Dieses Paar wird ein neues Token mit eigener Nummer.
- 04
Wiederholen
Bis die gewünschte Vokabulargröße erreicht ist, meist 32.000 bis 200.000.
# Faustregeln zum Nachrechnen, ohne Bibliothek:
def token_schaetzung(text, sprache="de"):
zeichen_je_token = 3.2 if sprache == "de" else 4.0
return round(len(text) / zeichen_je_token)
de = "Die Rechnungsprüfung erfolgt durch die Fachabteilung."
en = "The invoice check is carried out by the department."
print(token_schaetzung(de, "de"), token_schaetzung(en, "en")) # 16 13Was das für Kosten heißt
Bei einem Preis von 3 EUR je Million Eingabetoken und einem Dokument mit 10.000 Zeichen:
| Sprache | Zeichen je Token | Token | Kosten |
|---|---|---|---|
| Englisch | 4,0 | 2.500 | 0,0075 EUR |
| Deutsch | 3,2 | 3.125 | 0,0094 EUR |
| Deutsch, Fachtext | 2,8 | 3.571 | 0,0107 EUR |
Der Aufschlag von 25 bis 43 Prozent ist kein Rundungsfehler, sondern ein struktureller Nachteil, der bei jeder Kostenschätzung eingerechnet gehört.
Warum die Perplexität dadurch unvergleichbar wird
Perplexität wird je Token gemessen. Ein Tokenizer, der denselben Text in mehr Stücke zerlegt, verteilt dieselbe Information auf mehr Vorhersagen und senkt damit die Perplexität, ohne dass das Modell besser wäre.
Durchgerechnet: Modell A hat PPL = 8 bei 3,2 Zeichen je Token, Modell B hat
PPL = 12 bei 4,0 Zeichen je Token.
- A:
(1/3,2) × log₂ 8 = 0,3125 × 3 = 0,938Bit je Zeichen - B:
(1/4,0) × log₂ 12 = 0,25 × 3,585 = 0,896Bit je Zeichen
Modell B ist trotz der höheren Perplexität das bessere Sprachmodell. Ein reiner Perplexitätsvergleich hätte das Gegenteil nahegelegt.
Praktische Fallen
- Führende Leerzeichen gehören zum Token.
" Rechnung"und"Rechnung"sind verschiedene Token mit verschiedenen Nummern. - Zahlen werden je nach Tokenizer unterschiedlich zerlegt.
1234kann ein Token sein oder vier, was Rechenaufgaben zusätzlich erschwert. - Sonderzeichen und Emoji brauchen oft mehrere Token, obwohl sie ein Zeichen sind.
- Ein Vokabular ohne die eigene Fachsprache zerlegt jeden Fachbegriff in Stücke und verbraucht dadurch mehr Kontext.
Die Vokabulargröße als Kompromiss
| Vokabular | Token je Text | Ausgabeschicht | Anmerkung |
|---|---|---|---|
| 32.000 | mehr | 32.000 · h Parameter | Ältere Modelle |
| 128.000 | weniger | 128.000 · h | Heute üblich |
| 256.000 | deutlich weniger | 256.000 · h | Mehrsprachige Modelle |
Bei h = 4096 kostet die Ausgabeschicht bei 32.000 Einträgen 131 Millionen
Parameter, bei 256.000 bereits 1,05 Milliarden. Ein größeres Vokabular spart
Kontext und Rechenzeit je Text, kostet aber Speicher: der Kompromiss, den jede
Modellfamilie neu entscheidet.
Passende Kurse und Quellen
Hugging Face NLP-Kurs
Tokenisierung, Transformer, Feinabstimmung und Bereitstellung, durchgehend mit Code. Setzt Python voraus, dafür arbeitet man am Ende mit echten Modellen.
Für Entwicklung mit Sprachmodellen, wenn es über das Aufrufen einer Schnittstelle hinausgehen soll.
Speech and Language Processing
Jurafsky und Martin, das Standardwerk der Sprachverarbeitung, kapitelweise frei. Deckt klassische Verfahren und Sprachmodelle in einem Bogen ab.
Für alle, die Sprachverarbeitung systematisch lernen wollen, klassisch und modern in einem Bogen.