18 คะแนน โดย xguru 2025-11-19 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • Token-Oriented Object Notation
  • ฟอร์แมตการซีเรียลไลซ์ที่ออกแบบมาเพื่อลดการใช้โทเค็น เมื่อนำข้อมูลเข้า LLM
    • แสดงข้อมูล JSON ได้โดยไม่สูญเสียข้อมูล พร้อมคงทั้ง ประสิทธิภาพด้านโทเค็นและความอ่านง่าย
  • โครงสร้างที่เหมาะกับ อาร์เรย์ของอ็อบเจ็กต์ที่มีรูปแบบสม่ำเสมอ โดยตัดคีย์ที่ซ้ำกันออก จึงช่วย ลดโทเค็นได้ 30~60%
    • เป็น ฟอร์แมตไฮบริด ที่ผสานโครงสร้างแบบย่อหน้าด้วยการเยื้องของ YAML เข้ากับรูปแบบตารางของ CSV
    • หากเป็นข้อมูลที่มีโครงสร้างซ้อนลึกหรือไม่สม่ำเสมอ JSON จะมีประสิทธิภาพมากกว่า
  • มี ข้อมูลโครงสร้างแบบชัดเจน ทำให้ LLM สามารถ พาร์สและตรวจสอบข้อมูลได้อย่างเสถียร
    • ระบุความยาวอาร์เรย์ ([N]) และคำจำกัดความของฟิลด์ ({id,name,role}) อย่างชัดเจน เพื่อช่วยให้รับรู้โครงสร้างได้ดีขึ้น
  • ออกแบบเป็น ไวยากรณ์แบบย่อ ที่ตัดวงเล็บ เครื่องหมายอัญประกาศ และเครื่องหมายวรรคตอนที่ไม่จำเป็นออก
    • รองรับการแสดงลำดับชั้นด้วยการเยื้อง และสตรีมข้อมูลแบบรายแถวคล้าย CSV
  • รองรับ การแปลงสองทางระหว่าง JSON ↔ TOON ผ่าน เครื่องมือ CLI
    • มีตัวเลือกอย่างการตรวจจับฟอร์แมตอัตโนมัติ การกำหนดตัวคั่น(,, \t, |) และการแสดงสถิติการประหยัดโทเค็น
  • องค์ประกอบของ API
    • ใช้ encode() สำหรับซีเรียลไลซ์ JSON และ decode() สำหรับดีซีเรียลไลซ์กลับ
    • สามารถกำหนดการเยื้อง ตัวคั่น และตัวบ่งชี้ความยาว (#) ได้ผ่านออปชัน
  • ผลการเบนช์มาร์ก แสดงว่าช่วยลดโทเค็นได้เฉลี่ย 21~60% เมื่อเทียบกับ JSON และมีความแม่นยำในการคิวรีกับ LLM 73.9%
    • แม้จะมีขนาดใหญ่กว่า CSV เล็กน้อย แต่มีฟังก์ชันตรวจสอบเชิงโครงสร้างที่ช่วย เพิ่มความน่าเชื่อถือของ LLM
  • กฎของรูปแบบ
    • สตริงจะใส่เครื่องหมายอัญประกาศเฉพาะเมื่อจำเป็น และหากมีตัวคั่นรวมอยู่ด้วยจะใส่อัญประกาศให้อัตโนมัติ
    • ตัวเลข บูลีน วันที่ ฯลฯ จะถูกแปลงให้อยู่ในรูปแบบที่เป็นมิตรกับ LLM
  • มี อิมพลีเมนเทชันหลายภาษา
    • ทางการ: Python, Rust (อยู่ระหว่างพัฒนา)
    • คอมมูนิตี้: Go, Java, Swift, C++, .NET, Ruby เป็นต้น

3 ความคิดเห็น

 
wedding 2025-11-20

กำลังใช้ function calling อยู่เหมือนกัน เดี๋ยวต้องลองทดสอบดูครับ

 
princox 2025-11-19

จากตัวอย่างบางส่วน ดูเหมือนว่าเมื่อเอาช่องว่างออกแล้ว มาตรฐาน JSON จะช่วยลดจำนวนโทเคนได้มากกว่ามากครับ.. ตอนนี้ก็ยังไม่ค่อยแน่ใจนักว่าเป็นฟอร์แมตที่น่าเอาไปใช้งานจริงจังหรือเปล่า

 
laeyoung 2025-11-19

เปรียบเทียบความแม่นยำแยกตามโมเดล

  • Gemini 2.5 Flash: TOON 87.6% เทียบกับ JSON 77.0%
  • GPT-5 Nano: TOON 90.9% เทียบกับ JSON 89.0%
  • Claude Haiku 4.5: TOON 59.8% เทียบกับ JSON 57.4%

ถ้าเชื่อผลเบนช์มาร์กอย่างเดียว ก็ดูเหมือนว่าไม่มีเหตุผลที่จะไม่ใช้ เพราะมันลดการใช้ token ลงได้โดยที่ความแม่นยำไม่ลดลง