Skip to content

引言

2023 年夏天,一家 AI 创业公司的 CTO 打开账单页面,看到的数字让他心跳加速:第一个月花了 $5,200。他们只是一个三人的小团队,做了一个 AI 写作助手,用户不到 500 人。

问题出在哪里?不是 bug,不是滥用——而是他们根本不理解 token

大模型 API 的计价单位不是「次调用」、不是「字符数」、不是「字数」——而是 token。不理解 token,就像去日本旅游不知道日元和人民币的汇率一样,你根本不知道自己花了多少钱。

理解 token,是理解大模型 API 经济学的第一步。


什么是 Token?

最简单的解释

Token 是大模型处理文本的最小单位。你可以把它理解为「介于字符和单词之间的东西」。

英文的 token 化(大致规则):

  "Hello world"
  → ["Hello", " world"]           ← 2 个 token

  "I love artificial intelligence"
  → ["I", " love", " artificial", " intelligence"]  ← 4 个 token

  常见英文单词 = 1 token
  不常见单词可能被拆成多个 token

中文的 token 化:

  "你好世界"
  → ["你好", "世界"]              ← 2 个 token(运气好的时候)

  "人工智能改变世界"
  → ["人工", "智能", "改变", "世界"]  ← 4 个 token

  或者更碎片化:
  → ["人", "工", "智能", "改变", "世界"]  ← 5 个 token

经验法则

估算公式(大致准确):

  英文:1 token ≈ 4 个字符 ≈ 0.75 个单词
  中文:1 token ≈ 1-2 个汉字

  所以:
  1000 个英文字 ≈ 1,300 tokens
  1000 个中文字 ≈ 1,500-2,000 tokens

  中文比英文贵约 50%-100%!

为什么中文更贵?

这不是歧视——而是 BPE(Byte Pair Encoding)分词算法的训练数据以英文为主。

BPE 分词原理(简化版):

  第 1 步:从字符级别开始
    "lower" → ['l', 'o', 'w', 'e', 'r']

  第 2 步:合并最频繁的字符对
    'l' + 'o' 出现最多 → 'lo'
    ['lo', 'w', 'e', 'r']

  第 3 步:继续合并
    'lo' + 'w' → 'low'
    ['low', 'e', 'r']

  第 4 步:继续
    'e' + 'r' → 'er'
    ['low', 'er']

  结果:"lower" = 2 tokens

关键:BPE 的词表是从训练语料中学习的。
     训练语料以英文为主 → 英文分词效率更高 → token 更少。
     中文在词表中占比小 → 分词更碎片 → token 更多。

Token 计数实战

用 tiktoken 计算 token 数

python
# pip install tiktoken
import tiktoken

# 选择编码器(不同模型用不同编码)
encoding = tiktoken.encoding_for_model("gpt-4")

# 计算 token 数
text = "你好,世界!Hello, World!"
tokens = encoding.encode(text)
print(f"文本: {text}")
print(f"Token 数: {len(tokens)}")
print(f"Tokens: {tokens}")

# 解码单个 token(看看模型怎么切分的)
for token_id in tokens:
    print(f"  {token_id}{encoding.decode([token_id])}")

输出示例

文本: 你好,世界!Hello, World!
Token 数: 9

Tokens: [57668, 10844, 11562, 244, 11410, 9454, 33093, 5700, 0]

  你 → 你
  好 → 好
  , → ,
  世界 → 世界
  ! → !
  Hello → Hello
  , → ,
   World →  World
  ! → !

各家模型的分词差异

模型编码方式"你好世界" 的 token 数
GPT-4/GPT-4ocl100k_base / o200k_base2-4
Claude自有分词器2-3
DeepSeek自有分词器2-4

不同模型的分词器不同,同样的文本在不同模型中消耗的 token 数可能不一样

定价:每 1000 个 token 多少钱?

2025 年主流模型定价对比

模型输入价格输出价格备注
GPT-4o$2.50/1M$10.00/1M性价比旗舰
GPT-4o mini$0.15/1M$0.60/1M超低成本
Claude 4 Sonnet$3.00/1M$15.00/1M长上下文强
Gemini 2.5 Pro$1.25/1M$10.00/1M≤200K prompt 此价
DeepSeek-V3$0.14/1M$0.28/1M开源最低价

价格经常变动,以官方页面为准。单位:美元/百万 token

成本计算器

python
def calculate_cost(
    input_tokens: int,
    output_tokens: int,
    model: str = "gpt-4o"
) -> float:
    prices = {
        "gpt-4o":          (2.50, 10.00),
        "gpt-4o-mini":     (0.15,  0.60),
        "claude-sonnet":    (3.00, 15.00),
        "deepseek-v3":     (0.14,  0.28),
    }

    input_price, output_price = prices[model]

    cost = (
        input_tokens * input_price / 1_000_000 +
        output_tokens * output_price / 1_000_000
    )
    return cost

# 示例:每天 1000 次调用
daily_calls = 1000
avg_input = 500    # 平均每次输入 500 token
avg_output = 300   # 平均每次输出 300 token

for model in ["gpt-4o", "gpt-4o-mini", "deepseek-v3"]:
    daily_cost = calculate_cost(
        daily_calls * avg_input,
        daily_calls * avg_output,
        model
    )
    monthly_cost = daily_cost * 30
    print(f"{model:20s} 日费: ${daily_cost:.2f}  月费: ${monthly_cost:.2f}")

# 输出:
# gpt-4o               日费: $4.25  月费: $127.50
# gpt-4o-mini          日费: $0.26  月费: $7.65
# deepseek-v3          日费: $0.12  月费: $3.78

那家创业公司后来怎样了?

回到开头的故事。CTO 审计了他们的 API 调用后发现:

问题诊断:
  1. 每次调用都在 messages 里塞了 3000 token 的 system prompt
     → 每次调用的输入成本是预期的 6 倍
  2. 没有限制 max_tokens,模型有时输出 2000+ token
     → 输出成本不可控
  3. 用 GPT-4 做简单任务(关键词提取)
     → 应该用更便宜的模型

优化后:
  ├── 精简 system prompt 到 500 token
  ├── 限制 max_tokens=500
  ├── 简单任务切换到 GPT-4o mini
  └── 月费从 $5,200 降到 $380

这就是理解 token 经济学的价值——同样的产品,成本降了 93%。


本节小结

概念要点
Token 定义大模型处理文本的最小单位,介于字符和单词之间
中文成本中文 token 效率比英文低 50%-100%,因为 BPE 词表以英文为主
tiktokenOpenAI 的官方分词工具,可以精确计算 token 数
定价模型输入和输出价格不同(输出通常贵 4 倍)
成本优化精简 prompt、限制 max_tokens、选择合适的模型

思考题

  1. 如果你的应用需要处理 10 万字的中文文档,用 GPT-4o 和 DeepSeek-V3 分别要花多少钱?
  2. 为什么模型的输出价格通常比输入价格贵?想想模型在生成输出时和读取输入时做了什么不同的工作。
  3. 如果你可以改进分词器让中文 token 效率翻倍,这会对整个 AI 产业产生什么影响?