跳到内容

入门★★★★5 分钟阅读

LLM 讲的 token 是什么?跟你的账单为什么有关

Token 是 LLM 真正看到的单位。它不是字、不是字符 — 而是每个 API 计费的依据。

登入以收藏

每个 LLM API 都按 token 计费,每个 context window 都用 token 算大小,每次「为什么账单这么贵」的 debug 最后都会回到 token。但大多数人每天用 LLM,从来没看过一个 token 长什么样。这篇讲清楚。

Token 大致等于一个字的片段

LLM 读文本的时候,第一件事就是用 tokenizer 把文本切成 token。Tokenizer 是一个固定的查找表 — 通常有 5 万到 20 万个条目 — 模型训练时就建好,之后永远用同一个。

英文的话,一个 token 通常是:

  • 一个常见的词(”the”、”computer”、”running”)— 一个词一个 token
  • 一个常见的子词片段(”-ing”、”un-”、”ization”)— 一个 token
  • 罕见字或不在词表里的字,会被拆成单字符

粗略换算:1 token ≈ 0.75 个英文词。所以 1,000 tokens 大约 750 词,差不多两页英文文章。

中文(以及日文、韩文)不一样。现代主流的 tokenizer(Claude、GPT、Gemini)大多把一个中文字算成 1 到 2 个 token。也就是说 1,000 个中文字 ≈ 1,500 到 2,000 tokens。中文每个字比英文每个词贵。

代码的 token 比较小,一行 Python 大概 5-15 个 token。

你可以看到实际的切法

想真的看一下,有 tokenizer 试玩工具:

  • OpenAI:tiktokenizer.vercel.app 或 platform.openai.com/tokenizer
  • Anthropic:count_tokens API
  • Hugging Face:任何 tokenizer 都能用 AutoTokenizer.from_pretrained(...) 加载

贴一段你的文字,直接看模型实际看到哪些 chunk。常常吓到人:

  • “strawberry” 在 GPT 的词表是一个 token。所以 GPT 以前常数错字母 r。
  • 数字切法很怪 — “1234” 可能是一个 token,但 “12345” 可能拆成 “123” + “45”。
  • 结尾的空格有差。”hello” 跟 ” hello”(前面有空格)是不同 token。
  • 代码结构前后的空白({}, 等)常常自己占一个 token,这就是为什么代码的 token 数比字符数推估的还多。

对成本的影响

API 计价以「每百万 tokens」为单位,输入跟输出分开:

  • Input token 是你送进去的所有东西:system prompt + 对话历史 + 这次消息。比较便宜。
  • Output token 是模型吐出来的。比较贵(通常贵 3-5 倍)。

2026 年常见价格(每百万 tokens):

  • Claude Sonnet:约 $3 input,$15 output
  • GPT-5:差不多,看 tier 而定
  • Gemini 2.5 Pro:便宜些,约 $1-3 input
  • DeepSeek V3:超便宜,通常 input 不到 $1
  • 自架的 Llama 70B:按 GPU-hour 算,不按 token

这代表 prompt 长度就是你的账单。每次都送 50K tokens 的 system prompt,单位经济学会直接烂。

缓解方式:prompt caching(重复 prefix 便宜 5-10 倍)、缩短 system prompt、用 RAG 取代整个知识库塞进去、简单问题改用便宜模型(也就是 LLM routing)。

对 context window 的影响

模型有 200K context window,这个上限是 token,不是页数。所以:

  • 100 页英文文档(约 5 万词 ≈ 65K tokens)轻松塞得下
  • 100 页中文文档(约 5 万字 ≈ 75K-100K tokens)勉强塞得下
  • 100 页的 Python 项目,看密度差很多

设计 app 时请估 token 预算。不要想「这份文档 5MB」 — 算 token。

对输出速度的影响

模型一个一个 token 生出来。速度的单位是 tokens per second(tps)

  • 前沿 API(像 Claude Sonnet)输出大约 50-80 tps
  • 小模型(Haiku、Flash)能到 100-300 tps
  • 自架 + vLLM / TensorRT-LLM,7B 模型可以推到 500+ tps

如果用户想要 1,000 tokens 的回答,模型 50 tps 的话,实际墙钟时间是 20 秒。Chat UI 为什么一定要 stream — 就是这个原因,不要等整段生完再显示。

估算速查表

背一下:

  • 1 页英文 ≈ 500 词 ≈ 650 tokens
  • 1 页中文 ≈ 500 字 ≈ 750-1000 tokens
  • 1 个一般用户消息 ≈ 50-200 tokens
  • 1 个正式 app 的 system prompt ≈ 500-3000 tokens
  • 1 次 RAG(5 个 ~300 tokens 片段)≈ 1500 tokens
  • 1 份长 PDF 报告 ≈ 10K-50K tokens

乘以你的月请求量,你就有一个粗估的月成本 — 在你 ship 任何严肃产品前先算一下。

什么时候不需要太计较 token

如果你只是用 chat 产品(ChatGPT、Claude.ai)的月费版,你不是按 token 付钱 — 一个月 $20,公平使用。在这个场景里执着于 token 只是浪费时间。

随意聊天时,你花在优化 prompt 长度的时间,比省下来的 token 钱还贵。

延伸阅读

  • 什么是 LLM
  • 什么是 context window
  • Tokens vs 字数:LLM 计价怎么算
  • 为什么 input token 比 output token 便宜
  • LLM routing:把简单问题丢给便宜模型

最后更新: 2026-04-29

We use cookies

Anonymous analytics help us improve the site. You can opt out anytime. Learn more