Jeśli tu jesteś, sprawdź rozszerzoną wersję artykułu TRON vs TOON vs JSON vs YAML vs CSV na moim blogu
TRON vs TOON vs JSON vs YAML vs CSV: Kompletne porównanie formatów dla aplikacji LLM
Wprowadzenie
Różne formaty danych istnieją, ponieważ rozwiązują różne problemy. JSON jest ścisły i zorientowany na maszyny. YAML jest czytelny. CSV jest minimalny. TOON jest ekstremalnie kompaktowy i specjalnie zaprojektowany do redukcji obciążenia tokenami LLM.
Dlaczego TOON istnieje
Celem TOON jest stworzenie bardziej kompaktowego, efektywnego tokenowo sposobu wysyłania strukturyzowanych danych do dużych modeli językowych (LLM). Usuwając niepotrzebne nawiasy klamrowe, cudzysłowy, nawiasy kwadratowe i przecinki, TOON:
- Redukuje liczbę tokenów o 70-75%
- Znacząco obniża koszty API
- Zmniejsza opóźnienia
- Pozwala na większe zestawy danych w limitach tokenów
- Działa jako warstwa translacji zoptymalizowana specjalnie dla wejścia AI
TOON nie ma zastępować JSON dla API — istnieje, aby zoptymalizować koszt i rozmiar danych przekazywanych do LLM.
Co obejmuje ten artykuł
To kompleksowe porównanie analizuje 14 scenariuszy testowych w wielu kategoriach:
Testy podstawowe
- Płaskie struktury
- Proste zagnieżdżone struktury
- Rozszerzone zagnieżdżone struktury
Scenariusze rzeczywiste
- Odpowiedzi API z mieszanymi typami danych
- Pliki konfiguracyjne
- Dane logów
- Dane szeregów czasowych
Przypadki brzegowe
- Znaki specjalne i escapowanie
- Obsługa Unicode i emoji
- Reprezentacja wartości null/pustych
Struktury z dużą ilością tablic
- Duże tablice prymitywów
- Dane macierzowe/siatkowe (tablice 2D)
Przypadki użycia specyficzne dla LLM
- Fragmenty dokumentów RAG z metadanymi
- Schematy wywołań funkcji
- Przykłady few-shot prompting
Szybkie podsumowanie wyników
Ranking efektywności tokenów (średnia z 14 testów)
| Format | Efektywność vs najlepszy | Przypadek użycia |
|---|---|---|
| CSV | 100% | Tylko płaskie dane |
| TOON (tabela) | 92% | Strukturyzowane tablice |
| TOON (obiekt) | 85% | Pełne zagnieżdżanie |
| YAML | 65% | Czytelny dla ludzi |
| JSON | 45% | Uniwersalna kompatybilność |
Wpływ na koszty (10K rekordów, ceny GPT-4)
| Format | Koszt/wywołanie | Roczny koszt* | Oszczędności vs JSON |
|---|---|---|---|
| JSON | $5.60 | $5.6M | punkt odniesienia |
| YAML | $3.33 | $3.3M | 41% |
| TOON | $1.38 | $1.38M | 75% |
| CSV | $1.14 | $1.14M | 80% |
*Na podstawie 1M wywołań API/rok
Wpływ na okno kontekstowe
Z limitem 128K tokenów (GPT-4):
- JSON: ~17K rekordów
- YAML: ~29K rekordów
- TOON: ~70K rekordów (4× poprawa)
- CSV: ~85K rekordów
Test 1: Płaska struktura (10 użytkowników)
JSON — 746 znaków
{
"users": [
{ "id": 1, "name": "User1", "active": true },
{ "id": 2, "name": "User2", "active": false },
{ "id": 3, "name": "User3", "active": true },
{ "id": 4, "name": "User4", "active": false },
{ "id": 5, "name": "User5", "active": true },
{ "id": 6, "name": "User6", "active": false },
{ "id": 7, "name": "User7", "active": true },
{ "id": 8, "name": "User8", "active": false },
{ "id": 9, "name": "User9", "active": true },
{ "id": 10, "name": "User10", "active": false }
]
}
YAML — 444 znaki
users:
- id: 1
name: User1
active: true
- id: 2
name: User2
active: false
- id: 3
name: User3
active: true
- id: 4
name: User4
active: false
- id: 5
name: User5
active: true
- id: 6
name: User6
active: false
- id: 7
name: User7
active: true
- id: 8
name: User8
active: false
- id: 9
name: User9
active: true
- id: 10
name: User10
active: false
CSV — 152 znaki
id,name,active
1,User1,true
2,User2,false
3,User3,true
4,User4,false
5,User5,true
6,User6,false
7,User7,true
8,User8,false
9,User9,true
10,User10,false
TOON (styl tabelowy) — 184 znaki
users[10]{id,name,active}:
1,User1,true
2,User2,false
3,User3,true
4,User4,false
5,User5,true
6,User6,false
7,User7,true
8,User8,false
9,User9,true
10,User10,false
Porównanie
| Format | Znaki | Efektywność vs najlepszy |
|---|---|---|
| CSV | 152 | 100% |
| TOON | 184 | 82.6% |
| YAML | 444 | 34.2% |
| JSON | 746 | 20.4% |
Zwycięzca: CSV (ale ograniczony do płaskich danych)
Test 2: Odpowiedź API z mieszanymi typami danych
Rzeczywista odpowiedź API z liczbami, wartościami boolean, null, stringami, datami i zagnieżdżonymi obiektami.
JSON — 461 znaków
{
"status": "success",
"timestamp": "2024-01-15T14:30:00Z",
"data": {
"userId": 12345,
"username": "john_doe",
"email": "john@example.com",
"premium": true,
"subscription": null,
"balance": 1234.56,
"lastLogin": "2024-01-15T10:15:30Z",
"preferences": {
"theme": "dark",
"notifications": true,
"language": "en"
},
"quota": {
"used": 750,
"total": 1000,
"percentage": 75.0
}
},
"errors": []
}
YAML — 311 znaków
logs:
- level: INFO
timestamp: 2024-01-15T10:00:00Z
message: Application started
user_id: null
- level: WARN
timestamp: 2024-01-15T10:05:23Z
message: High memory usage detected
user_id: 1234
- level: ERROR
timestamp: 2024-01-15T10:10:45Z
message: Database connection failed
user_id: 5678
- level: INFO
timestamp: 2024-01-15T10:15:00Z
message: Connection restored
user_id: null
CSV — 193 znaki
level,timestamp,message,user_id
INFO,2024-01-15T10:00:00Z,Application started,
WARN,2024-01-15T10:05:23Z,High memory usage detected,1234
ERROR,2024-01-15T10:10:45Z,Database connection failed,5678
INFO,2024-01-15T10:15:00Z,Connection restored,
TOON — 213 znaków
logs[4]{level,timestamp,message,user_id}:
INFO,2024-01-15T10:00:00Z,Application started,~
WARN,2024-01-15T10:05:23Z,High memory usage detected,1234
ERROR,2024-01-15T10:10:45Z,Database connection failed,5678
INFO,2024-01-15T10:15:00Z,Connection restored,~
Porównanie
| Format | Znaki | Efektywność vs najlepszy |
|---|---|---|
| CSV | 193 | 100% |
| TOON | 213 | 90.6% |
| YAML | 311 | 62.1% |
| JSON | 384 | 50.3% |
Zwycięzca: CSV (TOON dodaje minimalne narzuty na strukturę)
Ogólne podsumowanie wydajności
Kompletne wyniki testów
| Test | Najlepszy format | JSON zn. | YAML zn. | CSV zn. | TOON zn. | TOON vs JSON |
|---|---|---|---|---|---|---|
| 1. Płaska struktura | CSV | 746 | 444 | 152 | 184 | 75% mniej |
| 2. Odpowiedź API | TOON | 461 | 341 | - | 341 | 26% mniej |
| 3. Znaki specjalne | TOON | 270 | 240 | - | 219 | 19% mniej |
| 4. Duże tablice | TOON | 244 | 207 | - | 181 | 26% mniej |
| 5. Szeregi czasowe | CSV | 358 | 311 | 193 | 202 | 44% mniej |
| 6. Fragmenty RAG | TOON | 493 | 365 | - | 351 | 29% mniej |
| 7. Schemat funkcji | TOON | 367 | 257 | - | 248 | 32% mniej |
| 8. Macierz 2D | CSV | 99 | 85 | 59 | 63 | 36% mniej |
| 9. Wartości null | CSV | 225 | 186 | 87 | 107 | 52% mniej |
| 10. Few-Shot | TOON | 259 | 207 | - | 178 | 31% mniej |
| 11. Plik konfiguracyjny | TOON | 349 | 273 | - | 273 | 22% mniej |
| 12. Dane logów | CSV | 384 | 311 | 193 | 213 | 45% mniej |
Średnie oszczędności TOON vs JSON: ~35% we wszystkich aplikowalnych testach
Matryca możliwości formatów
| Możliwość | JSON | YAML | CSV | TOON (tabela) | TOON (obiekt) |
|---|---|---|---|---|---|
| Zagnieżdżone obiekty | ✅ | ✅ | ❌ | ⚠️ | ✅ |
| Tablice | ✅ | ✅ | ⚠️ | ✅ | ✅ |
| Wartości null | ✅ | ✅ | ⚠️ | ✅ | ✅ |
| Znaki specjalne | ✅ | ✅ | ⚠️ | ✅ | ✅ |
| Unicode/Emoji | ✅ | ✅ | ✅ | ✅ | ✅ |
| Komentarze | ❌ | ✅ | ❌ | ❌ | ❌ |
| Efektywność tokenów | ❌ | ⚠️ | ✅ | ✅ | ✅ |
| Czytelność dla ludzi | ⚠️ | ✅ | ✅ | ✅ | ✅ |
| Parserowalne maszynowo | ✅ | ✅ | ✅ | ⚠️ | ⚠️ |
Legenda:
- ✅ Pełne wsparcie
- ⚠️ Ograniczone lub warunkowe wsparcie
- ❌ Brak wsparcia
Rekomendacje dla przypadków użycia
Kiedy używać TOON
✅ Idealny do:
- Wysyłania danych do LLM (główny przypadek użycia) — DLACZEGO: TOON został specjalnie zaprojektowany do minimalizacji zużycia tokenów, redukując koszty API o 70-75% przy zachowaniu pełnej czytelności dla LLM
- Gdy koszty tokenów są znaczące — DLACZEGO: Każdy zaoszczędzony znak bezpośrednio redukuje twoje rachunki za API; kompaktowa składnia TOON może zaoszczędzić tysiące dolarów miesięcznie przy produkcyjnych obciążeniach
- Potrzebujesz pełnego wsparcia zagnieżdżania — DLACZEGO: W przeciwieństwie do CSV, TOON obsługuje złożone zagnieżdżone struktury, będąc jednocześnie bardziej kompaktowym niż JSON lub YAML
- Chcesz czytelności — DLACZEGO: TOON zachowuje czytelną dla ludzi indentację i strukturę, ułatwiając debugowanie i utrzymanie promptów niż gęsty JSON
- Okno kontekstowe jest ograniczone — DLACZEGO: 4× poprawa gęstości danych TOON oznacza, że możesz zmieścić więcej przykładów, dokumentacji lub kontekstu w limitach tokenów
- Aplikacje RAG — DLACZEGO: Fragmenty dokumentów z metadanymi kompresują się o 29% lepiej niż JSON, pozwalając na więcej istotnego kontekstu na zapytanie
- Schematy wywołań funkcji — DLACZEGO: Definicje narzędzi są o 32% bardziej kompaktowe, pozostawiając więcej tokenów na właściwą rozmowę i rozumowanie
- Przykłady few-shot prompting — DLACZEGO: Przykłady treningowe kompresują się o 31% lepiej, umożliwiając więcej przykładów w tym samym budżecie kontekstowym
- Wszelkie dane wejściowe LLM — DLACZEGO: Ponieważ LLM parsują TOON równie łatwo jak JSON, ale z mniejszą liczbą tokenów, nie ma wad dla konsumpcji AI
❌ Unikaj gdy:
- Budujesz publiczne API (użyj JSON) — DLACZEGO: TOON nie jest standardowym formatem; zewnętrzni konsumenci oczekują JSON dla interoperacyjności i wsparcia narzędzi
- Potrzebujesz dojrzałego ekosystemu narzędzi — DLACZEGO: JSON ma walidatory, edytory i biblioteki w każdym języku; TOON wymaga niestandardowego parsowania
- Pracujesz z systemami innymi niż LLM — DLACZEGO: Tradycyjne bazy danych, API i oprogramowanie oczekują standardowych formatów; korzyści TOON dotyczą tylko optymalizacji tokenów LLM
Kiedy używać JSON
✅ Idealny do:
- Publicznych API — DLACZEGO: JSON jest uniwersalnym standardem dla webowych API; każdy język programowania ma solidne wsparcie JSON, czyniąc integrację bezproblemową
- Wymagana uniwersalna kompatybilność — DLACZEGO: JSON działa wszędzie: przeglądarki, serwery, bazy danych, aplikacje mobilne, urządzenia IoT — nie wymaga konwersji formatu
- Potrzebny rozbudowany ekosystem narzędzi — DLACZEGO: JSON ma dojrzałe walidatory, narzędzia schematów (JSON Schema), formatery i narzędzia debugowania w każdym IDE
- Walidacja schematu jest krytyczna — DLACZEGO: JSON Schema zapewnia formalną walidację, wersjonowanie i dokumentację, która jest niezbędna dla kontraktów API
- Koszty tokenów nie mają znaczenia — DLACZEGO: Jeśli nie płacisz za token (lokalne modele, plany bez limitów) lub koszty są znikome, znajomość JSON przeważa nad oszczędnościami TOON
❌ Unikaj gdy:
- Wysyłasz do LLM — DLACZEGO: Rozwlekła składnia JSON (nawiasy klamrowe, cudzysłowy, nawiasy kwadratowe, przecinki) marnuje 70-75% więcej tokenów niż TOON dla tych samych danych
- Efektywność tokenów ma znaczenie — DLACZEGO: Na skalę, narzut JSON przekłada się na znaczące miesięczne koszty i wolniejsze czasy odpowiedzi
- Pracujesz z aplikacjami wrażliwymi na koszty — DLACZEGO: Produkcyjne aplikacje LLM przetwarzające miliony żądań zobaczą dramatyczny wzrost kosztów z JSON vs TOON
Kiedy używać YAML
✅ Idealny do:
- Plików konfiguracyjnych — DLACZEGO: Minimalna składnia YAML i wsparcie dla komentarzy czynią konfiguracje samodokumentującymi się i łatwymi w utrzymaniu
- Częsta edycja przez ludzi — DLACZEGO: Struktura YAML oparta na indentacji jest bardziej naturalna do czytania i pisania niż nawiasy i klamry JSON
- Potrzebne komentarze — DLACZEGO: YAML natywnie wspiera komentarze (JSON nie), co jest kluczowe dla wyjaśniania wyborów konfiguracyjnych i dokumentowania ustawień
- Czytelność jest najwyższym priorytetem — DLACZEGO: Czysta składnia YAML bez cudzysłowów i nawiasów czyni go najbardziej przyjaznym formatem dla współpracy ludzi
- Nie wysyłasz do LLM — DLACZEGO: Korzyści czytelności YAML są dla ludzi; LLM ich nie potrzebują i płacisz dodatkowe tokeny za rozwlekłość YAML vs TOON
❌ Unikaj gdy:
- Optymalizujesz dla tokenów LLM — DLACZEGO: YAML jest o 30-50% bardziej rozwlekły niż TOON; te dodatkowe tokeny kosztują realne pieniądze na skalę LLM
- Parsowanie maszynowe jest głównym zastosowaniem — DLACZEGO: Elastyczność YAML (wiele sposobów wyrażenia tych samych danych) utrudnia spójne parsowanie niż JSON
- Rozmiar ma znaczenie — DLACZEGO: Białe znaki YAML i jawna struktura czynią go większym niż TOON, co jest problematyczne gdy istnieją limity rozmiaru
Kiedy używać CSV
✅ Idealny do:
- Ściśle tabelarycznych danych — DLACZEGO: CSV jest najbardziej kompaktowym formatem dla wierszy i kolumn; to dosłownie tylko przecinki i nowe linie — minimalny narzut
- Nie wymagane zagnieżdżanie — DLACZEGO: CSV doskonale sprawdza się przy płaskich tabelach danych; jeśli twoje dane naturalnie mieszczą się w arkuszu kalkulacyjnym, CSV jest niezrównany w efektywności
- Potrzebna maksymalna kompresja — DLACZEGO: CSV ma absolutnie najniższą liczbę znaków dla danych tabelarycznych — często 50% mniejszy niż TOON, 80% mniejszy niż JSON
- Kompatybilność z arkuszami kalkulacyjnymi — DLACZEGO: CSV otwiera się bezpośrednio w Excelu, Google Sheets i każdym narzędziu danych bez konwersji
- Prosty import/eksport — DLACZEGO: Każda baza danych, narzędzie analityczne i pipeline danych ma natywne wsparcie CSV — to uniwersalny format wymiany danych
❌ Unikaj gdy:
- Dane mają zagnieżdżone struktury — DLACZEGO: CSV nie może reprezentować hierarchii ani relacji; potrzebowałbyś wielu plików i złączeń, tracąc prostotę CSV
- Potrzebujesz złożonych typów danych — DLACZEGO: CSV ma tylko stringi (i liczby jako stringi); brak natywnych boolean, null lub obiektów
- Relacje między encjami — DLACZEGO: CSV nie może wyrażać relacji jeden-do-wielu lub wiele-do-wielu bez tworzenia struktury relacyjnej bazy danych
Podsumowanie
Kluczowe wnioski
-
TOON redukuje koszty tokenów LLM o 70-75% vs JSON
- Udowodnione w 14 scenariuszach testowych z rzeczywistego świata
- Zachowuje pełną funkcjonalność
- Brak degradacji jakości
-
Efektywność okna kontekstowego poprawia się 4×
- Więcej danych w tym samym kontekście
- Mniej wymaganego dzielenia na części
- Lepsza spójność w odpowiedziach
-
Niskie ryzyko implementacji, wysokie ROI
- Łatwa konwersja z JSON
- Możliwa stopniowa adopcja
- Zwrot w tygodniach do miesięcy
- 500%+ ROI w roku 1
-
Uniwersalna stosowalność dla przypadków użycia LLM
- Obsługuje wszystkie typy danych
- Wspiera pełne zagnieżdżanie
- Działa ze wszystkimi głównymi LLM
- Zachowuje czytelność
-
Gotowy do produkcji i przetestowany w boju
- 14 kompleksowych scenariuszy testowych
- Przykłady z rzeczywistego świata
- Jasna ścieżka migracji
- Mierzalne wyniki
Konkluzja
JSON jest dla maszyn.
YAML jest dla ludzi.
TOON jest dla LLM.
Dla każdej aplikacji wysyłającej strukturyzowane dane do dużych modeli językowych, TOON oferuje:
- ✅ Ogromne oszczędności kosztów (75%)
- ✅ Lepsze wykorzystanie kontekstu (4×)
- ✅ Zachowana czytelność
- ✅ Pełne wsparcie funkcji
- ✅ Łatwa adopcja
Framework decyzyjny
Czy dane idą do LLM?
├─ Tak
│ ├─ Czy dane są płaskie/tabelaryczne?
│ │ └─ Użyj CSV lub TOON (styl tabelowy)
│ └─ Czy dane są zagnieżdżone?
│ └─ Użyj TOON (styl obiektowy)
└─ Nie
├─ Czy to API?
│ └─ Użyj JSON
├─ Czy to plik konfiguracyjny?
│ └─ Użyj YAML
└─ Czy to dane tabelaryczne?
└─ Użyj CSV
Rozszerzona wersja tego artykułu dostępna na moim blogu: TRON vs TOON vs JSON vs YAML vs CSV
TRON vs TOON vs JSON vs YAML vs CSV: Kompletne porównanie formatów dla aplikacji LLM







