Darkwood Blog Blog
  • Artikel
  • Beobachtung
  • Releases
  • Creators
de
  • en
  • fr
Anmeldung
  • Blog
  • Artikel
  • Beobachtung
  • Releases
  • Creators

🌐 Nolife Langage – Sag nicht „Kosten“, sag „Investition“.

vom 6. September 2026

Anmelden um auf diesen Beitrag zu reagieren

🚀 1

🌐 Nolife Langage – Sag nicht „Kosten“, sag „Investition“.

Die Zahl Àndert sich nicht. Der Rahmen schon.

Kosten klingt nach etwas, das man verliert. Investition klingt nach etwas, das man ohnehin vorhatte, mit einer Rendite obendrein. Basic klingt nach der abgespeckten Variante. Essential klingt nach dem, was man braucht. Standard ist generisch. Maßgeschneidert wurde speziell fĂŒr dich angefertigt.

Ich habe den Verkaufs-Slogan in einem Werbevideo gehört:

Sag nicht „1.000 $“, sag „999 $“, das wirkt gĂŒnstiger. Sag nicht „Jetzt kaufen“, sag „Es sind nur noch drei StĂŒck verfĂŒgbar“. Sag niemals das Wort „Basic“, sag „Essential“. Sag niemals „Standard“, sag immer „maßgeschneidert“. Das Wort „wenige“ – sag das nicht, sag immer „limitiert“. Und verwende niemals das Wort „Kosten“, sag immer „Investition“.

Worte sind wichtig, wenn man versucht, Menschen zum Kauf zu bewegen. Ich wollte wissen, was passiert, wenn der Leser nicht nur ein Mensch, sondern auch ein Tokenizer ist.

Die erste Überraschung betraf Deutsch. In diesem Korpus mit der Kodierung o200k_base benötigte das kommerziell stĂ€rkere Wort maßgeschneidert fĂŒnf Token. Standard benötigte einen. Das sind +400 %. Unverzichtbar fĂŒr Basis stieg von 1 auf 4. Die Verkaufstöne wurden lauter. Der Token-ZĂ€hler lief in die andere Richtung.

 Bedeutung
 |
 |
Token-Kosten ----+---- Überzeugungskraft

Das sind drei verschiedene Achsen. Eine Phrase kann auf einer gewinnen und auf einer anderen verlieren. Dieser Artikel ist das kleine Darkwood-Experiment, das versucht hat, sie voneinander zu trennen.

Wörter haben bereits einen Preis

Die sechs englischen Austausche sind kein Kopier-Deck. Sie sind ein Labor: klein genug, um sie in Token zu zerlegen, semantisch interessant genug, um darĂŒber zu diskutieren.

Original Ersatz Rahmen (behauptet)
1.000 $ 999 $ wirkt gĂŒnstiger
Jetzt kaufen nur noch drei verfĂŒgbar Knappheit
grundlegend unverzichtbar notwendig, nicht gemindert
Standard maßgeschneidert fĂŒr den KĂ€ufer gemacht
wenige limitiert Knappheit
Kosten Investition erwartete Rendite, kein Verlust

Ich habe keinen A/B-Test zur Konversionsrate durchgefĂŒhrt. Ich behaupte nicht, dass die Psychologie dahinter endgĂŒltig geklĂ€rt ist. Ich behaupte, dass es sich lohnt, die Ersetzungen zu berĂŒcksichtigen.

Englisch „Kosten“ → „Investition“ ist das deutlichste Beispiel: gleiche Idee, anderer Rahmen. Bei „o200k_base“ ist es fĂŒr den Tokenizer ebenfalls ein Nullsummenspiel. Beide Seiten ergaben 1 Token. Die Zahl hat sich nicht verĂ€ndert. Die Geschichte hat sich dennoch geĂ€ndert.

„$1.000“ → „$999“ wirkte sich gleichzeitig in beide Richtungen aus: attraktive Preisgestaltung und weniger Token (4 → 2). Die Knappheit entwickelte sich in die entgegengesetzte Richtung. „Jetzt kaufen“ entspricht 2 Token; „Nur noch drei verfĂŒgbar“ entspricht 3.

