在建立基於 AI 和 LLM 的應用程式時,最大的隱性成本之一往往來自一些簡單的事情——資料格式。
當您將 JSON 傳送到大型語言模型 (LLM) 時,JSON 中的每個{} 、 []和"都算是一個標記。
如果負載很大或資料結構複雜,這會迅速消耗代幣(和資金)。 ⚡️
這時, TOON(以標記為導向的物件表示法)就派上了用場——這是一種專為LLM設計的格式,旨在使結構化資料緊湊、易讀且具有標記效率。
TOON代表以標記為導向的物件表示法-一種針對 LLM 最佳化的現代輕量級資料格式。
你可以這樣理解:
“重新構想的JSON,旨在提高令牌效率和增強人類可讀性。”
它去掉了多餘的部分——沒有花括號、方括號或引號——而是使用縮排和表格模式。
最終得到的格式模型(和人類)可以輕鬆解析,同時使用的標記數量也少得多。
當您向 LLM 發送 JSON 時:
每個標點符號都會增加詞符計數。
長陣列中重複的按鍵會增加計算成本。
冗長的描述其實無助於建立理解模型。
TOON 透過以下方式解決這個問題:
每個類別表塊聲明一次鍵
用縮排代替逗號/大括號
保持資料清晰度,同時減少語法噪音
💰結果:平均減少 30-60% 的代幣。
{
"users": [
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" }
]
}
users[2]{id,name}:
1,Alice
2,Bob
結構相同。
意思相同。
大約一半的代幣。
使用官方的TOON軟體包親自嘗試。
npm install @toon-format/toon
# or
pnpm add @toon-format/toon
import { encode, decode } from "@toon-format/toon";
const data = {
users: [
{ id: 1, name: "Alice", role: "admin" },
{ id: 2, name: "Bob", role: "user" },
],
};
const toon = encode(data);
console.log("TOON Format:\n", toon);
// Decode back to JSON if needed
const parsed = decode(toon);
console.log("Decoded JSON:\n", parsed);
users[2]{id,name,role}:
1,Alice,admin
2,Bob,user
| 功能 | JSON | TOON |
|---------|------|------|
|用途| 一般資料格式(API、設定、儲存) | 適用於生命週期管理的高效率令牌化格式 |
|語法| 詳細{} , [] , " | 緊湊縮進,表格樣式 |
|可讀性| 中 | 高(對人和模型都很友善) |
|代幣使用率| 高 | 🔥 最多可減少 60% |
|最佳應用案例| API、持久化 | LLM 提示、結構化輸出 |
|嵌套物件| 優 | ⚠️ 對於深度嵌套效率低 |
|生態系| 成熟、普遍 | 新興、快速成長 |
TOON 非常適合處理扁平的表格型 JSON 物件,但對於深度嵌套的結構來說並不理想。
在這種情況下,額外的縮排和上下文實際上會增加詞元數。
{
"company": {
"departments": [
{
"name": "Engineering",
"employees": [{ "id": 1, "name": "Alice" }]
}
]
}
}
➡ 將其轉換為 TOON 格式可能會更耗時,而不是更短。
扁平列表(使用者、產品、訊息)
提示模板
模型訓練或評估資料集
深層嵌套層級
複雜關係資料
| 資料集 | JSON 令牌 | TOON 令牌 | 節省 |
|---------|-------------|-------------|---------|
| 使用者清單 | 150 | 82 | -45% |
| 產品目錄 | 320 | 180 | -44% |
| 嵌套資料 | 410 | 435 | ❌ +6% |
TOON(以標記為導向的物件表示法)是 JSON 的一種輕量級、高效的標記替代方案,專為 AI 和 LLM 工作負載而建置。
✅ 更簡潔的語法
✅ 人類可讀
✅ 代幣數量最多減少 60%
但請記住——它最適用於扁平的 JSON 物件,不適用於深度嵌套的結構。
如果您正在建立 LLM 管道、提示範本或結構化 AI 資料集,TOON 可以節省代幣、降低成本並保持資料清潔。
這是一個簡單的 Node.js 腳本,您可以使用它透過 OpenAI 的tiktoken分詞器來比較 JSON 和 TOON 之間的令牌使用情況。
npm install @toon-format/toon tiktoken
import { encode } from "@toon-format/toon";
import { encoding_for_model } from "tiktoken";
const data = {
users: [
{ id: 1, name: "Alice", role: "admin" },
{ id: 2, name: "Bob", role: "user" },
{ id: 3, name: "Charlie", role: "editor" },
],
};
const jsonData = JSON.stringify(data, null, 2);
const toonData = encode(data);
// Use GPT-4 tokenizer (you can change to "gpt-3.5-turbo" etc.)
const tokenizer = encoding_for_model("gpt-4o-mini");
const jsonTokens = tokenizer.encode(jsonData).length;
const toonTokens = tokenizer.encode(toonData).length;
console.log("📊 Token Comparison");
console.log("-------------------");
console.log("JSON tokens:", jsonTokens);
console.log("TOON tokens:", toonTokens);
console.log("Savings:", (((jsonTokens - toonTokens) / jsonTokens) * 100).toFixed(2) + "%");
tokenizer.free();
📊 Token Comparison
-------------------
JSON tokens: 84
TOON tokens: 32
Savings: 61.90%
您可以根據自己的資料集進行調整——對於扁平的表格資料,您會發現可以持續節省 30% 到 60% 的代幣。
LLM 的生態系統正在快速發展,即使是像從 JSON 切換到 TOON 這樣的小優化,也能大規模地帶來巨大的成本和效能改進。
試試看,測試一下,看看你能省下多少代幣(和美元)! 🚀
標籤:#人工智慧 #LLM #提示工程 #JSON #TOON #人工智慧最佳化 #OpenAI #資料壓縮 #開發者工具