Apa itu TOON?

TOON
JSON
Optimasi

Kita semua pernah ke sana. Anda sedang merekayasa permintaan untuk Model Bahasa Besar (LLM), dan Anda harus meneruskan data terstruktur. Anda meraih JSON. Ini adalah standar industri. Namun saat Anda melihat jendela konteks Anda dipenuhi dengan kurung kurawal tak berujung, kunci berulang, dan tanda kutip di sekitar bilangan bulat sederhana, Anda mulai bertanya-tanya: Apakah ada cara yang lebih baik?

YAML menawarkan keterbacaan tetapi memiliki ambiguitas. CSV padat tetapi tidak memiliki hierarki.

Masukkan TOON.

TOON adalah format serialisasi data yang terasa seperti angin segar bagi pengembang dan bahasa asli untuk model AI. Ini menjembatani kesenjangan antara keterbacaan manusia dan efisiensi mesin. Hari ini, mari selami lebih dalam sintaks dan mekanisme TOON untuk memahami mengapa TOON dengan cepat menjadi favorit untuk pertukaran data dengan efisiensi tinggi.

Filosofi: Semantik JSON, Estetika YAML

Pada intinya, TOON berbagi model data yang sama persis dengan JSON. Jika Anda dapat merepresentasikannya dalam JSON—primitif (string, angka, boolean, null), objek, dan array—Anda dapat merepresentasikannya dalam TOON. Namun, penyajiannya sangat berbeda.

TOON membuang kawat gigi. Ia menggunakan lekukan untuk mewakili hierarki, seperti YAML. Objek sederhana terlihat bersih dan mudah didekati:

Berbeda dengan YAML, TOON sangat ketat dalam hal tipe. Tidak ada tebakan apakah no berarti false atau string "no". Di TOON, string hanya memerlukan tanda kutip jika benar-benar diperlukan—seperti jika mengandung karakter khusus, menyerupai angka, atau kosong. Jika Anda mengetik pesan: Halo Dunia, Anda mendapatkan sebuah string. Jika Anda mengetik hitungan: 42, Anda mendapatkan nomor.

nomor identitas: 123 
nama: Ada 
aktif: benar 

Kekuatan Array: Panjang dan Tabel

Yang membedakan TOON dari paketnya adalah penanganan arraynya. Ini adalah "fitur mematikan" untuk pengoptimalan token.

Setiap array di TOON secara eksplisit mendeklarasikan panjangnya dalam tanda kurung, seperti item[3]. Ini mungkin tampak mubazir bagi manusia, tetapi bagi LLM, ini adalah kekuatan super. Hal ini memungkinkan model untuk segera memvalidasi struktur dan mendeteksi pemotongan. Jika aliran terputus setelah dua item tetapi header menjanjikan tiga, parser mengetahui ada yang tidak beres.

TOON secara efektif menawarkan tiga cara untuk menangani array, secara otomatis memilih yang paling efisien:

  1. Inline Primitives: Untuk daftar angka atau string sederhana, TOON membuatnya tetap ringkas. tag[3]: admin,ops,dev
  1. Daftar Standar: Untuk tipe campuran, ia menggunakan sintaksis daftar dengan tanda hubung yang mirip dengan YAML.
  1. Objek Tabel: Ini adalah game-changer.

Jika Anda memiliki array objek yang berbagi kunci yang sama—pola yang sangat umum dalam rekaman database—TOON akan berputar ke Format Tabular. alih-alih mengulangi kunci untuk setiap baris, ia mendeklarasikan kunci satu kali di header.

Dalam contoh di atas, users[2]{id,name,role}: memberi tahu kita bahwa kita memiliki 2 baris dan mendefinisikan skemanya. Datanya mengikuti struktur mirip CSV. Hal ini menghilangkan overhead token yang sangat besar karena pengulangan "id":, "name":, dan "role": untuk setiap pengguna.

pengguna[2]{id,nama,peran}: 
1,Alice Admin,admin 
2,Bob Smith, pengguna 

