LLM-Token-Zähler

Zählen Sie im Browser exakt, wie viele Token Ihr Text in der echten Kodierung eines Modells kostet. Nichts wird hochgeladen, und keine Zahl hier ist geschätzt.

Nichts, was Sie hier einfügen, verlässt diesen Browser. Das Vokabular der gewählten Kodierung wird einmal von dieser Seite geladen, und gezählt wird in einem Web Worker in diesem Tab – öffnen Sie Ihr eigenes Netzwerkpanel und sehen Sie nach: keine Anfrage trägt Ihren Text.

Wählen Sie das Modell, auf das Sie wirklich zielen. Ein Modell benutzt eine Kodierung, mehrere Modelle teilen sich eine, und eine Zählung gehört zur Kodierung und nicht zum Namen.

Kodierungo200k_base
Ihr Text

Fügen Sie oben etwas ein oder tippen Sie etwas, und die genaue Tokenzahl erscheint hier.

Was ein Token wirklich ist

Ein Sprachmodell liest Ihren Text weder als Buchstaben noch als Wörter. Bevor irgendetwas anderes geschieht, wird der Text in Token zerschnitten, und ein Token ist eine Folge von Bytes, für die das Modell eine einzige Zahl hat. Manche Token sind tatsächlich ganze Wörter. Viele sind ein Wort samt dem Leerzeichen davor, weshalb dasselbe Wort je nach dem, was vor ihm steht, unterschiedlich viel kosten kann. Andere sind eine Endung, ein Satzzeichen, eine Einrückung oder ein Bruchstück, das kein Teil von irgendetwas ist, das ein Leser benennen würde. Zerschnitten wird nach einer Tabelle, die dadurch entstand, dass gezählt wurde, welche Folgen in einem großen Textbestand am häufigsten gemeinsam vorkommen, und nichts daran wurde darauf ausgelegt, zu der Art zu passen, wie irgendjemand schreibt.

  • Ein Token ist eine Folge von Bytes und keine Folge von Zeichen. Die Unterscheidung klingt spitzfindig, bis man außerhalb des lateinischen Alphabets schreibt — dort ist sie alles.
  • Ein häufiges englisches Wort ist meist ein Token. Ein seltenes, ein Name, ein Produktcode oder ein Tippfehler sind mehrere, weil die Tabelle keinen Eintrag für das Ganze hat und es aus kürzeren Stücken zusammensetzen muss.
  • Leerraum ist nicht umsonst. Einrückung, Leerzeilen und die Leerzeichen in einer eingefügten Tabelle sind alle Bytes, und sie werden alle gezählt. Ein Prompt, der ordentlich aussieht, kann spürbar mehr kosten als derselbe Prompt flach geschrieben.
  • Die Zählung hängt an den genauen Bytes und an sonst nichts. Zwei Texte, die auf dem Bildschirm gleich aussehen, sich aber in einem unsichtbaren Zeichen unterscheiden — einem geschützten Leerzeichen, einer Byte-Reihenfolge-Marke, einem Apostroph anderer Art —, sind verschiedene Texte und können auf verschiedene Zahlen kommen.

Deshalb ist die Faustregel, die alle wiederholen — die Zeichen durch vier teilen —, überhaupt keine Regel. Sie ist ein Durchschnitt über eine Art Text in einer Sprache, und sie irrt in die Richtung, die Geld kostet, sobald der Text Code ist, eine Tabelle oder eine Liste von Bezeichnern — oder in irgendetwas anderem als Englisch geschrieben ist. Die Zahl auf dieser Seite ist nicht dieser Durchschnitt. Sie ist der wirkliche Schnitt, ausgeführt von der wirklichen Tabelle, in Ihrem Browser.

Die Kodierung nimmt die Zählung vor

