返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

ISON:比JSON节省70% token的数据格式,专为LLM设计

[复制链接]
链载Ai 显示全部楼层 发表于 5 小时前 |阅读模式 打印 上一主题 下一主题

在AI应用开发中,JSON格式的数据传输消耗了大量token。开发者Mahesh Vaikri提出了一种名为ISON(Interchange Simple Object Notation)的新格式,能在保持数据完整性的同时显著减少token使用。

JSON的token浪费问题

传统JSON格式充斥着大量括号、引号和冒号。以一个典型的用户数据为例:

{
"users": [
{"id": 1, "name": "Alice", "email": "alice@example.com", "active": true},
{"id": 2, "name": "Bob", "email": "bob@example.com", "active": false},
{"id": 3, "name": "Charlie", "email": "charlie@example.com", "active": true}
]
}

这个结构需要87个token,其中大部分被语法符号占用。

ISON的简洁设计

同样的数据用ISON表示:

table.users
id:int name:string email active:bool
1 Alice alice@example.com true
2 Bob bob@example.com false
3 Charlie charlie@example.com true

仅需34个token,减少了61%。ISON采用表格状结构,基于LLM训练时已熟悉的TSV模式。

核心特性详解

数据块类型:

  • table.name - 多行数据表
  • object.name - 单行键值配置

引用系统:

  • :1 - 引用id=1的行
  • :user:42 - 命名空间引用
  • :RELATIONSHIP:id - 关系引用

类型注解:

  • 支持:int:string:bool:float
  • field:computed - 计算字段
  • 空值用~null表示

权威性能测试

项目进行了300道题目的大规模基准测试,覆盖20个数据集,使用GPT-4o标准分词器:

格式Token数相比JSON准确率每千Token准确率
ISON3,550-72.0%88.3%24.88
TOON4,847-61.7%88.7%18.29
JSON压缩7,339-42.1%89.0%12.13
JSON12,668基准线84.7%6.68

ISON在所有20项token效率测试中获胜,比JSON高出272%的token效率。

完整生态系统

ISON已构建跨5种编程语言的11个包,通过303+项测试:

安装使用:

# JavaScript/TypeScript
npm install ison-parser ison-ts isonantic-ts

# Python
pip install ison-py isonantic

# Rust
cargo add ison-rs isonantic-rs

# Go
go get github.com/maheshvaikri-code/ison/ison-go

代码示例(Python):

from ison_py import parse, to_json

doc = parse("""
table.users
id:int name:string active:bool
1 Alice true
2 Bob false
""")

# 访问数据
for row in doc['users']['rows']:
print(f"{row['id']}: {row['name']}")

# 转换为JSON
print(to_json(doc))

ISONL流式格式

对于大数据集,ISON提供基于行的ISONL格式:

table.users|id name email|1 Alice alice@example.com
table.users|id name email|2 Bob bob@example.com

每行自包含,适合流式处理和大数据场景。

类型安全验证

ISONantic提供类似Pydantic的验证功能:

import { table, string, int, boolean } from 'isonantic-ts';

const userSchema = table('users')
.field('id', int().required())
.field('name', string().min(1).max(100))
.field('email', string().email())
.field('active', boolean().default(true));

const users = userSchema.validate(doc);

小结

对于需要频繁与LLM交换数据的应用,ISON提供了一个更高效的替代方案。特别是在RAG、智能体等场景下,每个token都值得精打细算。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