Das ist bereits das Dreieck. Die Bedeutung kann Ă€hnlich bleiben. Die Überzeugungskraft kann zunehmen. Die Anzahl der Token kann steigen, sinken oder unverĂ€ndert bleiben.

Dann weist das Modell den Wörtern einen weiteren Preis zu

APIs und Kontextfenster rechnen nicht in Wörtern ab. Sie berechnen nach Token: Textabschnitte, nachdem ein Tokenizer die Zeichenkette aufgeteilt hat. Ein Tokenizer ist kein Wörterbuch. Er ist eine Komprimierung von Byte-Sequenzen, die er hĂ€ufig gesehen hat. Englisch ist in dieser Historie ĂŒberreprĂ€sentiert. Andere Sprachen und sogar andere englische Schreibweisen desselben Begriffs können auf mehr Teile aufgeteilt werden.

Damian Zygmuntowicz’ Beitrag ĂŒber die versteckten Token-Kosten von Sprachen – das polnische przedsiębiorstwo als Provokation – war der Grund, warum ich mich damit beschĂ€ftigt habe. Ich habe die polnischen Zahlen nicht reproduziert. Darkwood wird auf Englisch, Französisch und Deutsch ausgeliefert. Das sind die Sprachen, die ich gemessen habe.

Die Maßeinheit ist entscheidend. Zeichen sind keine Token. Wörter sind keine Token. Eingabe-Token sind keine Ausgabe-Token. Cache-Treffer sind keine Rechnungen. Eine Heuristik von Bytes / 4 ist eine SchĂ€tzung, keine Messung. Ich habe das eigentliche OpenAI-BPE lokal mit yethee/tiktoken ausgefĂŒhrt:

  • PrimĂ€r: o200k_base (GPT-4o-Familie)
  • SekundĂ€r: cl100k_base (GPT-4-/3.5-Turbo-Familie)

Das sind keine Claude-Token, keine Gemini-Token und keine „universellen LLM-Token“. Die Kodierung ist Teil des Ergebnisses.

Drei Sprachen, eine Idee

Ich habe zwei kurze, parallele Passagen – ein Workshop-Angebot und eine Preisangabe – auf Englisch, Französisch und Deutsch verfasst. Absichtlich mit derselben Bedeutung. Winziger Korpus: Version 1.0.2, Hash 7510f01cf7c3
. Keine statistische Studie ĂŒber „Französisch“ oder „Deutsch“. Ein deterministisches Labor.

Dann habe ich gezÀhlt.

In diesem Korpus mit o200k_base verwendete die englische Version 46 Token, die französische 58 (+26,09 % gegenĂŒber Englisch), die deutsche 63 (+36,96 % gegenĂŒber Englisch).

Sprache Wörter Zeichen Tokens (o200k_base) Tokens/Wort im Vergleich zu Englisch
Englisch 41 240 46 1,12 Basiswert
Französisch 46 273 58 1,26 +26,09 %
Deutsch 41 298 63 1,54 +36,96 %

Diese ProzentsÀtze beziehen sich auf dieses Korpus und diesen Tokenizer. Sie stellen keine Benachteiligung des Französischen oder des Deutschen dar.

Deutsch verwendete dieselbe Wortanzahl wie Englisch und mehr Zeichen. Es verwendete zudem mehr Token pro Wort. Die Heuristik Bytes / 4 schĂ€tzte 60 / 71 / 76 und ĂŒberschĂ€tzte jede Sprache. Dennoch verschleierte sie, wie groß die LĂŒcke in der Rangfolge ist.

Ich habe sogar versucht, das Deutsche natĂŒrlicher zu gestalten. Das Ersetzen des Calques aufgezeichnete FĂŒhrung durch gefilmten Rundgang reduzierte die Zeichenanzahl von 301 auf 298 und erhöhte die o200k_base-Token von 62 auf 63. Weniger Zeichen. Ein Token mehr. Es geht nicht um den kĂŒrzeren Text.

Es hÀngt vom Tokenizer ab

Gleiche Texte, zweite Kodierung.

Sprache o200k_base vs. EN cl100k_base vs. EN
Englisch 46 Basiswert 46 Basiswert
Französisch 58 +26,09 % 71 +54,35 %
Deutsch 63 +36,96 % 73 +58,70 %

