Skip to content

性能基准

本页的基准测试从两个关键维度衡量 TOON 的表现:

  • 检索准确率:LLM 理解并从不同输入格式中提取信息的能力如何。
  • Token 效率:每种格式表示相同数据所需的 token 数量。

为了保证公平比较,基准测试被划分为两个赛道:

  • 混合结构赛道:具有嵌套或半一致结构的数据集(TOON 对比 JSON、YAML、XML)。CSV 被排除在外,因为它无法正确表示这些结构。
  • 纯扁平结构赛道:具有扁平表格结构、适合 CSV 使用的数据集(CSV 对比 TOON、JSON、YAML、XML)。

检索准确率

基准测试使用 4 个模型上的 209 个数据检索问题,测试 LLM 在不同输入格式下的理解能力。

查看数据集目录

数据集目录

数据集行数结构CSV 支持适用率
一致的员工记录100一致100%
带嵌套结构的电商订单50嵌套33%
时间序列分析数据60一致100%
GitHub 前 100 仓库100一致100%
半一致的事件日志75半一致50%
深度嵌套配置11深度嵌套0%
有效的完整数据集(对照组)20一致100%
数组被截断:末尾移除 3 行17一致100%
超出声明长度的多余行23一致100%
字段数量不一致(第 10 行缺少 salary)20一致100%
缺少必需字段(多行缺少 email)20一致100%

结构类别:

  • 一致(uniform):所有对象具有完全相同的字段,且都是基本类型值
  • 半一致(semi-uniform):一致结构与非一致结构的混合
  • 嵌套(nested):带有嵌套结构(嵌套对象或数组)的对象
  • 深度嵌套(deep):高度嵌套,表格化适用率极低

CSV 支持: ✓(支持),✗(不支持——需要有损的扁平化处理)

适用率: 符合 TOON 表格化格式条件(基本类型值的一致对象)的数组所占百分比

效率排名(每 1K Token 的准确率)

按效率(每 1,000 个 token 对应的准确率百分比)对各格式进行排名:

TOON           ████████████████████   27.7 acc%/1K tok  │  76.4% acc  │  2,759 tokens
JSON compact   █████████████████░░░   23.7 acc%/1K tok  │  73.7% acc  │  3,104 tokens
YAML           ██████████████░░░░░░   19.9 acc%/1K tok  │  74.5% acc  │  3,749 tokens
JSON           ████████████░░░░░░░░   16.4 acc%/1K tok  │  75.0% acc  │  4,587 tokens
XML            ██████████░░░░░░░░░░   13.8 acc%/1K tok  │  72.1% acc  │  5,221 tokens

效率分数 = (准确率 % ÷ Token 数) × 1,000。数值越高越好。

TIP

TOON 达到了 76.4% 的准确率(JSON 为 75.0%),同时所用 token 减少了 39.9%

关于 CSV 的说明: 由于它仅支持 209 个问题中的 109 个(仅限扁平表格数据),因此未列入排名。虽然 CSV 对于简单表格数据而言 token 效率极高,但它无法表示其他格式所能处理的嵌套结构。

各模型准确率

4 个 LLM 在 209 个数据检索问题上的准确率:

claude-haiku-4-5-20251001
→ TOON           ████████████░░░░░░░░    59.8% (125/209)
  JSON           ███████████░░░░░░░░░    57.4% (120/209)
  YAML           ███████████░░░░░░░░░    56.0% (117/209)
  XML            ███████████░░░░░░░░░    55.5% (116/209)
  JSON compact   ███████████░░░░░░░░░    55.0% (115/209)
  CSV            ██████████░░░░░░░░░░    50.5% (55/109)

gemini-3-flash-preview
  XML            ████████████████████    98.1% (205/209)
  JSON           ███████████████████░    97.1% (203/209)
  YAML           ███████████████████░    97.1% (203/209)
→ TOON           ███████████████████░    96.7% (202/209)
  JSON compact   ███████████████████░    96.7% (202/209)
  CSV            ███████████████████░    96.3% (105/109)

gpt-5-nano
→ TOON           ██████████████████░░    90.9% (190/209)
  JSON compact   ██████████████████░░    90.9% (190/209)
  JSON           ██████████████████░░    89.0% (186/209)
  CSV            ██████████████████░░    89.0% (97/109)
  YAML           █████████████████░░░    87.1% (182/209)
  XML            ████████████████░░░░    80.9% (169/209)

