一文看懂大模型中的 Context 和 Token:为什么它们决定了模型“能看多少、能记多远、能回答多长”
在使用 ChatGPT、Claude、Gemini 或其他大语言模型时,我们经常会看到两个词:context 和 token。
很多人会把它们简单理解成“上下文”和“字数”,但在大模型场景下,这两个概念其实更具体,也更重要。
简单来说:
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 是当前工作空间,不等于长期记忆。超出上下文窗口的内容,模型当前可能就看不到。
误区五:把所有资料都塞进去,效果最好
不准确。大量无关信息会增加噪声,反而可能降低回答质量。更好的方式是提供相关、清晰、结构化的上下文。
十五、总结
在大模型中,token 和 context 是两个基础但非常关键的概念。
Token 是模型处理文本的基本单位。它不是简单的字数,也不是固定等同于单词,而是模型 tokenizer 切分出来的文本片段。
Context 是模型当前推理时能够看到和参考的全部信息范围,包括当前问题、历史对话、系统指令、文件内容、工具结果以及模型输出。
当我们说一个模型支持 128K context,意思是:
模型一次推理时最多可以处理约 128,000 个 token 的上下文内容。
它决定了模型能读多长的资料、能参考多远的对话、能处理多复杂的上下文任务。
但真正影响回答质量的,不只是 context 的大小,还有上下文是否清晰、相关、结构化。
所以,使用大模型时最重要的不是把所有信息都塞进去,而是给它提供:
清晰的问题 + 必要的背景 + 明确的目标 + 合理的输出格式
理解了 token 和 context,就能更好地理解大模型的能力边界,也能更高效地设计提示词、处理长文档、构建知识库应用和使用 AI 工具。
一句话总结:
Token 决定文本如何被模型计量,Context 决定模型当前能参考多少信息。想让模型回答得更好,不仅要有足够大的上下文窗口,更要给它高质量的上下文。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)