LLM context window and tokens

大模型的上下文窗口(context window)指模型在生成响应时可以参考的所有文本,包括响应本身。它以词元(tokens)为单位,词元不是单词,也不是字符,而是模型分词器生成的单元。通过下方示例查看输入的分词与对应的ID:

Loading…
Loading tokenizer…

下面是不同模型采用分词库的一些指标:

指标GPT-4oGLM-5.1DeepSeek-V4Kimi-K2.6
词表大小200k155k128k164k
英文占比67.2%64.8%55.8%49.0%
中文占比3.8%18.5%27.6%42.5%
覆盖汉字数2539422352584933
3字词8265893716818252
4字词377192523579895
5字+词3994143432034
平均汉字数/token1.922.202.222.58
平均英文字母数/token5.475.715.665.48

值得注意的是,GPT-4o 的中文多字词质量很差,充斥大量网络垃圾文本(如赌博、色情网站等词汇)。

经验法则:

对于英文文本,一个 token 通常对应大约 4-5 个字符 ≈ 3/4 个单词,因此 100 个 tokens 相当于 75 个单词。

对于中文文本,一个 token 通常对应大约两个汉字,100 个 tokens 大约200多汉字。

目前先进大模型的上下文窗口数在 1M tokens左右,即所谓的百万 tokens,如果按照经验法则的话,大概相当于:

  • 75 万单词或 200 万汉字
  • 150 篇论文(5000单词/篇)
  • 10本+ 书(20万字/本)

CommonJS vs ES Modules