在使用 ChatGPT、Claude、Gemini 或其他大语言模型时,我们经常会看到两个词:contexttoken

很多人会把它们简单理解成“上下文”和“字数”,但在大模型场景下,这两个概念其实更具体,也更重要。

简单来说:

Token 是大模型处理文本的基本单位,Context 是模型一次推理时能够看到和参考的 token 范围。

如果把大模型想象成一个正在阅读资料并回答问题的人,那么 token 就像资料上的一个个文字片段,而 context 就像他当前桌面上能够摊开的资料总量。

理解这两个概念,有助于我们更准确地使用大模型,也能帮助我们理解为什么有时候模型会“忘记前文”、为什么长文档不能无限输入、为什么同样的问题在不同上下文下会得到不同答案。


一、什么是 Token?

Token 是大模型处理文本时使用的基本单位。

人类阅读文本时,通常按“字”“词”“句子”来理解;但大模型并不是直接按人类习惯中的字或词来处理文本,而是会先把文本切分成一个个更小的片段,这些片段就叫 token

例如英文句子:

I love machine learning.

在人类看来,这句话有 4 个单词加一个标点。但在模型看来,它可能会被切分成类似这样的 token:

I / love / machine / learning / .

中文句子:

我喜欢机器学习

可能会被切成:

我 / 喜欢 / 机器 / 学习

但需要注意的是,不同模型的 tokenizer 不完全相同,实际切分结果可能会有差异。一个中文词、一个英文单词、一个标点、一个数字、一个代码符号,都可能被切成一个或多个 token。

因此,token 不能简单等同于“字数”。


二、Token 和字数有什么关系?

虽然 token 不是字数,但我们可以粗略估算它和文字长度之间的关系。

对于英文内容,常见估算是:

1 token ≈ 0.75 个英文单词

也就是说:

1000 tokens ≈ 750 个英文单词

对于中文内容,可以粗略理解为:

1 个汉字 ≈ 1 个 token

但这只是非常粗略的估算。

实际情况会受到很多因素影响,例如:

  • 中文、英文、数字混排;
  • 是否包含大量标点;
  • 是否包含代码;
  • 是否包含专业术语;
  • 是否包含表格、公式、链接;
  • 模型自身 tokenizer 的设计。

比如一段普通中文文章,token 数可能接近汉字数;而一段代码,由于包含大量符号、缩进、变量名和特殊字符,token 数可能会比直觉中的“字数”多得多。

所以,当我们说一个模型支持 128K token,并不是说它能处理 128,000 个汉字或 128,000 个英文单词,而是说它最多能处理约 128,000 个模型内部的文本单位。


三、什么是 Context?

Context 通常翻译为“上下文”。

在日常交流中,上下文指的是帮助我们理解一句话的背景信息。

比如有人说:

他很厉害。

如果没有上下文,我们不知道“他”是谁,也不知道“厉害”是夸奖还是反话。

但如果前面一句是:

小王一天完成了整个项目,他很厉害。

那我们就知道,这里的“他很厉害”是在夸小王能力强。

如果前面一句是:

他又把服务器搞崩了,他很厉害。

那这句话可能就是讽刺。

所以,上下文的本质是:

帮助我们正确理解当前信息的背景、前因后果和相关内容。

在大模型中,context 也有类似含义,但它更强调一个技术边界:

模型在一次推理中能够看到、理解和参考的全部信息范围。

这个范围就叫 context window,也就是上下文窗口。


四、什么是 Context Window?

Context window 可以理解为模型的“临时工作空间”。

模型在回答问题时,并不是只看你当前输入的最后一句话,而是会结合它当前能看到的全部内容,例如:

  • 系统指令;
  • 开发者指令;
  • 用户当前问题;
  • 之前的对话记录;
  • 上传文件被读取后的内容;
  • 工具调用返回的信息;
  • 模型正在生成的回答。

这些内容都会占用 context window。

所以,当我们说一个模型的 context 是 128K,意思通常是:

这个模型一次推理时最多可以处理约 128,000 个 token 的上下文内容。

这里的 128K,不是 128K 字,也不是 128K 汉字,而是 128K tokens。


五、128K Context 到底有多大?

如果一个模型支持 128K context,可以粗略理解为它拥有一个很大的临时阅读空间。

它可能可以容纳:

  • 一篇很长的论文;
  • 一份较长的合同;
  • 大量会议记录;
  • 多轮复杂对话;
  • 一批技术文档;
  • 一个中小规模代码项目的部分内容。

不过,这并不意味着你可以无限制地输入资料。

因为 context window 是一个总容量,它不仅包含你的输入,也包含模型输出。

可以简单理解为:

输入 token + 输出 token ≤ context window