Die Tabelle und die Zusammenführungsregeln heißen zusammen eine Kodierung, und die trägt einen eigenen Namen. Dieser Name ist das, was zu lernen sich lohnt, denn die Zählung gehört der Kodierung und keinem Modell: Mehrere Modelle teilen sich eine Kodierung, und ein Modell, das durch ein neueres ersetzt wird, behält sehr oft die Kodierung seines Vorgängers. Wenn diese Seite Ihnen eine Zahl zeigt, zeigt sie dazu die Kodierung, unter der gerechnet wurde, direkt neben dem Modell, das Sie gewählt haben.

  • Ein Modell benutzt eine Kodierung. Die Zuordnung ist viele-zu-eins, also sagt es mehr, zu wissen, welche Kodierung Ihr Modell benutzt, als das Modell selbst zu kennen.
  • Eine Kodierung hat einen veröffentlichten Namen wie o200k_base, und dieser Name bezeichnet überall dieselbe Tabelle. Eine Zählung, die auf dieser Seite unter einer Kodierung vorgenommen wurde, und eine Zählung, die anderswo unter derselben Kodierung vorgenommen wurde, stimmen überein — und genau das macht eine Zählung mit angehängter Kodierung überhaupt erst überprüfbar.
  • Eine Zählung ist nur mit ihrer Kodierung daneben aussagekräftig. Eine Zahl, die mit einem Modellnamen und ohne Kodierung genannt wird, ist eine Zahl, die sich nicht überprüfen lässt — und sie ist das, was die meisten Seiten zu diesem Thema liefern.

Die praktische Folge überrascht viele: Der Wechsel zwischen zwei Modellen, die sich eine Kodierung teilen, bewegt die Zahl überhaupt nicht, und das ist das Werkzeug, das recht hat, und nicht das Werkzeug, das kaputt ist. Wer sehen will, wie sich eine Zählung ändert, muss die Kodierung wechseln und nicht den Modellnamen.

Warum Text, der nicht englisch ist, mehr kostet

Hier kommt der Teil, den Ihnen keine Seite, die von Englisch ausgeht, erzählen wird, und er ist der Grund, warum es diese hier gibt. Die gebräuchlichen Kodierungen arbeiten auf Byte-Ebene: Sie setzen an den UTF-8-Bytes Ihres Textes an und nicht an seinen Zeichen. Ein lateinischer Buchstabe ist ein Byte. Ein hebräischer, arabischer, griechischer oder kyrillischer Buchstabe sind zwei. Ein chinesisches, japanisches oder koreanisches Zeichen sind drei. Ein Emoji sind vier, und eine Flagge oder eine zusammengefügte Familie sind mehrere davon hintereinander. Noch bevor überhaupt eine Tabelle zu Rate gezogen wird, ist derselbe Satz in der einen Sprache also bereits zwei- oder dreimal so viele Bytes wie in der anderen.

  • Die Tabellen entstanden, indem Folgen in einem Korpus gezählt wurden, der ganz überwiegend englisch ist, also bekamen englische Wörter Einträge und Wörter anderer Sprachen oft nicht. Eine Sprache, für deren häufige Wörter es keinen Eintrag gibt, wird in Bruchstücken buchstabiert.
  • Das kommt zu den Byte-Kosten hinzu und tritt nicht an ihre Stelle. Ein Wort, das aus drei Bruchstücken zusammengesetzt werden muss, von denen jedes zwei oder drei Bytes ist, ist doppelt teuer.
  • Die Wirkung ist unter den nicht englischen Sprachen nicht überall gleich. Eine Schrift, deren häufige Folgen in der Tabelle stehen, kommt viel besser weg als eine, die kaum vertreten war, und der einzige Weg zu erfahren, wo die eigene steht, ist, eigenen Text einzufügen und nachzusehen.
  • Deshalb lässt sich ein auf Englisch aufgestelltes Budget nicht übertragen. Wenn Ihnen gesagt wurde, ein Kontextfenster fasse eine bestimmte Zahl von Seiten, dann wurde dieser Wert ziemlich sicher auf Englisch gemessen, und Ihre eigene Sprache wird ihn nicht erreichen.

