TOON - Format Serialisasi Data yang Efisien Token untuk Input LLM
(github.com/toon-format)- Token-Oriented Object Notation
- Format serialisasi yang dirancang untuk mengurangi penggunaan token saat diberikan ke LLM
- Merepresentasikan data JSON tanpa kehilangan sambil tetap memastikan efisiensi token dan keterbacaan
- Struktur yang dioptimalkan untuk array objek yang seragam, menghapus kunci yang berulang untuk memberikan penghematan token 30~60%
- Format hibrida yang menggabungkan struktur berbasis indentasi ala YAML dan format tabel ala CSV
- Untuk struktur bersarang yang dalam atau data yang tidak seragam, JSON lebih efisien
- Menyertakan informasi struktur yang eksplisit sehingga LLM dapat mengurai dan memverifikasi data dengan stabil
- Meningkatkan pengenalan struktur dengan menyatakan panjang array (
[N]) dan definisi field ({id,name,role}) secara eksplisit
- Meningkatkan pengenalan struktur dengan menyatakan panjang array (
- Dengan sintaks ringkas, menghapus tanda kurung, tanda kutip, dan tanda baca yang tidak perlu sebagai desain sintaks minimal
- Mendukung ekspresi hierarki berbasis indentasi dan aliran data per baris mirip CSV
- Mendukung konversi dua arah antara JSON ↔ TOON melalui alat CLI
- Menyediakan opsi seperti deteksi format otomatis, penentuan pemisah (
,,\t,|), dan output statistik penghematan token
- Menyediakan opsi seperti deteksi format otomatis, penentuan pemisah (
- Komposisi API
- Menjalankan serialisasi JSON dengan
encode()dan deserialisasi dengandecode() - Opsi untuk menentukan indentasi, pemisah, dan penanda panjang (
#)
- Menjalankan serialisasi JSON dengan
- Hasil benchmark menunjukkan rata-rata penghematan token 21~60% dibanding JSON, dengan akurasi kueri LLM mencapai 73.9%
- Sedikit lebih besar daripada CSV, tetapi meningkatkan keandalan LLM melalui fitur verifikasi struktural
- Aturan format
- String hanya diberi kutip saat diperlukan, dan akan dikutip otomatis jika mengandung pemisah
- Angka, boolean, tanggal, dan lainnya dikonversi ke bentuk yang ramah LLM
- Tersedia implementasi dalam berbagai bahasa
- Resmi: Python, Rust (dalam pengembangan)
- Komunitas: Go, Java, Swift, C++, .NET, Ruby, dll.
3 komentar
Saya sedang menggunakan function calling, jadi sepertinya saya harus mencobanya sekali.
Dari beberapa contoh, katanya saat spasi dihapus, format JSON justru bisa mengurangi jumlah token jauh lebih banyak.. Saya masih belum begitu paham. Apakah ini benar-benar format yang layak dipakai.
Perbandingan akurasi per model
Jika hanya melihat hasil benchmark, tampaknya tidak ada alasan untuk tidak menggunakannya karena pemakaian token berkurang tanpa penurunan akurasi.