grok-4-1-fast-non-reasoning
→ TOON           ████████████░░░░░░░░    58.4% (122/209)
  YAML           ████████████░░░░░░░░    57.9% (121/209)
  JSON           ███████████░░░░░░░░░    56.5% (118/209)
  XML            ███████████░░░░░░░░░    54.1% (113/209)
  JSON compact   ██████████░░░░░░░░░░    52.2% (109/209)
  CSV            ██████████░░░░░░░░░░    51.4% (56/109)

TIP

在这些数据集上,TOON 达到了 76.4% 的准确率(JSON 为 75.0%),同时所用 token 减少了 39.9%

按数据集、模型和问题类型划分的表现

按问题类型划分的表现

问题类型TOONJSONYAMLJSON compactXMLCSV
字段检索99.6%99.3%98.5%98.5%98.9%100.0%
聚合运算61.9%61.9%59.9%58.3%54.4%50.9%
筛选过滤56.8%53.1%56.3%55.2%51.6%50.9%
结构感知89.0%87.0%84.0%84.0%81.0%85.9%
结构校验70.0%60.0%60.0%55.0%85.0%80.0%

按数据集划分的表现

一致的员工记录
格式准确率Token 数正确数/总数
csv73.2%2,334120/164
toon73.2%2,498120/164
json-compact73.8%3,924121/164
yaml73.8%4,959121/164
json-pretty73.8%6,331121/164
xml74.4%7,296122/164
带嵌套结构的电商订单
格式准确率Token 数正确数/总数
toon82.3%7,458135/164
json-compact78.7%7,110129/164
yaml79.9%8,755131/164
json-pretty79.3%11,234130/164
xml77.4%12,649127/164
时间序列分析数据
格式准确率Token 数正确数/总数
csv75.0%1,41190/120
toon78.3%1,55394/120
json-compact74.2%2,35489/120
yaml75.8%2,95491/120
json-pretty75.0%3,68190/120
xml72.5%4,38987/120
GitHub 前 100 仓库
格式准确率Token 数正确数/总数
csv65.9%8,52787/132
toon66.7%8,77988/132
yaml65.2%13,14186/132
json-compact59.8%11,46479/132
json-pretty63.6%15,15784/132
xml56.1%17,10574/132
半一致的事件日志
格式准确率Token 数正确数/总数
json-compact68.3%4,83982/120
toon65.0%5,81978/120
json-pretty69.2%6,81783/120
yaml61.7%5,84774/120
xml58.3%7,72970/120
深度嵌套配置
格式准确率Token 数正确数/总数
json-compact90.5%568105/116
toon94.8%655110/116
yaml93.1%675108/116
json-pretty92.2%924107/116
xml91.4%1,013106/116
有效的完整数据集(对照组)
格式准确率Token 数正确数/总数
toon100.0%5354/4
json-compact100.0%7874/4
yaml100.0%9924/4
json-pretty100.0%1,2744/4
xml25.0%1,4621/4
csv0.0%4830/4
数组被截断:末尾移除 3 行
格式准确率Token 数正确数/总数
csv100.0%4134/4
xml100.0%1,2434/4
toon0.0%4620/4
json-pretty0.0%1,0850/4
yaml0.0%8430/4
json-compact0.0%6700/4
超出声明长度的多余行
格式准确率Token 数正确数/总数
csv100.0%5504/4
toon75.0%6053/4
json-compact75.0%9013/4
xml100.0%1,6784/4
yaml75.0%1,1383/4
json-pretty50.0%1,4602/4
字段数量不一致(第 10 行缺少 salary)
格式准确率Token 数正确数/总数
csv100.0%4804/4
json-compact100.0%7824/4
yaml100.0%9854/4
toon100.0%1,0084/4
json-pretty100.0%1,2664/4
xml100.0%1,4534/4
缺少必需字段(多行缺少 email)
格式准确率Token 数正确数/总数
csv100.0%3404/4
xml100.0%1,4094/4
toon75.0%9743/4
json-pretty50.0%1,2252/4
yaml25.0%9511/4
json-compact0.0%7500/4

按模型划分的表现