Englisch blieb bei 46. Französisch stieg von +26,09 % auf +54,35 %. Deutsch von +36,96 % auf +58,70 %. Die Ă€ltere Kodierung war fĂŒr Französisch und Deutsch ungĂŒnstiger. Der Sprachbonus ist keine Eigenschaft des Französischen. Er ist eine Eigenschaft von diesem Korpus × dieser Kodierung.

Genau darum geht es beim Einsatz von zwei Tokenizern. HĂ€tte ich nur o200k_base veröffentlicht, hĂ€tte ich unterschĂ€tzt, wie „teuer“ derselbe französische Text unter cl100k_base erscheinen kann.

Nun die Wörter Àndern

Ich habe die sechs Verkaufsargumente genommen, idiomatische französische und deutsche Entsprechungen verfasst und zwei Absichten gekennzeichnet:

  • Überzeugungsversuch – den Rahmen des KĂ€ufers verĂ€ndern (kann mehr Token kosten)
  • token_opt – eine Ă€hnliche Idee mit weniger Token ausdrĂŒcken (kann den Rahmen schwĂ€chen)

WĂ€hle niemals stillschweigend die kostengĂŒnstigste Formulierung aus und bezeichne sie als die beste. Überzeugungsarbeit wird hier gekennzeichnet, nicht gemessen. Die token_opt-Zeilen sind theoretische Annahmen. Die FR/DE-Phrasen sind EntwĂŒrfe, keine Übersetzungsstudie.

Einige Zeilen aus o200k_base:

Spr. Absicht Original Ersatz Vorher Nachher
en Überzeugungsarbeit 1.000 $ 999 $ 4 2
en Überzeugungsarbeit Kosten Investition 1 1
en Überzeugungsarbeit Jetzt kaufen Nur noch drei verfĂŒgbar 2 3
en Überzeugungsversuch Standard maßgeschneidert 1 2
de Überzeugungsversuch Standard maßgeschneidert 1 5
de Überzeugungsversuch Basis unverzichtbar 1 4
de token_opt maßgeschneidert passend 5 2
en token_opt nur noch drei verfĂŒgbar 3 ĂŒbrig 3 2
fr Überzeugungsarbeit Jetzt kaufen nur noch drei auf Lager 3 5

Die vier Ecken des Dreiecks in diesem Durchgang:

  • StĂ€rkere VerkaufstonalitĂ€t, mehr Tokens: Standard → maßgeschneidert; Deutsch maßgeschneidert (+400 %).
  • Gleiche Tokens, anderer Rahmen: Englisch cost → investment (1 → 1).
  • SchwĂ€cherer Verkaufston, weniger Tokens: maßgeschneidert → passend (5 → 2).
  • Charm-Pricing, das auch den BPE senkt: $1.000 → $999 (4 → 2).

Knappheit kostet oft Token. Französisch achetez maintenant → plus que trois en stock stieg von 3 auf 5. Dann komprimierte token_opt dies zu 3 restants (5 → 3). GĂŒnstigere Token. Weniger Verkaufstone. Beide Messwerte sind echt. Nur eine davon ist „besser“, und es hĂ€ngt davon ab, welche Achse fĂŒr Sie wichtig ist.

Die roten Zeilen sind die interessanten

Neun von siebenundzwanzig Paarzeilen verwendeten nach der Überarbeitung mehr Token. Alle neun sind persuasion. Keine ist token_opt.

Im Deutschen wird es laut:

Original Ersatz Vorher Nachher Delta
Basis unverzichtbar 1 4 +3
Standard maßgeschneidert 1 5 +4
Kosten Investition 1 2 +1
wenige begrenzt 2 3 +1
jetzt kaufen nur noch drei verfĂŒgbar 3 4 +1

Das ist kein gescheiterter Benchmark. Überzeugungsoptimierung ist keine Token-Optimierung. Ein kommerziell stĂ€rkeres Wort kann fĂŒr den Tokenizer ungĂŒnstig sein. HĂ€tte ich die roten Zeilen verworfen, hĂ€tte ich ein MĂ€rchen ĂŒber Formulierungen veröffentlicht, die immer Geld sparen.

