30秒快速回答: Token 是大语言模型(LLM)读写文本的”最小单位”,类似单词或汉字的碎片。英文中约 4 个字符=1 个 Token,中文里 1 个汉字通常≈1~2 个 Token。模型不是按”字数”而是按 Token 计费:你发的提示词(输入 Token)+ 它生成的回复(输出 Token)加起来算钱。上下文窗口上限、对话记忆长度也都用 Token 衡量。


一、定义:Token 到底是什么?

Token 是模型分词(Tokenization)后的基本单元。模型不会直接读”字”,而是把文本切成一串 Token 再处理。

  • 英文:"ChatGPT is great" → 可能切成 Chat / GPT / is / great(4 个 Token)
  • 中文:"你好世界" → 可能切成 你 / 好 / 世 / 界(4 个 Token,或按子词更碎)

不同模型用不同分词器(如 GPT 的 BPE、Llama 的 SentencePiece),切法不同,Token 数也不同。


二、原理:为什么用 Token 而不是字数?

1. 模型内部只认数字

神经网络处理的是向量,文本必须先映射成 Token ID(每个 Token 对应一个编号),再转成向量。Token 是模型”思考”的语言。

2. 计费与算力挂钩

模型每生成一个 Token 都要做一次前向计算,成本与 Token 数成正比。所以按 Token 收费最公平,也最贴近真实算力消耗。

3. 上下文以 Token 为界

模型”能记住”的最大长度 = 上下文窗口(如 128K Token)。超出部分会被截断或遗忘。

4. 输入/输出分别计价

类型 含义 通常价格
输入 Token 你发的提示词 较便宜
输出 Token 模型生成的回复 较贵(约 3~4 倍)

三、实操:怎么算 Token、怎么省钱?

步骤 1:估算你的 Token 数

经验公式(中文):

Token 数 ≈ 中文字数 × 1.5 + 英文字符数 ÷ 4

精确计算可用官方分词器(如 OpenAI 的 tiktoken 库)。

步骤 2:用 tiktoken 实测(Python)

import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o")
text = "你好,世界!这是一段测试文本。"
print(len(enc.encode(text)))  # 输出 Token 数

步骤 3:省钱技巧

  • 精简 Prompt:去掉冗余废话,长文档先摘要
  • 缓存上下文:OpenAI 支持 prompt caching,重复前缀打折
  • 选对模型:简单任务用 mini 版,别用旗舰模型烧钱
  • 控制输出长度:用 max_tokens 限制回复上限
  • 批量接口:离线任务用 Batch API,价格打 5 折

四、工具推荐表

工具 用途 价格 亮点
tiktoken OpenAI Token 计数 免费 官方精准
TokenCounter 在线估算 免费 无需安装
OpenAI Pricing 价格查询 免费 实时费率
LangChain 上下文管理 免费 自动截断
Claude Tokenizer Anthropic 计数 免费 适配 Claude

五、FAQ 常见问题

Q1:中文和英文哪个更费 Token? 中文通常更费。同样意思,中文 Token 数往往多于英文,因为中文按子词切分较碎。

Q2:为什么输出比输入贵? 生成需要逐 Token 做完整推理计算,成本高于”只读”输入。

Q3:上下文窗口 128K 是字还是 Token? 是 Token。换算成中文约 8~10 万字,但含输入+输出总和。

Q4:超出窗口会怎样? 模型只保留最近的内容,更早的会被丢弃(除非用滑动窗口或摘要压缩)。

Q5:免费版有 Token 限制吗? 有。免费产品通常限制每日对话轮数或单次回复长度,本质都是 Token 配额。


延伸阅读:什么是大语言模型(LLM)? 理解 Token 所处的技术体系。