claude-haiku-4-5-20251001
格式准确率正确数/总数
toon59.8%125/209
json-pretty57.4%120/209
yaml56.0%117/209
xml55.5%116/209
json-compact55.0%115/209
csv50.5%55/109
gemini-3-flash-preview
格式准确率正确数/总数
xml98.1%205/209
json-pretty97.1%203/209
yaml97.1%203/209
toon96.7%202/209
json-compact96.7%202/209
csv96.3%105/109
gpt-5-nano
格式准确率正确数/总数
toon90.9%190/209
json-compact90.9%190/209
json-pretty89.0%186/209
csv89.0%97/109
yaml87.1%182/209
xml80.9%169/209
grok-4-1-fast-non-reasoning
格式准确率正确数/总数
toon58.4%122/209
yaml57.9%121/209
json-pretty56.5%118/209
xml54.1%113/209
json-compact52.2%109/209
csv51.4%56/109

测试内容说明

本基准测试测的是 LLM 对不同输入格式的理解能力和数据检索准确率。每个 LLM 都会接收格式化的数据,并需要就其回答问题。这不是在测试模型生成 TOON 输出的能力——只测试其读取和理解 TOON 的能力。

测试的数据集

十一个数据集分别用于测试不同的结构模式和校验能力:

主要数据集:

  1. 表格型(100 条员工记录):字段完全一致的对象——最适合 TOON 的表格化格式。
  2. 嵌套型(50 个电商订单):包含嵌套客户对象和商品数组的复杂结构。
  3. 分析型(60 天的指标数据):带有日期和数值的时间序列数据。
  4. GitHub(100 个仓库):按星标数排名的 GitHub 热门仓库真实数据。
  5. 事件日志(75 条日志):半一致数据,约 50% 为扁平日志,约 50% 带有嵌套的错误对象。
  6. 嵌套配置(1 份配置):深度嵌套配置,表格化适用率极低。

结构校验数据集:

  1. 对照组:有效的完整数据集(用作校验的基线)
  2. 截断:末尾移除 3 行的数组(测试 [N] 长度检测能力)
  3. 多余行:超出声明长度、多出 3 行的数组
  4. 宽度不匹配:字段数量不一致(第 10 行缺少 salary)
  5. 缺失字段:系统性的字段缺失(多行缺少 email)

问题类型

209 个问题分为五大类动态生成:

  • 字段检索(33%):可直接查得的值,或可以直接从记录中读取的值(包括布尔值和简单计数,如数组长度)

    • 示例:"Alice 的薪资是多少?" → 75000
    • 示例:"订单 ORD-0042 中有多少件商品?" → 3
    • 示例:"订单 ORD-0042 的客户姓名是什么?" → John Doe
  • 聚合运算(30%):数据集层面的总计和平均值,以及单条件筛选(计数、求和、最小/最大值比较)

    • 示例:"有多少员工在 Engineering 部门工作?" → 17
    • 示例:"所有订单的总收入是多少?" → 45123.50
    • 示例:"有多少员工的薪资 > 80000?" → 23
  • 筛选过滤(23%):需要复合逻辑的多条件查询(跨字段的 AND 约束)

    • 示例:"Sales 部门中有多少员工的薪资 > 80000?" → 5
    • 示例:"有多少在职员工的工作年限超过 10 年?" → 8
  • 结构感知(12%):测试格式原生的结构性能力(TOON 的 [N] 计数和 {fields},CSV 的表头行)

    • 示例:"数据集中有多少员工?" → 100
    • 示例:"列出员工的字段名" → id, name, email, department, salary, yearsExperience, active
    • 示例:"最后一名员工所在部门是什么?" → Sales
  • 结构校验(2%):测试利用结构元数据检测不完整、被截断或损坏数据的能力

    • 示例:"这份数据是否完整有效?" → YES(对照数据集)或 NO(损坏数据集)
    • 测试 TOON 的 [N] 长度校验和 {fields} 一致性检查
    • 展示 CSV 缺乏结构校验能力的情况

评测流程

  1. 格式转换:每个数据集都会被转换为全部 6 种格式(TOON、JSON、YAML、JSON compact、XML、CSV)。
  2. 查询 LLM:每个模型在提示词中接收格式化数据和问题,并提取答案。
  3. 确定性校验:使用类型感知的比较方式对答案进行校验(例如 50000 = $50,000Engineering = engineering2025-01-01 = January 1, 2025),无需借助 LLM 评判者。

