toonify — TOON(Token-Oriented Object Notation)実装

Library

概要

TOON(Token-Oriented Object Notation)は、LLMへ構造化データを渡す際にトークン使用量を大幅に削減することを目的とした、コンパクトで人間可読なシリアライズ形式です。本リポジトリ「toonify」はそのPython実装/ユーティリティ群を収めており、簡単なデモ(demo.py)や資産(assets)を含みます。軽量でプロンプト設計やデータ受け渡し、評価パイプラインの効率化に役立つツールです。

GitHub

リポジトリの統計情報

  • スター数: 20
  • フォーク数: 0
  • ウォッチャー数: 20
  • コミット数: 3
  • ファイル数: 12
  • メインの言語: Python

主な特徴

  • LLM向けに最適化されたコンパクトなシリアライズ形式(TOON)の実装。
  • 人間に可読な構文を維持しつつトークン効率を向上。
  • Python 3.8+で動作するサンプルスクリプト(demo.py)と資産を同梱。
  • MITライセンスで商用利用や改変が容易。

技術的なポイント

TOONは「トークン単位」を意識した設計哲学を持ち、冗長な括弧や冗長なキー名を抑えてモデルへの入力を最小化することを狙います。典型的にはJSONやYAMLよりも簡潔な表現(例えば短縮された区切り、省略可能な引用、最小限の空白)を採用し、LLMのトークナイザーが分割しやすい形に整形することで同一情報量でも消費トークンを削減します。本実装はPythonでのエンコード/デコード機能を備え、次の点が注目されます。

  • シンタックスの最小化: 必要最小限の構文要素でオブジェクト/配列/スカラーを表現し、余分な記号を削ることで文字列長とトークン数を削減。
  • 可読性の維持: 人間が理解しやすい簡潔な表現を保ち、プロンプト作成時に編集やレビューが行いやすい設計。
  • トークン優先の設計思想: 実装はモデルのトークン化挙動を意識しており、エンコード時の空白処理や改行の扱い、エスケープの最小化など細部を調整。
  • Python統合: Python 3.8以上に対応し、シンプルなAPIでPythonオブジェクト ⇄ TOON 文字列の相互変換を提供。デモスクリプトにより使用例が示され、既存のプロンプトパイプラインに組み込みやすい。
  • 軽量化と拡張性: コードベースは小規模で、追加のシリアライズルールやカスタム変換を導入しやすい構造。ライセンスはMITで商用利用や派生開発が容易。

実運用では、プロンプト生成や評価セットの送信、モデルへの小さなメタデータ添付などでトークンコストの節約が期待できます。一方で、独自のシンタックスを使う以上、受け手(モデル)側での明確なパースルールの共有が必要であり、トークナイザー依存の最適化はモデル毎に効果差が出る点には注意が必要です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: file
  • README.md: file
  • README.zh-CN.md: file
  • assets: dir
  • demo.py: file
  • toon.py: file
  • setup.py: file
  • tests: dir
  • examples: dir
  • requirements.txt: file
  • .gitignore: file
  • pyproject.toml: file

…他 0 ファイル

(注: 上記は主要ファイルの抜粋。リポジトリは小規模で、デモと実装、ドキュメントが中心です。)

まとめ

LLM向けにトークン効率を重視した軽量シリアライズ実装。実験・プロトタイプに最適。

リポジトリ情報:

READMEの抜粋:

Toonify Logo

TOON (Token-Oriented Object Notation)

English | 中文

A compact, human-readable serialization format designed for passing structured data to Large Language Models with significantly reduced token usage.

Python Version [License: MIT