Als Block stieg die Überzeugungskraft in diesem Korpus von 36 auf 45 Token (−25 % „Einsparung“, d. h., es kostet mehr). Allein die deutsche Überzeugungskraft: 12 → 20 (−66,67 %). Die englische Überzeugungskraft blieb unverĂ€ndert (10 → 10). token_opt hat dann Tokens wiederhergestellt, darunter auch deutsche (+45,45 % insgesamt). Mehrere token_opt-Zeilen verbilligen dieselbe Idee, die die Überzeugungszeile gerade verteuert hat. Das ist die Kontrolle: gleiche Ideen, gegensĂ€tzliche Absicht.

62 → 62

Wenn ich alle Paare zu einer Gesamtsumme zusammenfasse, erhalte ich Folgendes:

Token vorher Token nachher Einsparung
Überzeugungsversuch, alle 36 45 −9
token_opt, alle 26 17 +9
gemischt, alle 62 62 0

62 rein. 62 raus. Es sieht so aus, als hÀtte die Formulierung nichts bewirkt.

Das tat sie auch nicht. Einzelne Ersetzungen gingen in beide Richtungen. Das gemischte Gesamtergebnis hat sie aufgehoben. „Mixed German“ liegt immer noch bei −13,04 % (23 → 26). „Mixed English“ „spart“ immer noch 2 Token. Der sprachĂŒbergreifende Nullwert ergibt sich aus „Persuasion“ −9 plus „token_opt“ +9.

Dies ist eine Warnung vor Benchmark-Zusammenfassungen. Ein Gesamtwert kann das PhĂ€nomen auslöschen, das man zu verstehen versucht. Ich hĂ€tte beinahe 62 → 62 als Überschrift veröffentlicht. Das wĂ€re unehrlich gewesen.

Was kostet das in Geld?

Ich habe die Paar-Token – nicht die Passagen – bei einer Million Anfragen hochgerechnet, unter Verwendung eines veralteten gpt-4o-mini-Snapshots (2. August 2026): 0,15 $ / 0,60 $ pro Million Eingabe-/Ausgabe-Token. Das ist eine SchĂ€tzung, keine Rechnung. Dieser Korpus ist winzig. Eine Anfrage kostet nur Bruchteile eines Cent. Ich werde nicht so tun, als wĂ€re es anders.

Bei 1.000.000 Anfragen, alle Sprachen:

Absicht Gespeicherte Eingabe Gespeicherte Ausgabe
Überzeugungsarbeit −1,35 $ −5,40 $
token_opt +1,35 $ +5,40 $
gemischt 0,00 $ 0,00 $

Der gemischte Wert von 0,00 $ entspricht dem gleichen Ausgleich in Dollar. Bei dieser GrĂ¶ĂŸenordnung von einer Million Anfragen steigt allein die Eingabe fĂŒr „Überzeugungsarbeit“ auf Deutsch von 1,80 $ auf 3,00 $ (Einsparung: −1,20 $). Skaleneffekte können eine Gewohnheit greifbar machen. Dieses spezielle Labor ist an sich keine Rechnungssimulation.

Die unsichtbare KontextgebĂŒhr

Das Modell verfĂŒgt nach wie vor ĂŒber dasselbe Kontextfenster in Tokens. Was sich Ă€ndert, ist, wie viel von diesem Inhalt in natĂŒrlicher Sprache darin Platz findet.

Ich habe ein hypothetisches Fenster mit 100.000 Token mit Kopien des parallelen Angebots gefĂŒllt. Nenner: gemessene Passagetoken, nicht Paarsummen. Das ist kein Produktkontextfenster. Französisch erhĂ€lt kein kleineres Fenster; das gleiche Token-Budget fasst einfach weniger Kopien dieses französischen Textes.

Bei o200k_base:

Sprache Passende Kopien im Vergleich zu Englisch Verlust im Vergleich zu Englisch
Englisch 2.173,91 Basiswert 0,00
Französisch 1.724,14 −20,69 % 449,77
Deutsch 1.587,30 −26,98 % 586,61

Das gleiche Token-Fenster passt auf weniger Elemente dieses französischen Korpus und noch weniger auf dieses deutsche Korpus. Wechselt man zu cl100k_base, betrĂ€gt der Wert fĂŒr Französisch vs. Englisch −35,21 % Kopien. Die Kodierung beeinflusst, wie viele Kopien passen. ÜberprĂŒft: 100.000 / 63 = 1.587,30; 2.173,91 − 1.587,30 = 586,61.