Nichts davon ist ein Mangel, der sich durch anderes Schreiben umgehen ließe, und es ist auch kein Grund, auf Englisch zu schreiben. Es sind Kosten, die man sehen können sollte, bevor man sich auf sie einlässt, und genau das ist die ganze Aufgabe der Zahl weiter oben.

Ein Zeichen kann über mehrere Token hinweg zerschnitten werden

Weil ein Token eine Folge von Bytes ist und ein Zeichen außerhalb des lateinischen Alphabets mehrere Bytes hat, wird ein einzelnes Zeichen regelmäßig zerteilt: Seine ersten Bytes fallen in das eine Token und seine letzten in das nächste. Keines dieser beiden Token ist für sich genommen Text. Sie so auszugeben, als wären sie es, bringt die Reihe von Ersetzungszeichen hervor, die Sie vielleicht auf anderen Seiten gesehen haben, die versprechen, Ihnen Ihre Token zu zeigen — und es zerstört genau die Einsicht, die das Bild geben sollte.

Deshalb zeichnet diese Website stattdessen ein Segment: die kürzeste Folge aufeinanderfolgender Token, deren Bytes vollständigen Text ergeben. Meist ist das ein Token. Wo ein Zeichen zerschnitten wurde, sind es zwei oder mehr — bis zu vier bei einem Zeichen, das vier Bytes hat und Byte für Byte zerteilt wurde —, und das Segment wird ganz gezeichnet, mit der Zahl der Token darin daneben, sodass Sie den Schnitt sehen, statt das Zeichen an ihn zu verlieren. Die Zählung wird davon nie berührt. Das Zerschneiden ist eine Tatsache darüber, wie die Bytes zerteilt wurden, und die Summe ist die Summe.

Das Bild des eigenen Textes lesen

Unter der Zahl wird Ihr Text ein zweites Mal gezeichnet, diesmal mit sichtbaren Grenzen. Jeder Block in diesem Bild ist ein Segment, die Blöcke laufen in der Reihenfolge, in der Sie sie geschrieben haben, und nichts wird ausgelassen oder gekürzt — was Sie ansehen, ist also Ihr eigener Text und keine Liste von Bruchstücken, die daraus genommen wurden. Das ist die Frage, die die Zahl nicht beantworten kann: nicht, was das Ganze kostet, sondern welche Teile davon die teuren sind.

  • Ein Block ohne Zahl darauf ist ein einzelnes Token, und das ist der gewöhnliche Fall. Er bleibt absichtlich unbeschriftet: eine Ziffer auf jedem Block wäre eine Mauer aus Ziffern über Ihren eigenen Sätzen und würde die Blöcke begraben, die anzusehen sich lohnt. Die Grenze ist das, was man abliest, und die Schattierung ist das, was einen Block enden und den nächsten beginnen lässt.
  • Ein Block, der eine kleine Zahl trägt, ist ein Segment aus mehr als einem Token, und dort wurde ein Zeichen über eine Grenze hinweg zerschnitten. Das Zeichen ist noch da, ganz gezeichnet, mit der Zahl der Token daneben, die es gekostet hat — ein Schnitt zeigt sich also als Kosten und nicht als Schaden an Ihrem Text. Ein Emoji oder ein Zeichen aus einer älteren Schrift kann vier erreichen.
  • Leerzeichen, Zeilenumbrüche und Einrückung werden gezeichnet wie alles andere, weil sie gezählt werden wie alles andere. Eine Strecke von Blöcken über dem, was wie gar nichts aussieht, ist an einem langen Prompt das, was sich am billigsten beheben lässt, und sie ist unsichtbar, bis man sie sehen kann.
  • Ein Wechsel des Modells formt das Bild jedes Mal um, wenn er die Kodierung ändert, und lässt es genau so, wie es war, wenn er das nicht tut. Das ist dieselbe Tatsache, die die Zahl zeigt, in einer Form, in der sich sehen lässt, wo der Unterschied liegt, und nicht nur, dass es einen gibt.