模型与配置

  • 测试模型:claude-haiku-4-5-20251001gemini-3-flash-previewgpt-5-nanogrok-4-1-fast-non-reasoning
  • Token 计数:使用 gpt-tokenizero200k_base 编码(GPT-5 分词器)
  • 温度参数:未设置(使用模型默认值)
  • 评测总数:209 个问题 × 6 种格式 × 4 个模型 = 5,016 次 LLM 调用

Token 效率

Token 数量使用 GPT-5 的 o200k_base 分词器,通过 gpt-tokenizer 进行测量。节省比例以格式化 JSON(2 空格缩进)为主要基线进行计算,并与压缩 JSON(minified)、YAML 和 XML 进行了额外对比。实际节省效果因模型和分词器而异。

基准测试涵盖了不同结构模式(一致、半一致、嵌套、深度嵌套)的数据集,以展示 TOON 的优势场景以及其他格式可能更适用的场景。

混合结构赛道

具有嵌套或半一致结构的数据集。CSV 被排除在外,因为它无法正确表示这些结构。

🛒 带嵌套结构的电商订单  ┊  表格化适用率:33%

   TOON                █████████████░░░░░░░    73,126 tokens
   ├─ vs JSON          (−33.3%)               109,599 tokens
   ├─ vs JSON compact  (+5.3%)                 69,459 tokens
   ├─ vs YAML          (−14.4%)                85,415 tokens
   └─ vs XML           (−40.7%)               123,344 tokens

🧾 半一致的事件日志  ┊  表格化适用率:50%

   TOON                █████████████████░░░   154,084 tokens
   ├─ vs JSON          (−15.0%)               181,201 tokens
   ├─ vs JSON compact  (+19.9%)               128,529 tokens
   ├─ vs YAML          (−0.8%)                155,397 tokens
   └─ vs XML           (−25.2%)               205,859 tokens

🧩 深度嵌套配置  ┊  表格化适用率:0%

   TOON                ██████████████░░░░░░       620 tokens
   ├─ vs JSON          (−31.9%)                   911 tokens
   ├─ vs JSON compact  (+11.1%)                   558 tokens
   ├─ vs YAML          (−6.3%)                    662 tokens
   └─ vs XML           (−38.2%)                 1,003 tokens

──────────────────────────────────── 总计 ────────────────────────────────────
   TOON                ████████████████░░░░   227,830 tokens
   ├─ vs JSON          (−21.9%)               291,711 tokens
   ├─ vs JSON compact  (+14.7%)               198,546 tokens
   ├─ vs YAML          (−5.7%)                241,474 tokens
   └─ vs XML           (−31.0%)               330,206 tokens

纯扁平结构赛道

具有扁平表格结构、适合使用 CSV 的数据集。

👥 一致的员工记录  ┊  表格化适用率:100%

   CSV                 ███████████████████░    47,102 tokens
   TOON                ████████████████████    49,919 tokens   (+6.0% vs CSV)
   ├─ vs JSON          (−60.7%)               127,063 tokens
   ├─ vs JSON compact  (−36.9%)                79,059 tokens
   ├─ vs YAML          (−50.1%)                100,011 tokens
   └─ vs XML           (−65.9%)               146,579 tokens

📈 时间序列分析数据  ┊  表格化适用率:100%

   CSV                 ██████████████████░░     8,383 tokens
   TOON                ████████████████████     9,115 tokens   (+8.7% vs CSV)
   ├─ vs JSON          (−59.0%)                22,245 tokens
   ├─ vs JSON compact  (−35.9%)                14,211 tokens
   ├─ vs YAML          (−49.0%)                17,858 tokens
   └─ vs XML           (−65.8%)                26,616 tokens

⭐ GitHub 前 100 仓库  ┊  表格化适用率:100%

   CSV                 ███████████████████░     8,512 tokens
   TOON                ████████████████████     8,744 tokens   (+2.7% vs CSV)
   ├─ vs JSON          (−42.3%)                15,144 tokens
   ├─ vs JSON compact  (−23.7%)                11,454 tokens
   ├─ vs YAML          (−33.4%)                13,128 tokens
   └─ vs XML           (−48.9%)                17,095 tokens

──────────────────────────────────── 总计 ────────────────────────────────────
   CSV                 ███████████████████░    63,997 tokens
   TOON                ████████████████████    67,778 tokens   (+5.9% vs CSV)
   ├─ vs JSON          (−58.8%)               164,452 tokens
   ├─ vs JSON compact  (−35.3%)                104,724 tokens
   ├─ vs YAML          (−48.3%)                130,997 tokens
   └─ vs XML           (−64.4%)                190,290 tokens
