Byte Pair Encoding
Ein Wörterbuch mit jedem möglichen Wort wäre riesig, und dennoch würden ständig neue Namen fehlen. Ein Wörterbuch nur mit Zeichen ist klein, verwandelt den Text aber in eine sehr lange Folge. Du brauchst einen Kompromiss: Häufige Fragmente speichern wir als Ganzes, seltenere setzen wir aus kleineren Teilen zusammen.
Byte Pair Encoding (BPE) bildet Texteinheiten durch das schrittweise Zusammenfügen häufiger benachbarter Symbolpaare. Diese Einheiten werden zu Tokens, also Textstücken, die das Modell verarbeitet.
Wenn in den Daten k und o häufig nebeneinander vorkommen, können sie zu ko zusammengefügt werden. Anschließend kann das häufige Paar ko und t das Wort kot bilden. Dafür sind zwei Zusammenführungen nötig, weil jede zwei aktuelle Einheiten verbindet. Die Regeln werden zuvor gelernt und auf neuen Text erneut angewendet.
Die Aufteilung ergibt sich aus der Häufigkeit und muss deshalb weder mit der Bedeutung noch mit dem Wortaufbau übereinstimmen. BPE legt die Einheiten fest; Token Embedding gibt ihren Kennungen getrennt davon numerische Beschreibungen. Die Demonstration erlaubt es, die Zusammenführungen Schritt für Schritt durchzugehen.
Mechanismus und Details
Sennrich, Haddow und Birch passten den Kompressionsalgorithmus für die Wortsegmentierung in der neuronalen Übersetzung an. Ihre Variante beginnt mit Zeichen und einer Wortendmarkierung. Sie zählt Paare unter Berücksichtigung der Worthäufigkeiten, führt das häufigste Paar zusammen und wiederholt die Berechnung. Symbole werden nicht über Wortgrenzen hinweg verbunden. Beschreibung und Algorithmus finden sich in Neural Machine Translation of Rare Words with Subword Units, §3.2.
Die Regeln entstehen vor der Verwendung des Tokenizers
Vereinfachtes eigenes Beispiel: Ist das Paar k + o am häufigsten, entsteht das Symbol ko. Im nächsten Schritt kann ko + t gewinnen und kot ergeben. Jede Operation verbindet zwei aktuell vorhandene Symbole; das Zusammenführen des gesamten Wortes mit drei Buchstaben benötigt hier zwei Schritte. Die Wortendmarkierung lasse ich im Beispiel weg.
Bei der Verarbeitung neuen Textes wendet der Tokenizer zuvor gelernte Regeln an. Er baut das Vokabular nicht für jeden Prompt neu auf. Erst die IDs der entstandenen Einheiten dienen dem Token-Embedding zum Abruf von Vektoren. Das Lernen der Textaufteilung und das Lernen der Werte dieser Vektoren sind separate Operationen.
BPE richtet sich nach Häufigkeiten. Tokengrenzen müssen deshalb weder Morphemen noch Bedeutungen entsprechen. Die Variante in Sennrichs Arbeit arbeitet mit Zeichen; das Wort „Byte“ im Namen bedeutet nicht, dass jeder BPE-Tokenizer mit Rohbytes beginnt. Beim Vergleich von Modellen muss die konkrete Implementierung geprüft werden.
Einen breiteren Zusammenhang zu Embeddings und Attention bietet ein älterer Artikel über den Attention-Mechanismus [Polski]. Hier dient BPE als eigener Eintrag über die Entstehung von Vokabulareinheiten.