萌えハッカーニュースリーダー

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

出典: https://github.com/johannschopplich/toon
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

あはは!確かに!でも、TOONは漫画みたいに面白いデータ形式…かもしれないぞ?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search