TOON:将 LLM 提示词的 JSON 大小减半
隆重推出 TOON:LLM 的面向令牌的对象表示法
在大型语言模型(LLM)迅速发展的今天,效率是核心。随着上下文窗口的扩大和数据输入的增加,令牌使用成本也随之攀升。正是在这样的背景下,面向令牌的对象表示法 (TOON) 应运而生,它提供了一种巧妙的开源解决方案,能显著减少向 LLM 传递结构化数据时的令牌消耗。
TOON 由 Johann Schopplich 开发,是一种创新的数据格式,专为 LLM 输入而设计,并非用于替代 API 或存储的通用 JSON。其核心优势在于,它能以比 JSON 减少 30-60% 的令牌消耗 来传达相同的信息,从而使 LLM 交互更具成本效益和速度。
TOON 对 LLM 提示如此重要的原因
传统的 JSON 尽管在数据交换中无处不在,但可能过于冗长且令牌占用高昂,特别是对于重复的数据结构。TOON 通过利用极简语法来解决这个问题,它移除了冗余的标点符号(大括号、方括号、大部分引号),并采用类似于 YAML 的基于缩进的结构。它的“最佳应用场景”是均匀的对象数组——每行包含多个字段且所有项结构一致的数据。对于这些场景,TOON 采用了表格格式,优化了令牌效率。
考虑一个简单的例子:
JSON:
{
"users": [
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "user" }
]
}
TOON:
tsers[2]{id,name,role}:
1,Alice,admin
2,Bob,user
在令牌数量上的差异,尤其是在大型数据集中,是相当可观的。
主要特性与优势
- 令牌高效: 与 JSON 相比,可节省高达 60% 的令牌,优化成本并缩短提示长度。
- LLM 友好型护栏: 明确的长度和字段声明简化了 LLM 的数据解析和验证。
- 极简语法: 减少了样板式的标点符号,提高了人类可读性并提升了分词器的效率。
- 基于缩进的结构: 对于熟悉 YAML 的用户来说很熟悉,利用空白来表示嵌套对象。
- 表格数组: 只声明一次键,然后以行流式传输数据,非常适合均匀的数据集。
- 性能基准: 在 GitHub 存储库、日常分析、电子商务订单等各种真实数据集上,TOON 持续展现出卓越的令牌效率,同时在不同的 LLM 模型(gpt-5-nano, claude-haiku, gemini-2.5-flash, grok-4-fast)中通常具有相当甚至更好的检索准确性。
TOON 的工作原理和使用方法
TOON 被设计为一个转换层:你可以使用 JSON 进行编程,然后将其转换为 TOON 以供 LLM 输入。它作为一个 npm 包 (@byjohann/toon) 提供,并包含一个命令行界面(CLI),可以方便地在 JSON 和 TOON 格式之间进行转换。
安装非常简单:
npm install @byjohann/toon
# 或者使用 pnpm/yarn
编码数据:
import { encode } from '@byjohann/toon'
const data = {
users: [
{ id: 1, name: 'Alice', role: 'admin' },
{ id: 2, name: 'Bob', role: 'user' }
]
}
console.log(encode(data))
// 生成上面所示的 TOON 输出
你还可以通过 delimiter(逗号、制表符或管道符)和 lengthMarker 等选项自定义输出,以实现更高的令牌节省和清晰度,尤其是在向 LLM 传达特定格式时。
TOON 在 LLM 提示中的应用
当将 TOON 发送给 LLM 时,最佳实践是展示其格式而非仅仅描述。将编码后的数据用围栏代码块(例如,`toon)包裹起来。TOON 中明确的数组长度和字段头有助于模型跟踪结构,显著减少解析错误。
在使用 LLM 生成 TOON 时,请在提示说明中明确指出。定义预期的头部格式和规则(例如,2 个空格缩进,无尾随空格)。这将指导 LLM 生成符合规范且高效的 TOON 输出。
考虑事项与局限性
TOON 在处理均匀的对象数组时表现出色,但对于深度嵌套或高度不均匀的数据,其效率可能会降低,此时 JSON 可能仍然更适用。关键是要明白,令牌节省量可能会因所使用的具体 LLM 和分词器而异(基准测试基于 GPT 风格的分词器)。
然而,对于大量的 LLM 提示工程任务——特别是涉及大型、一致数据集的那些任务——TOON 提供了一个强大、开源的工具,可以提高效率并优化 LLM 交互。随着社区支持的增长以及在各种语言中的实现,TOON 正在迅速成为 AI 开发人员宝贵的资产。
探索 TOON GitHub 仓库,深入了解其规范、基准和持续开发。