- Token-Oriented Object Notation
- LLM’e girdi verirken token kullanımını azaltmak için tasarlanmış bir serileştirme formatı
- JSON verisini kayıpsız biçimde ifade ederken token verimliliği ve okunabilirliği aynı anda sağlar
- Tek tip nesne dizileri için optimize edilmiş bir yapıyla, tekrar eden anahtarları kaldırarak %30~60 token tasarrufu sağlar
- YAML’ın girintiye dayalı yapısı ile CSV’nin tablo biçimini birleştiren hibrit bir format
- İç içe yapının derin olduğu veya verinin tek tip olmadığı durumlarda JSON daha verimlidir
- Açık yapı bilgisi içerdiğinden, LLM veriyi daha kararlı biçimde ayrıştırabilir ve doğrulayabilir
- Dizi uzunluğunu (
[N]) ve alan tanımlarını ({id,name,role}) açıkça belirterek yapı farkındalığını artırır
- Kısa bir sözdizimi ile gereksiz parantezleri, tırnakları ve noktalama işaretlerini kaldıran minimal sözdizimi tasarımı
- Girintiye dayalı hiyerarşi gösterimi, CSV benzeri satır tabanlı veri akışını destekler
- CLI aracı üzerinden JSON ↔ TOON arasında çift yönlü dönüşüm desteği
- Otomatik format algılama, ayraç (
,, \t, |) belirtme, token tasarrufu istatistiklerini çıktı verme gibi seçenekler sunar
- API yapısı
encode() ile JSON serileştirme, decode() ile ters serileştirme yapılır
- Seçenekler arasında girinti, ayraç ve uzunluk işaretleyicisi (
#) belirtilebilir
- Benchmark sonuçları, JSON’a kıyasla ortalama %21~60 token tasarrufu ve LLM sorgu doğruluğunda %73,9 başarı
- CSV’den biraz daha büyük olsa da, yapısal doğrulama işlevi sayesinde LLM güvenilirliğini artırır
- Biçim kuralları
- Metinler yalnızca gerektiğinde tırnak içine alınır, ayraç içerdiğinde otomatik olarak tırnaklanır
- Sayılar, boolean değerler, tarihler vb. LLM dostu biçimlere dönüştürülür
- Çeşitli dil implementasyonları sunuluyor
- Resmî: Python, Rust (geliştirme aşamasında)
- Topluluk: Go, Java, Swift, C++, .NET, Ruby vb.
3 yorum
function callingkullanıyorum; bir kez test etmem gerekecek gibi görünüyor.Bazı örneklere bakınca, boşluklar kaldırıldığında JSON biçiminin token sayısını çok daha fazla azalttığı söyleniyor.. Ben de hâlâ tam emin değilim. Gerçekten kullanmaya değer bir format mı bilmiyorum.
Modele göre doğruluk karşılaştırması
Sadece benchmark sonuçlarına bakarsak, doğrulukta düşüş olmadan token kullanımını azalttığı için bunu kullanmamak için bir neden yokmuş gibi görünüyor