 
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。
|