Die Einsparungen bei den Kosten fĂŒr das Paar-Korpus waren verschwindend gering. Der KapazitĂ€tsunterschied ist bereits erkennbar.

Caveman und die Kosten der Optimierung selbst

FĂŒr dieses Experiment habe ich mir Caveman angesehen – ein Open-Source-Projekt zur Komprimierung der Schreibweise von Codierungsagenten, nicht einen zweiten Benchmark, den ich auf diesem Korpus durchgefĂŒhrt habe. Ich habe es nicht portiert. Der nĂŒtzliche Aspekt ist methodischer Natur.

Caveman berichtet ĂŒber echte Komprimierung und veröffentlicht auch FĂ€lle, in denen der Overhead die Einsparungen zunichte macht oder umkehrt. Eine kĂŒrzere Ausgabe bedeutet nicht automatisch geringere Gesamtkosten. Eine Reduzierung der Ausgabe ist keine Rechnung. Eine ehrliche Differenz erfordert eine Kontrollgruppe: Man vergleicht mit einer knappen Eingabeaufforderung, nicht mit Stille.

Deshalb habe ich persuasion von token_opt getrennt, und deshalb bleiben die neun roten Zeilen im Artikel. Wenn der „optimierte“ Pfad mehr kostet, sollte man das zeigen. Ein Benchmark, der nur die grĂŒnen Zeilen ausgibt, ist eine WerbebroschĂŒre.

Das lokale o200k_base ist nach wie vor OpenAI BPE, das auf meinem Rechner ausgefĂŒhrt wird. Es handelt sich nicht um eine Claude-Abrechnung, auch wenn die Offline-Auswertungen von Caveman dieselbe Kodierung verwenden. Ein anderes Produkt. Gleiche Vorgehensweise: Den ZĂ€hler kennzeichnen, die Regression beibehalten.

Entwicklung mit Symfony und Darkwood Flow

Das Experiment ist eine kleine Symfony-8.1-Konsolenanwendung unter PHP 8.5.4. Keine Datenbank, keine HTTP-API, kein Frontend. Tokenizer: yethee/tiktoken 1.1.1. Orchestrierung: darkwood/flow 8.1.6, tatsĂ€chlich im Einsatz – der Befehl kann keine Tabellen ausgeben, solange Flow nicht lĂ€uft.

Die Pipeline besteht aus sieben Jobs:

LoadCorpus
    → TokenizeBefore
    → ApplyCandidates
    → TokenizeAfter
    → Compare
    → EstimateCost
    → Report

Jeder Schritt bleibt explizit. Laden der beiden Textpassagen und der 27 Paare. Tokenisierung des parallelen Angebots. Erfassung der bereits im Korpus vorhandenen, gekennzeichneten Ersetzungen. Jedes Paar wird tokenisiert. Vergleichen, SelbstprĂŒfung, Aggregate nach Intention aufteilen. Kosten schĂ€tzen. Bericht erstellen. Der ausgegebene Trace ist der Beweis: COMPARE: self-check PASS.

php bin/console app:language:benchmark
php bin/console app:language:benchmark --format=json

Die JSON-Datei wird in var/benchmark/ gespeichert. Ich wollte eine Messung, die ich weiterentwickeln kann, ohne die einzelnen Schritte in einem Skript namens run.php zu verbergen.

PHP 8.6: Readonly-Standardwerte

PHP 8.6 erlaubt es, dass eine gewöhnliche Instanz-Eigenschaft einen Standardwert hat:

public readonly string $evidence = 'ESTIMATED';

Auf diesem Rechner fĂŒhrt dies zu einem Kompilierungsfehler: Die schreibgeschĂŒtzte Eigenschaft Demo::$evidence darf keinen Standardwert haben. Die Laufzeitumgebung ist PHP 8.5.4. Ich habe die 8.6-Funktion nicht aktiviert.

