🏠 首页 攻略 Token是什么?AI对话的"最小计费单位"

Token是什么?AI对话的"最小计费单位"

一篇搞懂Token的含义、计算方式、与字数的区别,以及为什么它直接影响你的AI使用成本。

Token是什么?

Token(中文常叫"词元"或"标记")是大语言模型处理文本的基本单位。

你可以把它理解成AI阅读的"最小碎片"。你发给ChatGPT的一段话,会被拆成一串Token,模型再逐个处理。

但Token不等于一个字,也不等于一个词。

Token和字数有什么区别?

这是最容易踩坑的地方。

英文中,1个Token大约对应4个字符,或3/4个单词。比如:

  • "hello" → 1个Token
  • "unhappiness" → 可能被拆成 "un" + "happi" + "ness",共3个Token

中文中,1个汉字通常约1-2个Token,具体取决于模型的分词方式。

来看几个直观对比:

内容大约Token数大约汉字/字数
“你好世界”4-84个汉字
“Hello, world!”3-413个字符
一段500字的中文文章700-1000500个汉字
1万英文单词约1300010000词

简单记:中文1字≈1-2 Token,英文1词≈0.75 Token。

Token怎么来的?

每个模型内部有一个"分词器"(Tokenizer),负责把文字切分成Token。

这个过程有点像拆积木:

  1. 先把文字转成字节
  2. 按常见组合优先切分(比如"the"作为一个整体)
  3. 不认识的片段拆成更小的单元

所以同一个句子,不同模型的Token数量可能不一样。GPT-4的分词器和Claude的不一样,数字就不一样。

Token和上下文窗口

每个模型都有一个上下文窗口,也就是单次对话最多能塞多少Token。

比如:

  • GPT-4o:128K Token
  • Claude 3.5 Sonnet:200K Token
  • 一些开源小模型:4K-8K Token

这意味着什么?

假设一个模型的上下文是8K Token,你发一段2000字的中文提问,可能就已经吃掉大半了。剩下的空间要给模型的回复。

对话越长,留给新问题的空间就越少。

Token和钱的关系

大部分AI服务按Token计费:

  • 输入Token:你发给模型的文本
  • 输出Token:模型回复的文本

两边都算钱。

举个例子,假设某模型定价为:

  • 输入:每百万Token ¥3
  • 输出:每百万Token ¥6

你问一个问题,输入用了500 Token,模型回复了1000 Token:

  • 输入费用:500 / 1,000,000 × 3 = ¥0.0015
  • 输出费用:1000 / 1,000,000 × 6 = ¥0.006
  • 合计:¥0.0075

看起来很少,但如果你每天大量使用,一个月下来也是一笔开支。

这也是为什么了解Token很重要——它直接决定了你的使用成本。

怎么估算自己用了多少Token?

有几个实用方法:

方法一:在线工具

很多网站提供Token计数器,粘贴文本就能看到数量。搜索"OpenAI tokenizer"就能找到。

方法二:API返回

调用API时,响应里通常会包含usage字段,告诉你这次请求用了多少输入和输出Token。

方法三:粗略估算

  • 中文:字数 × 1.5 ≈ Token数
  • 英文:单词数 × 1.3 ≈ Token数

这个估算法不够精确,但日常够用。

Token截断怎么办?

当文本超过上下文窗口时,会发生截断

不同产品处理方式不同:

  • 有些会直接报错:“超出长度限制”
  • 有些会自动丢弃最早的内容
  • 有些会提示你缩短输入

如果你遇到这个问题,可以:

  1. 精简提问,去掉冗余信息
  2. 分段发送,不要一次塞一大段
  3. 换用上下文窗口更大的模型
  4. 用摘要的方式保留关键信息

常见问题

Q:Token是固定不变的吗?

不是。同一个模型更新后,分词器可能改进,同样的文本Token数会变。

Q:标点符号算Token吗?

算。空格、标点、换行符都会占用Token。

Q:代码的Token更多还是更少?

代码通常比自然语言更"紧凑",因为变量名、括号等会被优先识别为完整Token。但长文件仍然会快速消耗Token。

Q:为什么我的文本Token数总是对不上?

因为不同模型的Tokenizer不一样。不要用A模型的计数去套B模型。

总结

Token是大模型世界的"货币"。

它决定了你能说多少、模型能回多少、你要花多少钱。

记住三个关键点:

  1. Token ≠ 字数,中文1字约1-2 Token
  2. 上下文窗口以Token计算,不是字符数
  3. 费用按Token算,输出通常比输入贵

下次和AI对话前,不妨想想:这段话值多少个Token?