近年、LLM(大規模言語モデル)活用時のAPIコストが問題となっています。特に、プロンプトに大量のデータをJSON形式で渡すと、冗長な構造がトークン数を圧迫し、無駄なコストが発生します。
そうした課題を解決するために注目されている TOON(Token-Oriented Object Notation) を解説します。
TOONは、フィールド名の重複を排除し、キーを一度だけ宣言して後は値だけを列挙する記法です。
例えば、JSON形式のデータをTOONに変換することで、30〜60%程度のトークン削減が可能になると報告されています。
jsonだとこのように記述されているものが、
{
"products": [
{ "id": 301, "name": "Mouse", "price": 29.99 },
{ "id": 302, "name": "Keyboard", "price": 89.00 },
{ "id": 303, "name": "Hub", "price": 45.50 }
]
}
TOONで同じデータを書くとこうなります。
products{id,name,price}:
301,Mouse,29.99
302,Keyboard,89.00
303,Hub,45.50
これはAPIのトークン消費量・コストの削減に直結します。
また、TOONは 完全な互換性 を持ち、既存のJSON資産を破棄せず段階的に導入できます。具体的な導入例として、LLMの入出力部分だけTOON形式にする方法が紹介されており、効果が確認できた段階で適用範囲を徐々に拡大することが推奨されています。
一方で、TOONは 深くネストした構造 のデータや非常に複雑な推論タスクには向かないケースもあります。こうした用途では従来のJSONが依然有効です。したがって、TOONは JSONの代替ではなく補完 の位置づけで使うのが現実的です。
TOONを賢く活用することで、LLMとのインターフェースを最適化し、コスト効率と処理速度の両立を実現する道が開けます。