Ein sehr langer Text wird nur bis zu einer Grenze gezeichnet, und wo die Zeichnung aufhört, sagt die Seite, wie viele Blöcke sie von wie vielen gezeichnet hat. Die Zählung ist nie auf dieselbe Weise begrenzt: Sie geht über alles, was Sie eingefügt haben, in jeder Länge, und nichts am Bild wirkt sich auf sie aus. Die Grenze besteht, weil ein Browser jeden Block einzeln setzt und ein ganzes Dokument mehr davon wären, als eine Seite nützlich zeigen könnte — was Sie jenseits dieses Punktes verlieren, ist also das Bild vom Rest und nie die Antwort über ihn.

Warum manche Modelle hier keine Zahl tragen

Nicht jedes Modell lässt sich in Ihrem Browser zählen, und das Ehrliche daran ist, zu sagen, welche und warum, statt Ihnen eine geratene Zahl zu zeigen. Es gibt drei Zustände, in denen ein Modell auf dieser Seite sein kann, und sie werden auf dem Bildschirm auseinandergehalten statt miteinander verwischt.

  • Seine Kodierung ist veröffentlicht und diese Website liefert sie aus. Sie bekommen eine genaue Zählung, hier gerechnet, anhand der echten Tabelle.
  • Seine Kodierung ist veröffentlicht und diese Website liefert sie nicht aus. Die Zeile nennt die Kodierung und sagt, warum — meistens, weil die Datei von niemandem veröffentlicht wird, der eine Lizenz nennt, die einem anderen die Weiterverbreitung erlaubt. Die Tabelle gibt es; die Weigerung ist unsere, und die Zeile sagt das.
  • Seine Kodierung wurde nie veröffentlicht. Es gibt keine Tabelle zum Ausliefern und keine zum Verweigern, also kann keine Seite irgendwo dieses Modell in Ihrem Browser zählen, was immer sie behauptet. Die Zeile sagt das und trägt keine Zahl, keine Schätzung und keine Spanne.

Bei dieser letzten Zeile schummeln die meisten Seiten zu diesem Thema stillschweigend: Sie schicken Ihren Text durch die Tabelle eines anderen Modells und geben das Ergebnis aus, als wäre es eine Messung. Das ist nicht bloß ungenau, es ist verzerrt, und am stärksten verzerrt bei genau dem Text, der am schwersten zu budgetieren ist — Code und allem, was nicht englisch geschrieben ist. Die genaue Zählung für ein solches Modell kommt aus dem eigenen Token-Zähldienst seines Herstellers, und der braucht einen API-Schlüssel, den eine Seite, die vollständig in Ihrem Browser läuft, gar nicht halten kann und nie von Ihnen verlangen darf. Zu diesem Dienst zu greifen ist die ehrliche Antwort, und sie ist die, die diese Seite Ihnen statt einer Zahl gibt.

Aus einer Zählung selbst Kosten machen

Diese Seite nennt keine Preise, und das ist Absicht: Ein Preis veraltet schneller als alles andere an diesem Thema, und ein veralteter Preis lässt eine Seite nicht unvollständig, er lässt sie falsch. Was nicht veraltet, ist die Rechnung, also steht sie hier, und Sie können sie auf das anwenden, was die Seite des Anbieters selbst heute sagt.

  • Anbieter nennen einen Preis je Million Token. Nehmen Sie die Zählung von dieser Seite, teilen Sie sie durch eine Million und multiplizieren Sie sie mit diesem Preis. Das sind die Kosten dafür, den Text einmal zu senden.
  • Eingabe und Ausgabe werden getrennt bepreist, und die Ausgabe ist meist die teurere von beiden. Diese Seite zählt, was Sie senden. Sie kann keine Antwort zählen, die es noch nicht gibt, also ist jede Kostenrechnung, die Sie daraus aufstellen, eine Untergrenze und nie eine Summe.
  • Ein Gespräch schickt seinen Verlauf jedes Mal mit. Ist Ihr Text eine Systemnachricht, die bei jeder Runde mitreist, dann multiplizieren Sie mit der Zahl der Runden, die Sie erwarten, und noch einmal mit der Zahl der Nutzer, bevor Sie entscheiden, ob es einen Nachmittag wert ist, sie zu kürzen.