查看详细示例

📈 时间序列分析数据

节省: 13,130 个 token(相较 JSON 减少 59.0%)

JSON(22,245 个 token):

json
{
  "metrics": [
    {
      "date": "2025-01-01",
      "views": 6138,
      "clicks": 174,
      "conversions": 12,
      "revenue": 2712.49,
      "bounceRate": 0.35
    },
    {
      "date": "2025-01-02",
      "views": 4616,
      "clicks": 274,
      "conversions": 34,
      "revenue": 9156.29,
      "bounceRate": 0.56
    },
    {
      "date": "2025-01-03",
      "views": 4460,
      "clicks": 143,
      "conversions": 8,
      "revenue": 1317.98,
      "bounceRate": 0.59
    },
    {
      "date": "2025-01-04",
      "views": 4740,
      "clicks": 125,
      "conversions": 13,
      "revenue": 2934.77,
      "bounceRate": 0.37
    },
    {
      "date": "2025-01-05",
      "views": 6428,
      "clicks": 369,
      "conversions": 19,
      "revenue": 1317.24,
      "bounceRate": 0.3
    }
  ]
}

TOON(9,115 个 token):

metrics[5]{date,views,clicks,conversions,revenue,bounceRate}:
  2025-01-01,6138,174,12,2712.49,0.35
  2025-01-02,4616,274,34,9156.29,0.56
  2025-01-03,4460,143,8,1317.98,0.59
  2025-01-04,4740,125,13,2934.77,0.37
  2025-01-05,6428,369,19,1317.24,0.3

⭐ GitHub 前 100 仓库

节省: 6,400 个 token(相较 JSON 减少 42.3%)

JSON(15,144 个 token):

json
{
  "repositories": [
    {
      "id": 28457823,
      "name": "freeCodeCamp",
      "repo": "freeCodeCamp/freeCodeCamp",
      "description": "freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming,…",
      "createdAt": "2014-12-24T17:49:19Z",
      "updatedAt": "2025-10-28T11:58:08Z",
      "pushedAt": "2025-10-28T10:17:16Z",
      "stars": 430886,
      "watchers": 8583,
      "forks": 42146,
      "defaultBranch": "main"
    },
    {
      "id": 132750724,
      "name": "build-your-own-x",
      "repo": "codecrafters-io/build-your-own-x",
      "description": "Master programming by recreating your favorite technologies from scratch.",
      "createdAt": "2018-05-09T12:03:18Z",
      "updatedAt": "2025-10-28T12:37:11Z",
      "pushedAt": "2025-10-10T18:45:01Z",
      "stars": 430877,
      "watchers": 6332,
      "forks": 40453,
      "defaultBranch": "master"
    },
    {
      "id": 21737465,
      "name": "awesome",
      "repo": "sindresorhus/awesome",
      "description": "😎 Awesome lists about all kinds of interesting topics",
      "createdAt": "2014-07-11T13:42:37Z",
      "updatedAt": "2025-10-28T12:40:21Z",
      "pushedAt": "2025-10-27T17:57:31Z",
      "stars": 410052,
      "watchers": 8017,
      "forks": 32029,
      "defaultBranch": "main"
    }
  ]
}

TOON(8,744 个 token):

repositories[3]{id,name,repo,description,createdAt,updatedAt,pushedAt,stars,watchers,forks,defaultBranch}:
  28457823,freeCodeCamp,freeCodeCamp/freeCodeCamp,"freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming,…","2014-12-24T17:49:19Z","2025-10-28T11:58:08Z","2025-10-28T10:17:16Z",430886,8583,42146,main
  132750724,build-your-own-x,codecrafters-io/build-your-own-x,Master programming by recreating your favorite technologies from scratch.,"2018-05-09T12:37:11Z","2025-10-28T12:37:11Z","2025-10-10T18:45:01Z",430877,6332,40453,master
  21737465,awesome,sindresorhus/awesome,😎 Awesome lists about all kinds of interesting topics,"2014-07-11T13:42:37Z","2025-10-28T12:40:21Z","2025-10-27T17:57:31Z",410052,8017,32029,main

相关资源