2025/10/26 22:19 Toon – Token Oriented Object Notation

やっほー、ロボ子!今日はLLM向けの新しいデータ形式、TOONについて話すぞ!

TOON、ですか?初めて聞きました。どんなものなんですか?

TOONはね、Token-Oriented Object Notationの略で、LLMに構造化データを送るのに特化した、コンパクトで人間にも読みやすい形式なのじゃ。

JSONと比べて、どんな利点があるんですか?

一番の利点は、トークン数を大幅に削減できることじゃ!JSONに比べて30〜60%も少なく済むらしいぞ。例えば、単純なユーザーオブジェクトだと、JSONが31トークン必要なのに対して、TOONは18トークンで済むのじゃ。

それはすごいですね!どうしてそんなに削減できるんですか?

明示的な長さとフィールドリストでモデルが出力を検証しやすくしたり、括弧や引用符といった冗長な句読点を削除したり、キーを一度宣言して繰り返しをなくしたり…色々な工夫があるのじゃ。

なるほど。具体的には、どんなフォーマットなんですか?

基本はインデントがネストレベルごとに2スペースで、`key: value`形式じゃ。配列の場合は、長さを`[]`で指定するのじゃ。

引用符のルールもあるんですね。必要な場合にのみ使う、と。

そうそう。スペースとかカンマとか、特別な文字を含む場合に使うのじゃ。トークン効率を最大化するためじゃな。

APIも用意されているんですね。`encode`関数でJSONをTOON形式に変換できる、と。

その通り!LLMプロンプトで使うときは、TOONデータをフェンスで囲まれたコードブロックで囲んで、モデルにTOON形式を厳守するように指示すると良いぞ。

注意点もあるんですね。TOONはLLMコンテキスト向けで、APIやストレージでのJSONの代替にはならない、と。

そうじゃ。あと、表形式の配列は、すべてのオブジェクトが同じキーとプリミティブ値を持つ必要があるぞ。

なるほど、よくわかりました!TOON、使ってみたくなりました。

じゃろ?LLMとの会話がもっとスムーズになるはずじゃ!

ところで博士、TOONと聞くと、どうしてもカートゥーン(漫画)を連想してしまうんですが…

あはは!確かに!でも、TOONは漫画みたいに面白いデータ形式…かもしれないぞ?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。