Dieselbe Zählung beantwortet die andere Frage, die Menschen hierherbringen, nämlich ob ein Text hineinpasst. Auch das wird Ihnen diese Seite nicht sagen, denn ein Kontextfenster ist ein Wert, der sich bewegt, und ein Versprechen über das Hineinpassen ist eines, das kein Werkzeug halten kann, das nicht selbst das Modell ist. Was sie Ihnen gibt, ist die Zahl, mit der sich jeder Wert vergleichen lässt, den der Anbieter veröffentlicht.

Nichts, was Sie einfügen, verlässt Ihren Browser

Gezählt wird in der Seite, die Sie ohnehin schon geladen haben. Die Tabelle für die Kodierung, die Sie gewählt haben, wird einmal von dieser Website geholt — das ist das Holen einer Datei und kein Hochladen Ihres Textes —, und alles danach läuft auf Ihrer eigenen Maschine, in einem Hintergrund-Thread, damit ein langes Dokument den Tab nicht einfriert. Öffnen Sie das Netzwerkpanel Ihres Browsers und sehen Sie beim Tippen zu: Es geht keine Anfrage hinaus, die trägt, was Sie geschrieben haben.

Das ist es, was es unbedenklich macht, genau das einzufügen, was Sie wirklich gezählt haben wollen — den Prompt eines Kunden, eine interne Systemnachricht, ein Stück aus einem privaten Dokument — statt einer bereinigten Fassung davon, die ohnehin auf eine andere Zahl gekommen wäre. Gespeichert wird auch nichts: Laden Sie die Seite neu, und das Feld ist leer; es gibt keinen Verlauf und hinterher nichts zu löschen.

Häufig gestellte Fragen