Ein Standardwert fĂŒr einen heraufgestuften Konstruktorparameter funktionierte bereits ab Version 8.1. Der 8.6-RFC listet dies als Nicht-Ziel auf: Es handelt sich um einen Parameterstandardwert, nicht um einen Eigenschaftsstandardwert. PricingAssumptions nutzt diesen Ă€lteren Weg. Der Preis-Snapshot bleibt in beiden FĂ€llen ein unverĂ€nderliches Konfigurationsobjekt. Dieser Exkurs hat keinen Einfluss auf die Token-Anzahl.

PHP verfĂŒgt ĂŒber Referenzen, nicht ĂŒber C-Zeiger

Ein zval besteht aus einem Typ-Tag und einem Wert. Strings und Arrays werden beim Schreiben kopiert. $alias = $state kopiert einen Objekt-Handle (spl_object_id gleich: true; beide Namen wiesen Spuren von 7 → 8 auf). PHP & verpackt ein zval in IS_REFERENCE / zend_reference. $ref++ inkrementierte die Ganzzahl ($n wurde zu 3). Es wurde kein Speicher durchlaufen.

Eine PHP-Referenz ist nicht einfach ein C-Zeiger, der dem PHP-Code zur VerfĂŒgung gestellt wird. Flow verpackt jeden Job-RĂŒckgabewert in ein neues Ip mit schreibgeschĂŒtztem $data; die RĂŒckgabe von BenchmarkState verwendet das Handle erneut. Zend verwendet intern C-Zeiger. Userland-PHP stellt dir keinen zur VerfĂŒgung. php bin/console app:language:benchmark --explain-values gibt diese Tabelle aus. Keine FFI. Auch diese Seitenleiste verĂ€ndert die Tokenanzahl nicht.

Was ich gelernt habe

NatĂŒrliche Sprachen sind hinsichtlich der Tokenisierung nicht gleichwertig. In diesem Korpus mit o200k_base verwendete Französisch 58 Token, wĂ€hrend Englisch 46 und Deutsch 63 verwendeten. Ändert man die Kodierung, verschiebt sich auch der Premium-Wert.

Überzeugungskraft und Token-Effizienz können im Konflikt stehen. Maßgeschneidert ist ein besseres Verkaufswort, aber ein schlechterer BPE-Wert. Das englische investment ist ein Nullsummenspiel. Charm-Pricing kann versehentlich beiden Achsen helfen. Knappheitsargumente tun dies oft nicht.

Die Zeichenanzahl ist ein schlechter Ersatz fĂŒr einen echten Tokenizer. Die natĂŒrlichere deutsche Formulierung war kĂŒrzer in Zeichen und lĂ€nger in Token. bytes / 4 ĂŒberschĂ€tzte jede Sprache und glich den Unterschied aus.

Aggregate können gegensĂ€tzliche Entwicklungen verbergen. 62 → 62 ist eine Aufhebung, nicht „die Wortwahl spielt keine Rolle“. Trenne die Absichten, sonst optimierst du eine Null.

Kontexteffizienz ist wichtig, selbst wenn der Paar-Korpus winzig ist. Das gleiche Token-Fenster passt fĂŒr weniger Kopien dieses Französischen und noch weniger fĂŒr dieses Deutsche.

Optimierung hat ihren eigenen Overhead. Veröffentliche die rote Zeile.

Ich habe weder die Nutzung des Live-Anbieters noch die Konversion oder eine professionelle Übersetzung gemessen. Das nĂ€chste ehrliche Experiment, falls ich eines durchfĂŒhre, ist ein einzelnes, vom Anbieter gemeldetes EN/FR/DE-Paar fĂŒr dieselben Passagen.

Bis dahin: Messen Sie die tatsÀchliche Arbeitslast, bevor Sie sie optimieren. Und wenn das gemischte Gesamtergebnis unverÀndert bleibt, schauen Sie sich die Zeilen an.

Quellen

  • 3 LinkedIn-BeitrĂ€ge
  • tiktoken-php
  • Caveman
  • Quellcode: https://github.com/matyo91/nolife-language
  • Folien: https://github.com/matyo91/slidewire

Anmelden um auf diesen Beitrag zu reagieren

🚀 1

Site

  • Sitemap
  • Kontakt
  • Impressum

Network

  • Hello
  • Blog
  • Apps
  • Photos

Social

Darkwood 2026, alle Rechte vorbehalten