Verschwenden Sie keine Token mehr: Eine intelligentere Alternative zu JSON für LLM-Pipelines

# Einführung

JSON eignet sich hervorragend für APIs, Speicher und Anwendungslogik. In LLM-Pipelines (Massive Language Mannequin) ist jedoch häufig ein großer Token-Overhead erforderlich, der dem Modell keinen großen Mehrwert verleiht: geschweifte Klammern, Anführungszeichen, Kommas und wiederholte Feldnamen in jeder Zeile. TOONkurz für Token-Oriented Object Notation, ist ein neueres Format, das speziell dafür entwickelt wurde, das gleiche JSON-Datenmodell beizubehalten, gleichzeitig weniger Token zu verwenden und den Modellen klarere strukturelle Hinweise zu geben. Die offiziellen TOON-Dokumente beschreiben es als eine kompakte, verlustfreie Darstellung von JSON für die LLM-Eingabe, besonders stark bei einheitlichen Arrays von Objekten.

In diesem Artikel erfahren Sie, was TOON ist, wann sein Einsatz sinnvoll ist und wie Sie Schritt für Schritt in Ihren eigenen LLM-Workflow einsteigen. Wir werden auch die Kompromisse ehrlich halten, denn TOON ist in einigen Fällen nützlich, aber nicht in allen.

# Warum JSON Token in LLM-Pipelines verschwendet

JSON wird in Eingabeaufforderungen teuer, weil es die Struktur immer wieder wiederholt. LLMs ist es egal, dass JSON ein Commonplace ist. Sie sehen nur Token.

Wenn Sie 100 Help-Tickets, Produktzeilen oder Benutzerdatensätze an ein Modell senden, werden in jedem Objekt dieselben Feldnamen angezeigt. TOON reduziert diese Wiederholung, indem es Felder einmal deklariert und dann Zeilenwerte in kompakter Tabellenform streamt. Hier ist ein einfaches Beispiel.

JSON:

{
  "customers": (
    { "id": 1, "title": "Alice", "function": "admin" },
    { "id": 2, "title": "Bob", "function": "person" },
    { "id": 3, "title": "Charlie", "function": "person" }
  )
}

TOON:

customers(3){id,title,function}:
  1,Alice,admin
  2,Bob,person
  3,Charlie,person

Gleiche Daten, weniger Unordnung.

Die Struktur ist immer noch klar, aber die wiederholten Tasten sind weg. Darin liegt der größte Wert von TOON.

# Was TOON eigentlich ist und wann es sich lohnt, es zu verwenden

TOON ist ein Serialisierungsformat für das JSON-Datenmodell. Das bedeutet, dass es Objekte, Arrays, Zeichenfolgen, Zahlen, boolesche Werte und Nullwerte darstellen kann – allerdings auf eine kompaktere Weise für die Modelleingabe. Das TOON-Projekt stellt es im Vergleich zu JSON als verlustfrei dar, was bedeutet, dass Sie JSON in TOON und zurück konvertieren können, ohne dass Informationen verloren gehen. Es ist wichtig, Folgendes zu verstehen:

Sie müssen JSON in Ihrer App nicht ersetzen.

Ein besserer Ansatz besteht darin, JSON in Ihrem Backend, Ihren APIs und Ihrem Speicher beizubehalten und es dann nur dann in TOON zu konvertieren, wenn Sie strukturierte Daten an ein LLM senden möchten.

TOON ist am nützlichsten, wenn Ihre Eingabe wiederholt strukturierte Datensätze mit denselben Feldern enthält. Gute Beispiele sind abgerufene Help-Tickets, Katalogzeilen, Analysedatensätze, Software-Ausgaben, CRM-Einträge oder Speicher-Snapshots für Agentensysteme. Wenn Ihre Struktur jedoch tief verschachtelt, stark unregelmäßig, völlig flach oder sehr klein ist, können die Vorteile schrumpfen oder ganz verschwinden.

# Erste Schritte mit TOON

// Schritt 1: Installieren der TOON-Befehlszeilenschnittstelle

Der einfachste Weg, TOON auszuprobieren, ist die offizielle Befehlszeilenschnittstelle (CLI) aus dem TOON-Projekt. Die TOON-Website ist direkt mit ihrer CLI verknüpft und das Haupt-Repository präsentiert das Format als Teil eines umfassenderen SDK- und Tooling-Ökosystems.

Installieren Sie das Paket:

npm set up -g @toon-format/cli

// Schritt 2: Konvertieren einer JSON-Datei in TOON

Erstellen wir zunächst einen Ordner:

mkdir toon-test
cd toon-test

Führen Sie nun den folgenden Befehl aus, um die JSON-Datei zu erstellen:

Fügen Sie Folgendes ein:

(
  { "id": 1, "title": "Alice", "function": "admin" },
  { "id": 2, "title": "Bob", "function": "person" },
  { "id": 3, "title": "Charlie", "function": "person" }
)

