TOONとは何か? AIのコストを最大60%削減する新データフォーマットを徹底解説のPodcast
下記のPodcastは、Geminiで作成しました。
ストーリーブック
導入:AI時代の「トークン税」問題 — なぜJSONではダメなのか?
人工知能(AI)、特にGPT-4やClaudeに代表される大規模言語モデル(LLM)がビジネスのあらゆる側面に浸透する中で、開発者と企業は見過ごされがちな、しかし深刻なコスト問題に直面しています。それが「トークン税(Token Tax)」です 1。
まず、初心者の方のために「トークン」について簡単に解説します。LLMは人間のように単語や文章をそのまま理解しているわけではなく、テキストを「トークン」と呼ばれる小さな単位(日本語の場合は単語の一部や助詞、英語の場合は単語や句読点など)に分割して処理します 2。LLMのAPI(外部からAIの機能を呼び出す窓口)を利用する際、このトークン数に基づいて課金されます 4。つまり、AIに送るデータが長ければ長いほど、あるいはAIからの応答が長ければ長いほど、コストは直線的に増加します。
ここで問題になるのが、現代のWeb開発における「共通語」であるJSON(JavaScript Object Notation)です 6。JSONは、システム間で構造化データを交換するための標準フォーマットですが、AI時代においては2つの重大な欠点を抱えています。
第一の「明らかな」問題は、その「冗長性」です 3。JSONは、データを { }(中括弧)や [ ](角括弧)で囲み、すべてのキー(項目名)と文字列の値を "(引用符)で括り、項目間を ,(カンマ)で区切る必要があります。例えば、たった2人のユーザー情報を送るだけでも、JSONでは以下のようになります 4。
{
"users":
}
この例では、{ } [ ] " , といった記号や、"id", "name", "role" といったキー(列名)がデータの行数分だけ繰り返されます 3。これらすべてがトークンとしてカウントされ、貴重なコストと、AIが一度に処理できる「コンテキスト・ウィンドウ(文脈の窓)」を圧迫します。これが「トークン税」の正体です。
第二の「隠れた」問題は、その「信頼性」です。開発者がLLMに「JSON形式で応答してください」と指示しても、LLMは完璧なJSONを生成するのが苦手です 6。LLMは本質的に確率的なテキスト生成エンジンであるため、構文エラー(例:引用符の閉じ忘れ、余計なテキストの混入、不正なカンマ)を頻繁に起こします 6。特に、応答内容に引用符が含まれる場合の「エスケープ処理(\" のように記号を無害化すること)」は、LLMにとって非常に困難なタスクです 6。その結果、開発者はAIからの「壊れたJSON」を修正するための複雑なエラー処理コードを書くことに、多大な時間を費やしています。
AI開発の現場では、コストと信頼性の両面で、JSONよりも「AIに最適化(AIO)」された、新しいデータフォーマットが求められていました。その最も有力な答えが、今回解説する「TOON」です。


TOONとは何か? — AIの「思考」に合わせて設計された新フォーマット
TOONとは、「Token-Oriented Object Notation(トークン指向オブジェクト記法)」の略です 2。これは、2025年10月にJohann Schopplich氏によって開発・リリースされた、AIとLLMのために設計された新しいデータフォーマットです 4。


TOONの設計思想は、「JSONのデータモデルとの完全な互換性を保ちながら、構文だけをAIと人間に最適化する」という点にあります 12。つまり、JSONが表現できるオブジェクト、配列、数値、文字列といったデータ構造はTOONでも同様に(損失なく)表現できますが、その「書き方」が根本的に異なります 12。
TOONの最大の特徴は、YAML(ヤムル)のような「インデント(字下げ)」による階層表現と、CSV(カンマ区切り)のような「表形式」のデータ表現を巧みに組み合わせた、ハイブリッドな構造にあります 15。
この違いを理解するために、先ほどの「2人のユーザー情報」をJSON、YAML、そしてTOONで比較してみましょう。これがTOONの革命性を理解する鍵となります 4。
JSON(従来:冗長)
{ "users": }
YAML(やや冗長)
users:
- id: 1
name: Alice
role: admin
- id: 2
name: Bob
role: user
TOON(非常にコンパクト)
users{id,name,role}:
1,Alice,admin
2,Bob,user
一目瞭然です。TOONでは、{} や ""、繰り返しのキーが完全に排除されています。TOONの構文は以下のように機能します 3。
users{id,name,role}:というヘッダー行で、必要なすべての情報を一度だけ宣言します。users: これから始まるデータが「users」という名前のリスト(配列)であることを示します。``: このリストに「2件」のデータが含まれることを示します(これはオプションですが、AIがデータの長さを検証するのに役立ちます)。
{id,name,role}: 各データの列(キー)が「id, name, role」であることを定義します。
続く行は、インデント(字下げ)され、CSVのように「値だけ」をカンマ区切りで記述します。
この構造により、データが100行、1000行と増えても、キー(列名)の繰り返しが一切発生せず、トークン消費を劇的に削減できるのです。
TOONはどれほど効率的か? — 衝撃的なコスト削減と「精度の向上」
TOONの有効性は、単なる「トークンの削減」に留まりません。ベンチマーク(性能評価)データは、TOONが「コスト」と「品質」の両面で、JSONを圧倒する可能性を示しています。
ベンチマーク1:トークン削減(コスト)
TOONは、AIとのデータ交換において、JSONと比較して30%から60%のトークンを削減します 2。これは、AIの利用コストがそのまま30%〜60%削減されることを意味します。
あるベンチマークでは、表形式データにおいてJSONに対し64.7%という大幅なトークン削減を達成しました 8。
GitHubで公開されている別のベンチマークでも、JSONに比べて39.6%のトークン削減が確認されています 13。
ベンチマーク2:精度の向上(品質)
ここがTOONの真に革命的な点です。コスト削減は分かりやすい利点ですが、TOONはAIの「データ解釈の正解率」をも向上させることが示されています。
ある研究によると、LLMにJSON形式でデータを与えた場合のタスク正解率が69.7%だったのに対し、同じデータをTOON形式で与えた場合は73.9%に向上しました 13。
これはなぜでしょうか? JSONの冗長な構文({ } " , など)は、LLMにとって本質的なデータとは関係のない「ノイズ」です。このノイズがAIの「認知負荷(Cognitive Load)」を高め、データの本質的な構造や意味の理解を妨げていると考えられます。
対照的に、TOONのクリーンな表形式は、LLMに対して「これはテーブルデータ(表)である」と即座に理解させる、強力な「構造的なプロンプト」として機能します 12。LLMがデータの構造を正しく認識できるため、結果としてデータに基づいた推論の精度が向上するのです。
ベンチマーク3:コスト効率(ビジネス価値)
「より安く(コスト削減)」と「より良く(精度向上)」という2つの利点を組み合わせると、TOONのビジネス価値が明確になります。
「トークンあたりの精度」で測定したコスト効率において、TOONはJSONを76%も上回るという結果が報告されています 8。これは、同じコストを支払うならば、TOONを使った方が遥かに質の高い結果を得られることを示しています。
これらの利点を以下の表にまとめます。
| 比較項目 | JSON (従来) | TOON (新方式) | 概要 |
| トークン削減率 | 基準 | 39.6% 〜 64.7% 削減 2 | AIのAPIコストを大幅に削減できる。 |
| データ解釈精度 | 69.7% 13 | 73.9% (精度向上) 13 | AIがデータをより正しく理解できる。 |
| コスト効率 | 基準 | 76% 向上 8 | より少ないコストで、より良い結果を得られる。 |
TOONの長所と短所 — いつ使うべきか?(そして、いつ使うべきでないか)
TOONの劇的な効果を見て、「すべてのJSONをTOONに置き換えるべきだ」と考えるかもしれませんが、それは早計です。TOONは万能薬ではなく、明確な得意分野と不得意分野があります。この点を客観的に理解することは、技術選定における「信頼性(Trustworthiness)」の観点からも非常に重要です 19。


TOONが真価を発揮する「最適な」ユースケース
TOONは、その設計(CSVとYAMLのハイブリッド)からも分かる通り、「フラットな」「表形式の」「均一な」データ構造を扱う際に、最大の効果を発揮します 15。
具体的なユースケースは以下の通りです。
RAG(検索拡張生成)のコンテキスト: AIが質問に答えるためにデータベースから検索してきた複数の文書チャンク(情報の断片)を、LLMに渡す際。これらのデータは通常、均一な構造(「文書ID」「内容」「関連度」など)を持っています 18。
データベースの検索結果: ユーザーリスト、製品カタログ、ECサイトの注文履歴、アプリケーションのログデータなど、行と列で構成されるあらゆる表形式データです 8。
AIエージェントの応答: LLMにタスクリストやスケジュールなどを構造化して出力させる際、JSONよりもクリーンで解析しやすい形式として役立ちます 15。
TOONが「不向きな」ユースケース(弱点)
一方で、TOONは「深くネストされた」「複雑な階層構造」のデータを表現するのは不得意です 15。
あるベンチマークでは、複雑にネストした設定データ(オブジェクトの中にリストがあり、その中にさらにオブジェクトがあるような構造)を各フォーマットで比較しました 16。
JSON: 102 トークン
YAML: 88 トークン
TOON: 95 トークン
このケースでは、TOON(95トークン)はJSON(102トークン)よりは効率的でしたが、インデントによる階層表現を得意とするYAML(88トークン)に敗北しています 16。このようなユースケースでは、無理にTOONを使うよりも、YAMLや、JSONから空白や改行をすべて削除した「最小化JSON(Minified JSON)」の方が効率的な場合があります 21。
専門家からの戦略的アドバイス:「ハイブリッド・アプローチ」
結論として、TOONは「JSONキラー(JSONの代替品)」ではありません 3。JSONが持つ、システム間の普遍的な互換性や、膨大なツール群は依然として強力です。
最も賢明な戦略は、「ハイブリッド・アプローチ」です 3。
アプリケーション内部のAPI通信や、データ保存には、引き続き互換性の高いJSONを使い続けます。
AI(LLM)にデータを送信する直前に、そのデータをTOON形式に変換します。
LLMからの応答もTOON形式で受け取ります(LLMはTOONの生成も得意です)。
受け取ったTOONデータを即座にJSON(またはPython辞書など)に変換し、アプリケーションの残りの部分で処理します。
この方法であれば、既存のシステムアーキテクチャへの影響を最小限に抑えつつ、AIとの通信部分だけでTOONの恩恵(コスト削減と精度向上)を最大限に享受できます。
TOONの実践 — Pythonでの簡単な始め方
TOONはすでに実用段階に入っています。Python用の公式ライブラリ toon-format 22 や、.NET用のライブラリ 4 などがコミュニティによって開発・提供されています。
ここでは、PythonでTOONを使い始めるための簡単なステップを紹介します。
ステップ1:インストール
まず、Pythonのパッケージマネージャ pip を使ってTOONライブラリをインストールします 23。
pip install toon-format
ステップ2:JSON(Python辞書)からTOONへの変換 (エンコード)
Pythonのリストや辞書(JSONとほぼ同じ構造)をTOON形式の文字列に変換します。これは、LLMにデータを送信する際に使用します 17。
import toon
# 送信したいPythonデータ (JSONに相当)
users =
# TOON形式の文字列にエンコード
toon_data = toon.encode(users)
print(toon_data)
# --- 出力結果 ---
# [2,]{id,name,age}:
# 1,Alice,30
# 2,Bob,25
ステップ3:TOONからPython辞書への変換 (デコード)
LLMがTOON形式で応答した文字列を、Pythonで扱える辞書に変換(パース)します 23。
import toon
# LLMからのTOON形式の応答 (例)
toon_response = """
name: "Sarah Wilson"
age: 32
active: true
"""
# Python辞書にパース (デコード)
data = toon.parse(toon_response)
print(f"Name: {data['name']}")
print(f"Age: {data['age']}")
# --- 出力結果 ---
# Name: Sarah Wilson
# Age: 32
LLMプロンプトへの応用
これらの機能を使うと、LLMへのプロンプト(指示文)は以下のようになります。
以下のユーザーデータを分析し、各ユーザーの要約をTOON形式で返してください。
{toon_data}
この{toon_data}の部分に、ステップ2でエンコードしたTOON文字列を埋め込むだけで、プロンプトのトークン数を劇的に削減し、AIの応答精度を高めることができます。
6. まとめ: AI開発の未来と「トークンを意識した」エンジニアリング
TOONは、AI、特にLLMとのデータ交換における「トークン税」問題 1 と、JSONの「信頼性」問題 6 に対する、現時点で最も強力かつ実用的な解決策の一つです。
TOONは万能薬ではなく、JSONを完全に置き換えるものではありません。しかし、AI開発において最も一般的でコストのかかる「表形式データ」の扱いに特化した「特殊ツール」として、JSONを圧倒する性能(コスト削減と精度向上)を発揮します 14。
TOONの登場が示すより大きなトレンドは、「トークンを意識したエンジニアリング (Token-Aware Engineering)」 14 という新しい時代の幕開けです。これからのAIアプリケーション開発では、アルゴリズムやモデルの選択だけでなく、AIに「入力」し「出力」させるデータ形式そのものが、コストと性能を左右する重要な最適化(AIO)の対象となります。
もし、あなたのAIアプリケーションがJSON形式で大量の表データをLLMに送信している場合、それをTOON形式に変換するテストを行うことは、即時のコスト削減と精度向上に繋がる、最も簡単な「AI Optimization(AIO)」かもしれません。まずは pip install toon-format から試してみてはいかがでしょうか。
参考資料
toon-format/toon: Token-Oriented Object Notation (TOON), https://github.com/toon-format/toon
TOON vs JSON: A Modern Data Format Showdown, https://dev.to/sreeni5018/toon-vs-json-a-modern-data-format-showdown-2ooc
What is TOON? How Token-Oriented Object Notation Could Change How AI Sees Data, https://www.freecodecamp.org/news/what-is-toon-how-token-oriented-object-notation-could-change-how-ai-sees-data/
Singing a new TOON - A more efficient data format for AI, https://www.epiusers.help/t/singing-a-new-toon-a-more-efficient-data-format-for-ai/130773
AI時代のLLMに向けた、トークン効率を最大化する次世代データフォーマット「TOON」とは?, https://note.com/gentle_lupine925/n/n367a047bb126
TOON vs. JSON vs. YAML: Token Efficiency Breakdown for LLM, https://medium.com/@ffkalapurackal/toon-vs-json-vs-yaml-token-efficiency-breakdown-for-llm-5d3e5dc9fb9c
AIO(AI Optimization)とは? AI Overview時代のSEOの新潮流と実践手法を徹底解説, https://www.connecty.co.jp/topics/dx/20250606132331.html
Leveraging LLMs for Automated Correction of Malformed JSON, https://medium.com/@lilianli1922/leveraging-llms-for-automated-correction-of-malformed-json-e3c1f8b789a6
If you're facing issues parsing JSON LLM outputs, STOP trying to fix the JSON. Use delimiters instead., https://www.reddit.com/r/Backend/comments/1ou602v/if_youre_facing_issues_parsing_json_llm_outputs/
YAML vs JSON for LLM Token Efficiency - The Minification Truth, https://curiouslychase.com/posts/yaml-vs-json-for-llm-token-efficiency-the-minification-truth/
Prompt engineering is central to optimize LLM performance for structured data generation., https://pmc.ncbi.nlm.nih.gov/articles/PMC11979239/
toon-format: TOON Format for Python, https://libraries.io/pypi/toon-format
How to Use TOON in Python (for OpenAI, Claude, & LLMs), https://jsontotable.org/blog/toon/how-to-use-toon-in-python
toon-format/toon-python: Python implementation of the TOON format, https://github.com/toon-format/toon-python
xaviviro/python-toon: DEPRECATED, https://github.com/xaviviro/python-toon
TOON Format in RAG Pipelines (Surprisingly?) Improves Accuracy vs JSON, https://www.reddit.com/r/Rag/comments/1oz206m/toon_format_in_rag_pipelines_surprisingly/
Reduced RAG response tokens by ~40% with TOON format, https://www.reddit.com/r/Rag/comments/1otgkpx/reduced_rag_response_tokens_by_40_with_toon/
Meet TOON: A format built for LLMs (up to 60% fewer tokens vs JSON), https://www.reddit.com/r/LLMeng/comments/1owvkje/meet_toon_a_format_built_for_llms/
What is TOON? (Token-Oriented Object Notation), https://jsontotable.org/blog/toon/what-is-toon
TOON: The Data Format Slashing LLM Costs by 50%, https://medium.com/codex/toon-the-data-format-slashing-llm-costs-by-50-ac8d7b808ff6
TOON vs JSON: The New Format Designed for AI, https://dev.to/akki907/toon-vs-json-the-new-format-designed-for-ai-nk5
Issues parsing LLM responses into JSON with code, https://www.reddit.com/r/learnmachinelearning/comments/1gi2ish/issues_parsing_llm_responses_into_json_with/
Any other way to parse returned json data without so many errors?, https://stackoverflow.com/questions/78220060/any-other-way-to-parse-returned-json-data-without-so-many-errors



コメント