最近爆火的TOON是什么技术,跟JSON有什么区别
|
admin
2025年11月19日 10:58
本文热度 141
|

TOON (Token-Oriented Object Notation) 是一种专为大型语言模型 (LLM) 设计的数据表示格式,其核心目的是减少输入/输出数据中的 Token 数量,从而降低成本和提高处理效率。
1. 什么是 TOON?
| | |
|---|
| 全称 | Token-Oriented Object Notation (面向分词的对象表示法)。 | JSON 是通用数据交换格式;TOON 专为 LLM 的 Tokenization 过程优化。 |
| 本质 | 一种数据序列化格式,类似于 JSON 或 YAML。 | Token 密度更高。通过移除冗余字符,使相同数据占用更少的 Token。 |
| 目标 | | 实际测试显示,可节省 30% 至 60% 的 Token 消耗。 |
2. TOON 的工作原理 (如何省 Token)
LLM 的分词器 (Tokenizer) 会将输入文本拆分为 Token。JSON 中大量的引号 (")、逗号 (,)、冒号 (:) 和大括号 ({}) 等结构性符号,都会被计为单独的 Token,造成浪费。
TOON 通过以下方式精简结构:
- • 移除冗余符号: 避免使用引号包裹字符串、避免使用逗号分隔键值对或列表项。
- • 基于缩进/空格: 利用缩进和空格来表示数据层级和分隔字段,类似 YAML。
- • 表格化数组: 将数组中的对象结构进行扁平化,字段名仅定义一次,数据按行对齐。
3. TOON 格式示例与使用
以下通过一个包含多个用户档案的列表,对比 JSON 和 TOON 的格式差异:
🔸 原始 JSON 格式 (Token 冗余)
{
"users": [
{"name": "小明", "age": 25, "city": "北京"},
{"name": "小红", "age": 30, "city": "上海"},
{"name": "小刚", "age": 28, "city": "广州"}
]
}
分析: 大量的引号、逗号和重复的键名 ("name", "age", "city") 都会被计入 Token。
🔹 优化后的 TOON 格式 (Token 高效)
users[3]{
name age city
小明 25 北京
小红 30 上海
小刚 28 广州
}
分析:
- 3.
name age city:字段名(Keys)只定义一次。 - 4. 下方数据:按行对齐,字段值之间用空格分隔,无需引号或逗号。
4. 应用场景
TOON 主要应用于以下需要大量数据输入/输出的 AI 交互场景:
- • Prompt 工程: 在给 LLM 提供上下文或示例时,用 TOON 传递数据结构,减少 Prompt 长度。
- • AI 结构化输出: 强制 LLM 以 TOON 格式输出数据,保证简洁和高效。
- • 批量数据处理: 如处理用户列表、产品目录、日志文件等。
如何使用:
开发者可以使用现有的 TOON 库(如 Python/Java 社区提供的工具)将传统的 JSON 格式数据转换为 TOON 格式,然后将其作为输入提交给 LLM。
该文章在 2025/11/19 10:58:09 编辑过