Ist ein Token dasselbe wie ein Wort?
Nein, und so zu rechnen, als wäre es eines, ist die häufigste Art, ein Budget zu verfehlen. Ein häufiges englisches Wort ist oft ein einzelnes Token, aber ein seltenes Wort, ein Name oder ein Tippfehler sind mehrere, ein Wort trägt das Leerzeichen davor meist im selben Token, und Satzzeichen und Einrückung werden gezählt wie alles andere. Außerhalb des Englischen ist die Abweichung viel größer, denn ein Token ist eine Folge von Bytes, und ein einzelnes Zeichen sind oft zwei, drei oder vier Bytes, noch bevor eine Tabelle zu Rate gezogen wird.
Kann ich einfach die Zahl der Zeichen durch vier teilen?
Nur wenn Sie englische Prosa schreiben und es Ihnen nichts ausmacht, weit danebenzuliegen. Dieser Wert ist ein Durchschnitt über eine Art Text in einer Sprache. Quellcode, Tabellen, Listen von Bezeichnern und alles, was in einer anderen Schrift geschrieben ist, brechen ihn, und sie brechen ihn in die Richtung, die mehr kostet und nicht weniger. Die Zahl auf dieser Seite ist der wirkliche Schnitt der wirklichen Tabelle, es gibt also keinen Grund zu schätzen, wo sich messen lässt.
Warum ändert sich die Zählung nicht, wenn ich das Modell wechsle?
Weil diese beiden Modelle dieselbe Kodierung benutzen und die Kodierung die Zählung vornimmt. Das ist normal und kein Fehler: Ein neueres Modell erbt sehr oft die Tabelle seines Vorgängers, und mehrere Modelle eines Herstellers teilen sich eine. Genau darum steht die Kodierung neben der Zählung — ändert sich der Name beim Wechseln nicht, dann ändert sich auch die Zahl nicht.
Warum kostet meine Sprache so viel mehr Token als Englisch?
Zwei Gründe, die sich aufaddieren. Die Kodierungen arbeiten auf UTF-8-Bytes, und ein Buchstabe außerhalb des lateinischen Alphabets sind zwei, drei oder vier Bytes, wo ein lateinischer eines ist. Und die Tabellen entstanden, indem Folgen in einem ganz überwiegend englischen Korpus gezählt wurden, also haben englische Wörter eigene Einträge, während Wörter anderer Sprachen oft aus Bruchstücken zusammengesetzt werden. Ein Wort aus drei Bruchstücken zu je drei Bytes ist doppelt teuer. Fügen Sie oben eigenen Text ein, dann sehen Sie, wo Ihre Sprache wirklich steht.
Warum steht bei einem der Modelle in der Liste keine Zahl?
Weil seine Kodierung nie veröffentlicht wurde, es also keine Tabelle gibt, mit der diese Seite — oder irgendeine andere Seite, die in Ihrem Browser läuft — zählen könnte. Eine Seite, die Ihnen für ein solches Modell eine Zahl zeigt, schickt Ihren Text durch die Tabelle eines anderen Modells und gibt eine Vermutung als Messung aus. Diese Vermutung zählt zu wenig, und am stärksten zu wenig bei Code und bei Text, der nicht englisch ist — also genau dort, wo Sie sie richtig gebraucht hätten.
Woher kommt dann die genaue Zählung für dieses Modell?
Aus dem eigenen Token-Zähldienst des Modellherstellers. Er ist die einzige Quelle, die genau sein kann, weil nur der Hersteller die Tabelle hat. Er braucht einen API-Schlüssel, den eine Seite, die vollständig in Ihrem Browser läuft, gar nicht halten kann und nie von Ihnen verlangen darf — das Ehrliche, was diese Seite tun kann, ist also, Ihnen zu sagen, wohin Sie gehen müssen, statt eine Zahl zu erfinden. Wenn Sie dieses Modell ohnehin schon aus Ihrem eigenen Code aufrufen, beantwortet derselbe Schlüssel, den Sie dort benutzen, auch das hier.
Zählen Leerzeichen, Zeilenumbrüche und Einrückung mit?
Ja, alle, und sie können sich zu mehr summieren, als man erwartet. Eingerückter Code, Leerzeilen zwischen Absätzen und die Auffüllung in einer eingefügten Tabelle sind alle Bytes, und die Kodierungen haben durchaus Token für mehrere Leerzeichen auf einmal, die Kosten sind also nicht ein Token je Leerzeichen — aber nichts sind sie auch nicht. Wenn Sie eine lange Systemnachricht kürzen, lohnt es sich, das Umformatieren zu messen, bevor Sie anfangen, Sätze zu streichen.
Wird mein Text an einen Server gesendet?
Nein. Die Tabelle für die Kodierung, die Sie gewählt haben, wird einmal von dieser Website geholt, und danach wird jede Zählung in Ihrem eigenen Browser gerechnet, in einem Hintergrund-Thread. Öffnen Sie Ihr Netzwerkpanel und sehen Sie beim Tippen zu: Keine Anfrage trägt, was Sie geschrieben haben. Gespeichert wird auch nichts, ein Neuladen der Seite lässt also ein leeres Feld zurück und nichts zu löschen.
Sagt mir das, was mein Prompt kostet oder ob er hineinpasst?
Weder noch, und beide Weigerungen sind Absicht. Ein Preis wäre binnen Monaten veraltet und nichts hier könnte das auffangen, also wird stattdessen die Rechnung erklärt und der Preis der Seite des Anbieters überlassen. Ein Kontextfenster ist ein Wert derselben beweglichen Art, und ob ein Text hineinpasst, hängt außerdem an der Antwort, die diese Seite nicht sehen kann. Was Sie bekommen, ist die eine Zahl, bei der beide Fragen anfangen, genau gerechnet.

Verwandte Werkzeuge

  • Textlänge

    Zählt Zeichen, Wörter und Zeilen – Unicode-fähig.

  • Regex-Tester

    Reguläre Ausdrücke testen — Treffer, Ersetzen, Teilen.

  • Text-Diff

    Zwei Texte vergleichen — jede geänderte Zeile und jedes Wort.

  • Unicode-Zeichen-Inspektor

    Sehen Sie genau, aus welchen Zeichen ein Text besteht.