例如一个模型的 context window 是 128K tokens,假设系统指令和历史对话占用了 10K,你上传的文档占用了 100K,你的问题占用了 1K,那么剩下可用于模型输出和内部处理的空间就不多了。

所以,128K context 并不是说你一定能输入完整 128K token 的资料后,还要求模型输出超长回答。


六、Context、Prompt 和 Memory 的区别

很多人容易把 context、prompt 和 memory 混在一起。

它们确实相关,但不是同一个概念。

1. Prompt:当前输入的指令

Prompt 是你当前发给模型的指令或问题。

例如:

帮我总结这篇文章。

这就是 prompt。

如果你写得更清楚一些:

请用 5 个要点总结这篇文章,要求适合公众号读者,语言通俗但保持专业。

这也是 prompt,而且是更高质量的 prompt。

2. Context:模型当前能看到的全部信息

Context 包括 prompt,但不只包括 prompt。

它还包括前面的对话、系统规则、上传内容、工具结果等。

也就是说:

Prompt 是当前这次你说的话;
Context 是模型回答时能参考的全部背景。

3. Memory:长期记忆

Memory 是模型在不同对话之间可能保留的长期信息,例如你的偏好、常用写作风格、长期项目背景等。

但 context window 更像是“当前工作台”,它只代表模型当前这次推理能看到多少内容。

可以这样类比:

Prompt = 你现在问的问题
Context = 当前桌面上摊开的资料
Memory = 长期记住的个人偏好或背景信息

七、为什么 Context 对大模型这么重要?

大模型生成回答,本质上是在已有上下文的基础上,预测和组织最合适的输出。

上下文越清晰,模型越容易理解你的真实意图;上下文越混乱,模型越容易误解问题。

例如你只说:

帮我优化一下。

这个问题非常模糊。模型不知道你要优化什么,是文章、代码、简历、提示词,还是图片文案。

如果你补充上下文:

这是我准备发到小红书的 AI 工具推广文案,目标用户是大学生,希望语气专业但不要太硬,帮我优化一下。

模型就知道了:

  • 任务对象:小红书文案;
  • 目标用户:大学生;
  • 风格要求:专业但不生硬;
  • 任务目标:优化推广表达。

这时模型的回答就会更贴近你的需求。

所以在使用大模型时,一个非常重要的原则是:

不要只给问题,要给背景。

背景越明确,模型越容易给出高质量答案。


八、Context 越大,模型就一定越好吗?

不一定。

更大的 context window 确实意味着模型可以一次看到更多内容,但这并不等于模型一定会更聪明,也不等于它一定能完美理解全部内容。

大上下文的优势包括:

  • 可以处理更长文档;
  • 可以维持更长对话;
  • 可以参考更多资料;
  • 可以减少反复复制粘贴;
  • 适合长代码、长合同、长论文、长会议记录分析。

但它也有一些限制:

  • 输入越长,成本通常越高;
  • 输入越长,处理速度可能越慢;
  • 信息太多时,模型可能抓不住重点;
  • 重要信息如果埋在大量无关内容中,模型可能忽略;
  • 长上下文不等于长期记忆。

因此,大 context 是能力上限,不是质量保证。

更好的做法是:

提供足够上下文,但不要堆无关信息;
突出关键内容,减少噪声;
明确告诉模型任务目标和输出格式。

九、为什么模型有时会“忘记”前文?

所谓“忘记”,通常有几种情况。

1. 超出了上下文窗口

如果对话特别长,早期内容可能超出 context window,模型当前就看不到了。

这时它不是人类意义上的忘记,而是那部分内容已经不在当前工作台上。

2. 内容被压缩或截断

一些产品会对长对话做摘要、压缩或截断,以便继续对话。

压缩后,模型可能只能看到大意,而看不到所有细节。

3. 上下文太杂,重点不突出

即使内容还在 context window 里,如果上下文里有大量无关信息,模型也可能没有准确抓住你真正想引用的部分。

所以,在长对话中,如果你希望模型基于某个关键信息回答,最好明确指出:

请参考上面我给的那段关于 XXX 的内容。

或者直接重新贴出关键片段。


十、输入 Token 和输出 Token 都要计算

很多人只关注输入长度,但忽略了输出也会占用 token。

模型生成的每一个字、词、标点,都会消耗输出 token。

因此,模型通常会同时有两个限制:

Context window:一次推理可处理的总 token 数
Max output tokens:单次回答最多可生成的 token 数

例如一个模型可能支持很长的上下文,但单次输出仍然有上限。

这就解释了为什么有时候你让模型“把整本书完整改写一遍”,它可能无法一次性完成。不是因为它完全看不懂,而是因为输出长度也有限制。

更合理的做法是把任务拆分:

先总结整体结构;
再逐章分析;
再逐段改写;
最后统一润色。

这样比一次性塞入大量内容并要求一次性输出,更稳定、更可控。