Konvertieren Sie es nun:

npx @toon-format/cli customers.json -o customers.toon

Sie sollten ein kompaktes Ergebnis ähnlich diesem erhalten:

(3){id,title,function}:
  1,Alice,admin
  2,Bob,person
  3,Charlie,person

Dies ist das Kernmuster von TOON: Deklarieren Sie die Kind einmal und pay attention Sie dann die Werte Zeile für Zeile auf. Dies steht im Einklang mit dem offiziellen Designziel tabellarischer Arrays für einheitliche Objekte.

// Schritt 3: TOON als Modelleingabe verwenden

Der beste Ort für die Verwendung von TOON ist die Eingabeseite Ihrer Pipeline. Anstatt einen großen JSON-Blob in eine Eingabeaufforderung einzufügen, übergeben Sie die TOON-Model und halten Sie die Anweisung einfach.

Zum Beispiel:

The next knowledge is in TOON format.

customers(3){id,title,function}:
  1,Alice,admin
  2,Bob,person
  3,Charlie,person

Summarize the person roles and level out something uncommon.

Dies funktioniert intestine, da TOON darauf ausgelegt ist, dem Modell dabei zu helfen, wiederholte Strukturen mit weniger Overhead zu lesen. So formuliert auch das offizielle Projekt seine Benchmarks: als Verständnistest für verschiedene strukturierte Eingabeformate.

// Schritt 4: JSON für Ausgaben beibehalten

Dies ist eine der wichtigsten praktischen Entscheidungen. TOON ist für die Eingabe sehr nützlich, aber JSON ist normalerweise immer noch die bessere Wahl für die Ausgabe, wenn ein anderes System die Modellantwort analysieren muss. Das liegt daran, dass JSON über eine viel stärkere Software-Unterstützung verfügt und moderne APIs eine strukturierte JSON-Ausgabe mit Schemas erzwingen können.

In der Praxis ist das sicherste Muster:

  • JSON in Ihrer App.
  • TOON für großen strukturierten Eingabeaufforderungskontext.
  • Wieder JSON für maschinenlesbare Modellantworten.

Dadurch erreichen Sie Effizienz auf der Eingangsseite und Zuverlässigkeit auf der Ausgangsseite.

// Schritt 5: Benchmarking in Ihrer eigenen Pipeline

Wechseln Sie das Format nicht allein aufgrund des Hypes.

Führen Sie einen kleinen Benchmark in Ihrem eigenen Workflow durch:

  • Zählen Sie Eingabetokens für JSON.
  • Zählen Sie Eingabe-Tokens für TOON.
  • Vergleichen Sie die Latenz.
  • Vergleichen Sie die Antwortqualität.
  • Vergleichen Sie die Gesamtkosten.

Das offizielle TOON-Projekt nennt Token-Einsparungen als einen der Hauptvorteile, und die Berichterstattung Dritter wiederholt diese Behauptungen, aber die Diskussion in der Group zeigt auch, dass die Ergebnisse stark von der Kind der Daten abhängen. Deshalb lautet die beste Frage nicht: „Ist TOON besser als JSON?“

Die bessere Frage ist: „Ist TOON besser für diesen speziellen LLM-Schritt?“

# Letzte Gedanken

TOON ist nicht etwas, das Sie überall verwenden müssen.

Es handelt sich um eine gezielte Optimierung für ein bestimmtes Drawback: die Verschwendung von Token für wiederholte JSON-Strukturen innerhalb von LLM-Eingabeaufforderungen. Wenn Ihre Pipeline viele wiederholte strukturierte Datensätze an ein Modell übergibt, ist TOON einen Check wert. Wenn Ihre Nutzlasten klein, unregelmäßig oder stark verschachtelt sind, ist JSON möglicherweise immer noch die bessere Wahl.

Der intelligenteste Weg, es zu übernehmen, ist einfach: Behalten Sie JSON dort bei, wo JSON bereits intestine funktioniert, verwenden Sie TOON, wenn Sie große strukturierte Eingaben in Eingabeaufforderungen packen, und vergleichen Sie die Ergebnisse mit Ihren eigenen Aufgaben, bevor Sie sich dazu verpflichten.

Kanwal Mehreen ist ein Ingenieur für maschinelles Lernen und ein technischer Redakteur mit einer großen Leidenschaft für Datenwissenschaft und die Schnittstelle zwischen KI und Medizin. Sie ist Mitautorin des E-Books „Maximizing Productiveness with ChatGPT“. Als Google Technology Scholar 2022 für APAC setzt sie sich für Vielfalt und akademische Exzellenz ein. Sie ist außerdem als Teradata Variety in Tech Scholar, Mitacs Globalink Analysis Scholar und Harvard WeCode Scholar anerkannt. Kanwal ist ein leidenschaftlicher Verfechter von Veränderungen und hat FEMCodes gegründet, um Frauen in MINT-Bereichen zu stärken.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert