新发布的面向令牌的对象表示法(TOON)有望通过减少令牌消耗来降低大型语言模型的成本

来源: InfoQ - 后端

原文

最近发布的面向令牌的对象表示法(TOON)旨在成为一种支持模式识别的JSON替代方案,在保持相近精度的同时显著降低令牌消耗。虽然节省的令牌数量取决于数据结构,但部分基准测试表明,TOON在某些场景下比JSON消耗的令牌少40%,或许可以节省大型语言模型(LLM)及推理的成本。

TOON将自己描述为一种紧凑的、人类可读的JSON数据模型编码,用于LLM提示。

考虑以下JSON:

{
  "context": {
    "task": "Our favorite hikes together",
    "location": "Boulder",
    "season": "spring_2025"
  },
  "friends": ["ana", "luis", "sam"],
  "hikes": [
    {
      "id": 1,
      "name": "Blue Lake Trail",
      "distanceKm": 7.5,
      "elevationGain": 320,
      "companion": "ana",
      "wasSunny": true
    },
    {
      "id": 2,
      "name": "Ridge Overlook",
      "distanceKm": 9.2,
      "elevationGain": 540,
      "companion": "luis",
      "wasSunny": false
    },
    {
      "id": 3,
      "name": "Wildflower Loop",
      "distanceKm": 5.1,
      "elevationGain": 180,
      "companion": "sam",
      "wasSunny": true
    }
  ]
}

在TOON格式中,相同的数据变为:

context:
  task: Our favorite hikes together
  location: Boulder
  season: spring_2025


friends[3]: ana,luis,sam


hikes[3]{id,name,distanceKm,elevationGain,companion,wasSunny}:
  1,Blue Lake Trail,7.5,320,ana,true
  2,Ridge Overlook,9.2,540,luis,false
  3,Wildflower Loop,5.1,180,sam,true

在在线游乐场中运行这个示例,它消耗的令牌与Pretty JSON相比减少了55%,与compact  JSON相比减少了25%,与YAML相比减少了38%。

如上面的示例所示,TOON通过组合YAML(用于嵌套对象)和CSV(用于统一数组)格式来节省令牌。然而,对于非统一数据,JSON可能更有效。对于深度嵌套对象,YAML则可能更节省令牌。对于扁平化数据集,CSV仍然是最紧凑的格式。为提高LLM的准确性,TOON额外增加了一小部分开销(约5%)用于字段标题和数组声明。

Johann Schopplich在X上解释说

“令牌效率会损害准确性吗?”

不:) TOON在GPT 5 Nano上达到了99.4%的准确度,而使用的令牌减少了46%。

已经针对大约160个问题和3个LLM进行了语义验证测试。

我认为,明确的长度+字段列表=更少的错误。

读者可以查看TOON规范文档在线游乐场,并运行自己的效率和准确性基准测试。在延迟关键应用中,开发人员应该比较两种格式的首次令牌获取时间和每秒令牌数。

TypeScript/JavaScript参考实现已经在github.com/toon-format/toon存储库中维护。其中包括一个完整的编码器和解码器,用于将JSON转换为TOON的CLI工具,以及性能基准测试。TOON 1.0两周前在MIT许可下发布。

声明:本文为InfoQ翻译,未经许可禁止转载。

原文链接:https://www.infoq.com/news/2025/11/toon-reduce-llm-cost-tokens/