Token与窗口:理解AI的“工作记忆”

说实话,我刚接触大模型那会儿,对Token这个概念也是一头雾水。

什么叫Token?窗口又是什么?

直到有一次,我写了一个超长的prompt,模型直接给我回了句“超出长度限制”。我才意识到,这东西就像人的短期记忆,是有容量上限的。

Token到底是什么?

简单来说,Token就是大模型理解语言的最小单位。

它不是字母,也不是完整的单词。它更像是一种“语义碎片”。

我举个例子你就明白了:

输入文本:"我喜欢AI编程"
Token化结果:["我", "喜欢", "AI", "编程"]

中文里,一个汉字通常就是一个Token。英文则不同,一个单词可能被拆成多个Token。

核心要点:

  • 1个Token ≈ 0.75个英文单词
  • 1个Token ≈ 1.5个中文字符
  • 模型按Token计费,不是按字数

我在项目中遇到过最坑的事,就是写prompt时用了大量英文专业术语。结果发现,一个“anthropomorphism”被拆成了5个Token,白白浪费了窗口空间。

上下文窗口:模型的“工作台”

上下文窗口,说白了就是模型一次能“看到”的最大Token数量。

你想想看,如果窗口是4096个Token,那模型就只能基于这4096个Token来生成回答。超出部分,它根本看不见。

我习惯把上下文窗口比作一张工作台:

  • 台面越大,能同时处理的材料就越多
  • 台面太小,就得频繁“换料”,容易丢失上下文

个人经验:

我曾经做过一个长文档分析任务。文档有8000字,但模型窗口只有4096个Token。结果模型只读了前半部分,后半部分完全忽略了。从那以后,我每次都会先估算Token数量。

不同模型的窗口对比

嗯,这里要注意,不同模型的窗口大小差异很大。我整理了一张表,方便你对比:

模型 上下文窗口 约合中文字数
GPT-3.5 4,096 Tokens 约3,000字
GPT-4 8,192 Tokens 约6,000字
GPT-4 Turbo 128,000 Tokens 约96,000字
Claude 2 100,000 Tokens 约75,000字
Claude 3 200,000 Tokens 约150,000字
Gemini 1.5 1,000,000 Tokens 约750,000字

看到差距了吧?

GPT-3.5只能处理一篇短文,而Gemini 1.5能一口气读完《三体》三部曲。

避坑指南:

我曾经以为窗口越大越好,结果发现不是这么回事。

大窗口意味着:

  • 推理速度变慢
  • 计算成本飙升
  • 模型可能“注意力分散”

说白了,窗口不是越大越好,够用就行。

窗口限制的影响

窗口限制带来的问题,我总结为三大类:

1. 信息截断

这是最常见的问题。当你的输入超过窗口限制,模型会直接截断。

我遇到过最尴尬的情况:写了一个超长的prompt,结果模型只看到了前半部分的指令,后半部分的示例全丢了。输出结果完全跑偏。

2. 上下文遗忘

即使没有截断,长对话中模型也会“忘记”早期内容。

为什么会这样?

因为模型在处理新Token时,会逐渐“挤掉”旧的Token。就像你脑子里记不住一周前的聊天细节一样。

3. 成本飙升

Token就是钱。窗口越大,每次请求消耗的Token就越多。

我算过一笔账:

GPT-4 Turbo:输入$0.01/1K Tokens
一次128K窗口的请求 = $1.28
一天100次请求 = $128
一个月 = $3,840

嗯,钱包在哭泣。

我的建议:

别盲目追求大窗口。先想清楚你的任务需要多少上下文。

如果是简单问答,4K窗口就够了。

如果是长文档分析,再考虑128K或更大。

记住:精准的prompt比大窗口更重要。

如何应对窗口限制?

我总结了几条实战经验:

  1. 压缩输入:去掉冗余描述,用关键词代替长句
  2. 分段处理:长文档拆成多个小块,分别处理
  3. 滑动窗口:保留最近N轮对话,丢弃早期内容
  4. 摘要前置:先让模型总结长文本,再把摘要放入窗口

举个例子:

❌ 错误做法:
"请分析这份100页的合同,重点关注第3章第5节关于违约责任的条款..."

✅ 正确做法:
"这是合同摘要:[摘要内容]
请分析违约责任条款:[具体条款内容]"

你看,同样的任务,后者只用了几百个Token,效果反而更好。

核心总结:

Token是模型的“语言单位”,窗口是模型的“工作记忆”。

理解这两者,你就能:

  • 写出更高效的prompt
  • 避免信息截断的坑
  • 控制使用成本

说白了,上下文管理就是一场“在有限窗口内,传递最大价值”的游戏。

下一章,我会聊聊如何用“分块策略”来突破窗口限制。到时候见。