Pembatas dan Efisiensi Token

Anda mungkin memperhatikan penggunaan koma pada contoh di atas. TOON sebenarnya mendukung tiga pembatas: koma (default), tab, dan pipa (|).

Mengapa ini penting? Tokenisasi.

Di banyak tokenizer LLM, koma yang diikuti dengan kutipan mungkin dibagi menjadi beberapa token. Namun, karakter tab sering kali diberi token dengan sangat rapi. TOON memungkinkan Anda mengganti pembatas di tingkat header array. Jika Anda menggunakan pembatas tab, Anda sering kali bahkan tidak perlu mengutip string yang berisi spasi, sehingga semakin mengompresi data Anda.

Formatnya cukup pintar untuk menangani "tabrakan". Jika data Anda berisi pembatas aktif, TOON cukup mengutip nilai spesifik tersebut.

item[2]{sku,nama, jumlah}: 
A1, Nama Widget,2 
B2, Nama Gadget,1 

Pelipatan Kunci: Meratakan Kurva

Fitur lain yang menyoroti fokus TOON pada efisiensi adalah Key Folding. Objek yang bersarang dalam biasanya menghasilkan "tangga" lekukan yang memakan ruang dan token horizontal.

Jika Anda memiliki hierarki mendalam di mana objek perantara tidak memiliki saudara kandung, TOON dapat menciutkannya menjadi jalur notasi titik.

Daripada menulis:

Anda dapat menulis:

data: 
metadata: 
item[2]: a,b 

Fitur ini, tersedia sejak spesifikasi v1.5, secara signifikan mengurangi jumlah baris dan token indentasi. Yang penting, hal ini sepenuhnya dapat dibalik. Saat Anda mendekode data dengan perluasan jalur diaktifkan, ini akan merekonstruksi hierarki objek dalam dengan sempurna.

data.metadata.item[2]: a,b 

Ketat dan Keamanan

Meski terlihat ringkas, TOON tidak lepas dari data. Ia mematuhi serangkaian aturan ketat untuk mengutip dan melarikan diri.

String umumnya tidak diberi tanda kutip, sehingga bagus untuk keterbacaan. Namun, TOON menerapkan penawaran untuk kasus edge untuk memastikan integritas data. Jika string terlihat seperti angka (misalnya, "05" atau "1e-6"), string tersebut akan dikutip untuk mencegahnya diurai sebagai angka. Jika string adalah kata khusus seperti true atau null, maka string tersebut akan dikutip.

Selanjutnya, TOON menormalkan angka. Ini mengeluarkan bentuk desimal kanonik—tidak ada notasi ilmiah atau angka nol di belakangnya—memastikan konsistensi. Ia bahkan menangani BigInt dengan aman; jika suatu angka melebihi rentang bilangan bulat yang aman, maka angka tersebut akan diserialkan sebagai string untuk mencegah hilangnya presisi selama pengangkutan.

Bentuk Akar

Meskipun sebagian besar dari kita bekerja dengan Root Objects, TOON fleksibel. Dokumen tidak harus dimulai dengan pasangan nilai kunci. Ini mendukung Root Array (segera dimulai dengan [N]:) atau bahkan satu Root Primitive. Paritas dengan JSON ini berarti Anda dapat menukar TOON ke hampir semua pipeline tempat JSON saat ini digunakan, asalkan Anda memiliki parser di ujung lainnya.

Pemikiran Terakhir

TOON bukan sekadar "format lain". Ini adalah alat khusus untuk era di mana data dikonsumsi oleh model probabilistik sama seringnya dengan kode deterministik. Dengan menggabungkan model data JSON yang kaku dengan kepadatan CSV dan keterbacaan YAML, model ini memecahkan masalah spesifik pengoptimalan jendela konteks tanpa mengorbankan keamanan jenis.

Jika Anda seorang agen bangunan, menyempurnakan model, atau hanya bosan menelusuri kurung kurawal yang tak ada habisnya, inilah saatnya untuk mencoba TOON.