十一、RAG 和 Context 有什么关系?

在实际应用中,经常会听到一个词:RAG,也就是检索增强生成。

RAG 的基本思路是:

先从外部知识库中检索出与问题最相关的内容,再把这些内容放进 context,让模型基于它们回答。

为什么需要 RAG?

因为即使模型有很大的 context window,也不可能每次都把所有文档、所有数据库、所有历史记录全部塞进去。

RAG 的作用就是帮模型“挑重点”。

可以这样理解:

Context window = 模型当前能看的资料空间
RAG = 从海量资料中挑出最相关内容放进这个空间的方法

所以,大 context 和 RAG 并不是互相替代的关系,而是互相配合。

  • Context 越大,能放进去的材料越多;
  • RAG 越准,放进去的材料越相关;
  • 两者结合,模型回答的准确性和实用性会更高。

十二、如何在实际使用中更好地管理 Context?

想要让大模型回答更准确,关键不是一味增加输入长度,而是更好地组织上下文。

可以遵循以下几个原则。

1. 明确任务目标

不要只说:

帮我看看。

可以说:

请从逻辑结构、表达清晰度和适合公众号传播三个角度,帮我优化这篇文章。

2. 给出必要背景

比如:

目标读者是 AI 初学者,不需要太多数学公式,但要讲清楚基本概念。

这类背景信息会显著提升回答质量。

3. 明确输出格式

例如:

请用 Markdown 输出,包含标题、小标题、表格和总结。

模型就会更容易生成你想要的结构。

4. 长任务分阶段完成

对于长文档、长代码、长论文,不建议一次性要求模型完成所有任务。

更好的流程是:

第一步:整体总结
第二步:提取结构
第三步:分析重点
第四步:逐段修改
第五步:统一润色

5. 重要信息放在显眼位置

如果你有特别重要的约束,可以明确写成:

重要要求:不要改变原文核心观点;输出要适合初学者阅读;必须保留技术准确性。

这样模型更容易遵守。


十三、一个形象比喻:Token 是积木,Context 是桌面

我们可以用一个简单比喻来理解 token 和 context。

假设你在桌子上搭积木。

  • 每一块积木就是一个 token;
  • 桌子的面积就是 context window;
  • 你当前要搭的作品就是模型的回答;
  • 桌上已有的积木和说明书就是上下文;
  • 桌子放不下的材料,模型当前就无法直接使用。

如果桌子很小,你只能放少量资料;如果桌子很大,你可以同时摊开更多说明书、图纸和零件。

但桌子大不代表作品一定搭得好。你还需要把材料分类摆放,把关键说明放在显眼位置,避免无关零件干扰。

这就是为什么大 context 很重要,但清晰组织上下文同样重要。


十四、常见误区总结

误区一:Token 等于字数

不准确。Token 是模型内部的文本单位,不等于汉字、英文单词或字符数。

误区二:128K Context 就是能输入 128K 字

不准确。128K 指的是 128K tokens,而且系统指令、历史对话、文件内容和输出都会占用这个窗口。

误区三:Context 越大,模型一定越聪明

不准确。大 context 代表能看更多内容,但模型质量还取决于模型能力、提示词质量、信息组织方式和任务复杂度。

误区四:模型记得前文就是永久记忆

不准确。Context 是当前工作空间,不等于长期记忆。超出上下文窗口的内容,模型当前可能就看不到。

误区五:把所有资料都塞进去,效果最好

不准确。大量无关信息会增加噪声,反而可能降低回答质量。更好的方式是提供相关、清晰、结构化的上下文。


十五、总结

在大模型中,tokencontext 是两个基础但非常关键的概念。

Token 是模型处理文本的基本单位。它不是简单的字数,也不是固定等同于单词,而是模型 tokenizer 切分出来的文本片段。

Context 是模型当前推理时能够看到和参考的全部信息范围,包括当前问题、历史对话、系统指令、文件内容、工具结果以及模型输出。

当我们说一个模型支持 128K context,意思是:

模型一次推理时最多可以处理约 128,000 个 token 的上下文内容。

它决定了模型能读多长的资料、能参考多远的对话、能处理多复杂的上下文任务。

但真正影响回答质量的,不只是 context 的大小,还有上下文是否清晰、相关、结构化。

所以,使用大模型时最重要的不是把所有信息都塞进去,而是给它提供:

清晰的问题 + 必要的背景 + 明确的目标 + 合理的输出格式

理解了 token 和 context,就能更好地理解大模型的能力边界,也能更高效地设计提示词、处理长文档、构建知识库应用和使用 AI 工具。

一句话总结:

Token 决定文本如何被模型计量,Context 决定模型当前能参考多少信息。想让模型回答得更好,不仅要有足够大的上下文窗口,更要给它高质量的上下文。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