TOON vs. JSON
TOON 显著减少了令牌成本,这对于必须将大量结构化数据输入模型时非常重要。
在深入探讨 TOON 或 JSON 之前,让我们先了解为什么这些格式对 LLM 重要。
LLM 的能力已经从简单的文本生成发展到完整的工具使用,这使得代理行为成为可能。设想一个场景,其中有一个知识库,LLM 可以调用工具来访问数据库。我们提供输入,模型提取参数,将其发送到工具,然后工具返回过滤后的数据。数据库通常以 JSON 格式返回此数据,然后将其传回 LLM,以便它能够对此进行推理并回答用户的问题。 在这一点上一切都能顺利运行。
1、为什么需要TOON?
那么,当 JSON 已经存在时,为什么 TOON 被广泛讨论?原因很重要。这都归结于 令牌使用量。TOON 显著减少了令牌成本,这对于必须将大量结构化数据输入模型时非常重要。
TOON = Token Oriented Object Notion
是的,当我们给 LLM 大量信息时,它会消耗很多令牌。令牌代表了多少文字被输入到模型中 (这只是为了理解)。如果我们给 LLM 一段长段落,它自然会使用更多的令牌。如果我们对这段段落进行总结,它使用的令牌更少,同时仍然保留核心信息。这是一个高效语言处理的简单例子。现在把这个想法扩展到实际的生产系统中。
考虑以下关于人工智能的段落,它直接取自 Wikipedia。现在让我们看看通过 OpenAI 分词器 对 GPT 4o 模型进行处理时,它消耗了多少个令牌。
实际段落:
人工智能(AI)是指计算系统执行通常与人类智能相关的任务的能力,例如学习、推理、解决问题、感知和决策。它是计算机科学的一个研究领域,开发和研究方法和软件,使机器能够感知其环境,并利用学习和智能采取行动,以最大化实现定义目标的机会。[1] AI 的高知名度应用包括高级网络搜索引擎(如 Google Search);推荐系统(由 YouTube、Amazon 和 Netflix 使用);虚拟助手(如 Google Assistant、Siri 和 Alexa);自动驾驶汽车(如 Waymo);生成和创意工具(如语言模型和 AI 艺术);以及在策略游戏(如国际象棋和围棋)中表现出超人类水平的玩法和分析。然而,许多 AI 应用并不被视为 AI:“很多尖端 AI 已渗透到通用应用中,通常不被称为 AI,因为一旦某物足够有用且足够常见,它就不会再被标记为 AI。”[2][3] AI 研究的各个子领域围绕特定目标和使用特定工具展开。AI 研究的传统目标包括学习、推理、知识表示、规划、自然语言处理、感知和支持机器人技术。[a] 为了达到这些目标,AI 研究人员已适应并整合了各种技术,包括搜索和数学优化、形式逻辑、人工神经网络,以及基于统计、运筹学和经济学的方法。[b] AI 还借鉴了心理学、语言学、哲学、神经科学和其他领域。[4] 一些公司,如 OpenAI、Google DeepMind 和 Meta,[5] 目标是创建人工通用智能(AGI)——一种可以在几乎所有认知任务上至少与人类一样出色的 AI。人工智能作为一门学术学科成立于 1956 年,[6] 该领域在其历史上经历了多次乐观周期,[7][8] 随后是失望和资金流失的时期,称为“AI 冬季”。[9][10] 自 2012 年图形处理单元开始用于加速神经网络,深度学习超越了之前的 AI 技术后,资金和兴趣大幅增加。[11] 2017 年变压器架构出现后,这种增长进一步加快。[12] 在 2020 年代,先进生成 AI 的持续快速发展被称为 AI 爆炸。生成 AI 创造和修改内容的能力导致了一些意想不到的后果和危害,引发了关于 AI 长期影响和潜在生存风险的伦理担忧,促使人们讨论监管政策以确保技术的安全和益处。


总结后的段落:
人工智能是计算机系统执行通常需要人类智能的任务的能力,例如学习、推理和决策。它涵盖了多个领域,包括搜索引擎、推荐系统、虚拟助手、自动驾驶汽车、生成模型和先进的游戏系统。许多日常技术默默地依赖 AI,但并未被标记为 AI。AI 研究的重点包括学习、规划、语言处理、感知和机器人技术,使用诸如优化、逻辑、神经网络和统计方法等工具。它还借鉴了心理学、语言学、神经科学和其他学科。像 OpenAI 和 Google DeepMind 这样的公司旨在构建可以完成几乎任何认知任务的人工通用智能(AGI)。该领域始于 1956 年,并在其历史上经历了多轮的兴奋和挫折。现代 AI 在 2012 年 GPU 加速的深度学习出现后迅速崛起,并在 2017 年变压器架构出现后进一步加速。在 2020 年代,生成 AI 的快速进步带来了 AI 爆炸,同时也带来了新的伦理和安全问题,引发了关于监管和长期风险的讨论。

这种令牌减少 在生产环境中真的很重要,在处理数百万请求时。
- 在传统的 NLP 任务中,摘要 只是压缩文本 用于分析和处理。
- 在现代 LLM 系统中,摘要直接影响财务和性能。使用较少的令牌可以降低每次请求的成本,提高延迟 并 允许系统在一个提示中包含更多数据。
从上述理解来看,同样的策略也适用于 JSON 结构。JSON 通常比人们预期的消耗更多令牌。 许多人认为 JSON 应该使用更少的令牌,因为它包含的内容更少,但这不是分词的工作方式。对于 LLM 来说,输入中的每个字符都会计入令牌,从第一个字符到最后一个字符。甚至空格也会增加令牌使用量。
现在想想 JSON。它包含 大量的结构字符,如大括号、方括号、逗号、冒号和引号。 所有这些都会增加令牌数量。当大型数据集以 JSON 格式传递给 LLM 时,标点符号和格式开销会显著增加令牌消耗。
2、JSON

为了解决这个问题,引入了 TOON 作为一种更节省令牌的表示方式。它减少了不必要的符号和空格,使相同的数据可以用更少的令牌表示,同时保持完整的含义。
3、TOON
import { encode } from '@toon-format/toon'
const data = {
users: [
{ id: 1, name: 'Alice', role: 'admin' },
{ id: 2, name: 'Bob', role: 'user' }
]
}
console.log(encode(data))

我们可以清楚地看到,在前面的例子中,原始段落消耗了 535 个令牌,而总结后的版本只消耗了 215 个令牌。对于数据格式,JSON 表示使用了 51 个令牌,而 TOON 版本仅需 24 个令牌。这表明当结构优化时,令牌消耗可以显著下降。
LLM 的成本节省非常多!!!(对于小到中型 JSON 片段肯定如此)
LLM 之所以仍能理解带有最少特殊字符的文本,是因为它在训练过程中学习了这些模式。只要我们给模型足够的最小结构,它就能推断关系和意义。这就是为什么 TOON 可以使用更少的符号但仍能被模型读取的原因。
因此,在生产中,避免直接将巨大的 JSON 输入 LLM, 使用 Toon 或任何自定义数据压缩器,这是 最佳实践。始终修剪数据并只传递相关内容,而不是整个原始数据。当有高度复杂和庞大的数据时,JSON 仍然是推荐的,因为结构的保存对于准确处理变得尤为重要。
汇智网翻译整理,转载请标明出处