Grundlegendes zu Token
Token sind Wörter, Zeichensätze oder Kombinationen aus Wörtern und Interpunktionszeichen, die von großen Sprachmodellen (Large Language Models, LLMs) verwendet werden, um Text zu zerlegen. Die Tokenisierung ist der erste Schritt beim Training. Das LLM analysiert die semantischen Beziehungen zwischen Token, z. B. wie häufig sie zusammen verwendet werden oder ob sie in ähnlichen Kontexten verwendet werden. Nach dem Training verwendet das LLM diese Muster und Beziehungen, um eine Sequenz von Ausgabetoken basierend auf der Eingabesequenz zu generieren.
Umwandeln von Text in Token
Der Satz eindeutiger Token, mit denen ein LLM trainiert wird, wird als Vokabular bezeichnet.
Wir veranschaulichen das am folgenden Satz:
I heard a dog bark loudly at a cat
Dieser Text kann wie folgt tokenisiert werden:
- I
- gehört
- a
- dog
- bark
- laut
- at
- a
- cat
Durch einen ausreichend großen Satz von Trainingstext kann die Tokenisierung ein Vokabular von vielen Tausenden von Token kompilieren.
Allgemeine Tokenisierungsmethoden
Die spezifische Tokenisierungsmethode variiert je nach LLM. Allgemeine Tokenisierungsmethoden:
- Tokenisierung anhand von Wörtern (Text wird basierend auf einem Trennzeichen in einzelne Wörter aufgeteilt.)
- Tokenisierung anhand von Zeichen (Text wird in einzelne Zeichen aufgeteilt.)
- Tokenisierung anhand von Teilwörtern (Text wird in Teilwörter oder Zeichensätze aufgeteilt.)
Beispielsweise verwenden die von OpenAI entwickelten GPT-Modelle eine Art von Tokenisierung anhand von Teilwörtern, die als BPE (Byte-Pair Encoding, Byte-Paar-Codierung) bezeichnet wird. OpenAI bietet ein Tool zur Visualisierung der Tokenisierung von Text.
Es gibt Vorteile und Nachteile bei jeder Tokenisierungsmethode:
Tokengröße | Vorteile | Nachteile |
---|---|---|
Kleinere Token (Zeichen- oder Teilworttokenisierung) | - Ermöglicht es dem Modell, einen größeren Bereich von Eingaben zu verarbeiten, z. B. unbekannte Wörter, Tippfehler oder komplexe Syntax. - Die Vokabulargröße kann ggf. reduziert werden, sodass weniger Arbeitsspeicherressourcen erforderlich sind. |
- Ein bestimmter Text wird in mehr Token unterteilt, wobei zusätzliche Berechnungsressourcen bei der Verarbeitung erforderlich sind. - Angesichts eines festen Tokengrenzwerts ist die maximale Größe der Modelleingabe und -ausgabe kleiner. |
Größere Token (Worttokenisierung) | - Ein bestimmter Text wird in weniger Token unterteilt und erfordert weniger Berechnungsressourcen bei der Verarbeitung. - Beim gleichen Tokengrenzwert ist die maximale Größe der Modelleingabe und -ausgabe größer. |
- Kann zu einem größeren Vokabular führen, die mehr Speicherressourcen erfordert. - Kann die Fähigkeit des Modells einschränken, unbekannte Wörter, Tippfehler oder komplexe Syntax zu behandeln. |
Verwenden von Token durch LLMs
Nachdem das LLM die Tokenisierung abgeschlossen hat, weist es jedem eindeutigen Token eine ID zu.
Betrachten Sie unseren Beispielsatz:
I heard a dog bark loudly at a cat
Nachdem das Modell eine Worttokenisierungsmethode verwendet hat, kann es wie folgt Token-IDs zuweisen:
- I (1)
- heard (2)
- a (3)
- dog (4)
- bark (5)
- loudly (6)
- at (7)
- a (Dem Token „a“ wurde bereits die ID 3 zugewiesen.)
- cat (8)
Durch Zuweisen von IDs kann Text als Sequenz von Token-IDs dargestellt werden. Der Beispielsatz wird als [1, 2, 3, 4, 5, 6, 7, 3, 8] dargestellt. Der Satz „I heard a cat“ wird als [1, 2, 3, 8] dargestellt.
Wenn das Training fortgesetzt wird, fügt das Modell alle neuen Token im Trainingstext zu seinem Vokabular hinzu und weist ihm eine ID zu. Zum Beispiel:
- meow (9)
- run (10)
Die semantischen Beziehungen zwischen den Token können mithilfe dieser Token-ID-Sequenzen analysiert werden. Mehrwertige numerische Vektoren, die als Einbettungen bezeichnet werden, werden zum Darstellen dieser Beziehungen verwendet. Jedem Token wird eine Einbettung zugewiesen, basierend darauf, wie häufig es zusammen mit den anderen Token oder in ähnlichen Kontexten verwendet wird.
Nachdem es trainiert wurde, kann ein Modell eine Einbettung für Text berechnen, der mehrere Token enthält. Das Modell tokenisiert den Text und berechnet dann einen allgemeinen Einbettungswert basierend auf den gelernten Einbettungen der einzelnen Token. Diese Technik kann für die semantische Dokumentensuche oder das Hinzufügen von Vektorspeichern zu einer KI verwendet werden.
Während der Ausgabegenerierung prognostiziert das Modell einen Vektorwert für das nächste Token in der Sequenz. Das Modell wählt dann das nächste Token aus dem Vokabular basierend auf diesem Vektorwert aus. In der Praxis berechnet das Modell mehrere Vektoren mithilfe verschiedener Elemente der Einbettungen der vorherigen Token. Das Modell wertet dann alle potenziellen Token aus diesen Vektoren aus und wählt das wahrscheinlichste aus, um die Sequenz fortzusetzen.
Die Ausgabegenerierung ist ein iterativer Vorgang. Das Modell fügt das vorhergesagte Token an die bisherige Sequenz an und verwendet dies als Eingabe für die nächste Iteration, wobei es die endgültige Ausgabe Token für Token aufbaut.
Tokeneinschränkungen
Für LLMs gelten Einschränkungen hinsichtlich der maximalen Anzahl von Token, die als Eingabe verwendet oder als Ausgabe generiert werden können. Diese Einschränkung bewirkt häufig, dass die Eingabe- und Ausgabetoken in einem maximalen Kontextfenster kombiniert werden.
Beispielsweise unterstützt GPT-4 bis zu 8.192 Kontexttoken. Die kombinierte Größe der Eingabe- und Ausgabetoken darf 8.192 nicht überschreiten.
Zusammen bestimmen der Tokengrenzwert und die Tokenisierungsmethode eines Modells die maximale Textlänge, die als Eingabe bereitgestellt oder als Ausgabe generiert werden kann.
Betrachten Sie z. B. ein Modell mit einem maximalen Kontextfenster von 100 Token. Das Modell verarbeitet unsere Beispielsätze als Eingabetext:
I heard a dog bark loudly at a cat
Bei Verwendung einer wortbasierten Tokenisierungsmethode handelt es sich bei der Eingabe um neun Token. Dadurch sind 91 Worttoken für die Ausgabe verfügbar.
Bei Verwendung einer zeichenbasierten Tokenisierungsmethode umfasst die Eingabe 34 Token (einschließlich Leerzeichen). Dadurch sind 66 Zeichentoken für die Ausgabe verfügbar.
Tokenbasierte Preise und Ratenbegrenzungen
Generative KI-Dienste verwenden häufig tokenbasierte Preise. Die Kosten für jede Anforderung hängen von der Anzahl der Eingabe- und Ausgabetoken ab. Die Preise können zwischen Eingabe und Ausgabe abweichen. Siehe z. B. Azure OpenAI Service – Preise.
Generative KI-Dienste können auch in Bezug auf die maximale Anzahl von Token pro Minute (TPM) begrenzt sein. Diese Ratenbegrenzungen können je nach Dienstregion und LLM variieren. Weitere Informationen zu bestimmten Regionen finden Sie unter Kontingente und Grenzwerte für Azure OpenAI Service.