什么是Token?

Token是大语言模型处理文本的基本单位。一个Token可以是一个单词、一个词根、甚至一个字符——具体取决于分词器(Tokenizer)的实现。英语中,1个Token大约对应4个字符或0.75个单词;中文中,1个汉字通常是1-3个Token。这意味着同样长度的一段文本,中文的Token消耗通常是英文的2-3倍,直接影响了API调用的成本。

Token的计算直接影响API费用、上下文窗口利用率和响应速度。理解Token计算规则,是控制AI应用成本的基础。

各模型的Token计算差异

不同模型使用不同的分词器,导致同一文本的Token数量不同:

  • GPT系列(cl100k_base/o200k_base):OpenAI的GPT-4/4o使用o200k_base分词器,词表约10万。英文效率较高,中文效率偏低。"你好世界"在cl100k_base中约5-6个Token
  • Claude系列:Anthropic使用自定义分词器,词表与OpenAI不同。中文Token效率与GPT接近,某些场景略优
  • DeepSeek系列:DeepSeek针对中文做了优化,中文Token效率比GPT-4高出约30%-40%,这意味着中文内容的API成本可以显著降低
  • Llama系列:Meta的Llama 3使用128K词表的分词器,英文效率优秀,但中文效率最差,1个中文字可能需要2-4个Token

选择模型时,除了考虑能力差异,Token效率也是重要的成本因素。纯中文场景下,DeepSeek的成本优势明显。

输入Token与输出Token

API计费区分输入Token(Input/Prompt Tokens)和输出Token(Output/Completion Tokens),输出Token的价格通常是输入的2-3倍。以GPT-4o为例,输入$2.50/百万Token,输出$10/百万Token。因此,优化策略应优先减少输出Token——缩短回复长度比缩短提示词更有效。

输入Token包括:系统提示词(System Prompt)、用户消息(User Message)、历史对话(Conversation History)、工具定义(Tool Definitions)。随着对话轮数增加,历史消息的Token消耗会线性增长,这是长对话成本飙升的主要原因。

Token消耗的5个优化策略

  1. 精简系统提示词:将冗长的System Prompt精简为关键指令,去除示例和废话。一个2000 Token的System Prompt每次请求都在消耗,精简到500 Token可以节省75%的输入成本
  2. 控制历史消息长度:实现滑动窗口或摘要机制,只保留最近N轮对话。超过窗口的早期消息可以用AI生成的摘要替代
  3. 限制最大输出长度:设置max_tokens参数,避免模型生成过长的回复。对于简单问答,设置max_tokens=500通常足够
  4. 批量处理:将多个小请求合并为一个批量请求,减少重复的System Prompt开销
  5. 选择合适的模型:简单任务用GPT-4o-mini等轻量模型,复杂任务才用旗舰模型。轻量模型的成本可能只有旗舰模型的1/10

上下文窗口的管理

上下文窗口(Context Window)是模型单次请求能处理的最大Token数量。GPT-4o支持128K,Claude 3.5支持200K,但实际可用空间需要减去输出Token。使用长上下文时要注意:超过一定长度后,模型对早期内容的注意力会衰减("中间遗忘"现象);长上下文会显著增加推理延迟和成本;所有历史消息都计入输入Token,即使模型不再需要它们。

工具推荐

使用我们的在线Token计算器,支持GPT、Claude、DeepSeek等主流模型的Token估算,实时显示Token数量和预估费用,帮助你优化提示词、控制API成本。