本阶段课程 · AI 与大模型基础
Token、上下文与多轮对话
理解信息怎样进入模型,以及长聊天为什么不等于无限记忆。
Token 是文字进入模型时使用的单位
人阅读文字时会看词、句子和段落;语言模型通常先通过一个叫“分词器”的组件,把文本转成 Token 序列。Token 可以对应一个词、词的一部分、一个字符或其他片段,再用编号表示,方便模型计算。
这不是固定的字数换算。不同模型可能使用不同分词器,同样一句中文在不同模型里可能得到不同数量的 Token。标点、空格、英文缩写和代码也会影响划分。因此,看到“支持多少 Token”时,不能直接当作“支持多少个汉字”。
你无需手工给文本分词。知道这个单位的用途就够了:服务通常用它描述输入输出长度,许多接口也用它统计用量。图片和音频可能另有计量方式,具体需要看所用模型的说明。
上下文包括什么
上下文(context)是模型本次处理时能够使用的信息。它可能包括系统规则、用户问题、选取的历史对话、上传材料中的文字,以及工具刚刚返回的结果。它并不限于输入框中最后一句话。
假设你先说“请把这段通知改写成三句话”,模型给出结果后,你继续说“再自然一点”。第二句话本身没有完整任务,但应用如果把上一段对话一起交给模型,它就能知道要修改哪段通知。
| 本次内容 | 在回答中起什么作用 |
|---|---|
| “写给第一次参加的朋友” | 决定读者与表达方式 |
| 活动时间、地点和人数 | 提供不能随意更改的事实 |
| 上一版通知 | 让“再短一点”有明确修改对象 |
| 最新补充:“地点改为二楼” | 更新本次应该使用的条件 |
如果新请求没有携带这些内容,也没有通过应用的状态机制取回,模型就不能可靠地知道它们。聊天看起来连续,是应用管理对话的结果,不能理解成模型有一份无限且自动可靠的人类记忆。
上下文窗口为什么有限
模型或服务对一次能处理的信息有容量限制,常被称为上下文窗口。长材料、历史消息、工具结果和输出可能共同占用相关限制;输入和输出怎样共享额度,各服务的规定不完全一样。
超过限制时,应用可能报错,也可能选择较近的消息、压缩历史,或只检索相关片段。你看到页面里仍保存着十万字聊天,不代表模型这次完整看到了十万字。
即使内容都放进去了,也不保证模型准确使用每个细节。旧日期与新日期混在一起、关键限制埋在大量闲聊中,都可能造成误用。窗口大小回答的是“能处理多少”,不直接回答“理解得是否准确”。
怎样组织上下文才更有帮助
对一个正在推进的任务,可以把当前状态整理为四项:目标、必须满足的条件、已经确认的事实、尚待解决的问题。例如“为12人找周日下午的场地,预算600元;A已确认关闭;接下来查B”。这比把过去每一次猜测都保留下来更清楚。
需要更新条件时,写明什么被替换,例如“活动改到周六,原来的周日安排作废”。需要新开对话时,重新提供仍然有效的材料。不要让模型从互相矛盾的历史里替你决定哪一个版本算数。
当资料多到无法每次完整提供时,可以先找相关部分,再交给模型回答。后面的知识库与 RAG 课程讲的,正是这种组织资料的方法。
检查一下理解
本节参考与继续阅读
下列章节用于核对概念与机制。本站以中文重新组织讲解,例子和练习为独立编写。
- Google · Introduction to Large Language Models
对应语言模型、Token与上下文。原课包含技术前置知识,本站以不需要公式的解释展开。
- Hugging Face · Messages and Special Tokens
对应消息来源、聊天模板与历史如何进入模型;实际历史管理方式由应用决定。
- Google · 理解与计算 Token
可选练习知道怎样保留当前目标、硬条件和必要证据,不把长聊天当作永远可靠的记忆。
知道怎样保留当前目标、硬条件和必要证据,不把长聊天当作永远可靠的记忆。
打开下方“上下文装箱实验”。它用格子表示容量,不是实际 Token 数量。默认勾选当前任务、硬约束、场地资料、表达偏好,容量为12格。
为12人寻找周日下午的场地。总预算600元。B场地可容纳16人、周日可用、总价520元。最后简洁写出结论与依据。
跟着做一遍
下面的结果是本站编写的对照示例。实际工具的措辞可能不同,按每步的关键条件检查即可。
先看默认状态
打开实验,保持12格和默认勾选。看右侧哪些材料装进去了。
做完后,展开结果对照
任务2格+硬约束3格+场地资料4格+表达偏好2格=11格,可以同时放下。
为什么这样做回答现在有目标、有预算,也有场地证据。把关键条件列出来,比直接问“为什么它忘了”更容易排查。
缩小空间,观察缺的是哪块
把“可用空间”滑到8格,其他选项不动。
做完后,展开结果对照
任务和约束占5格,4格的场地资料放不下而被跳过;表达偏好仍可能装入。右侧无法据此确认场地符合要求。
为什么这样做这个实验按固定顺序整份装入。真实应用可能用截断、摘要或检索处理长历史,不能把本实验的规则当成所有产品的实现。
整理一张短而完整的接力卡
恢复12格,然后在你常用 AI 工具的新对话里试下列任务卡。
当前任务:为12人选周日下午的场地。硬条件:总预算不超过600元。已知证据:B容纳16人,周日可用,总价520元。请判断B是否满足已知条件,列出依据;没有核实的信息不要补充。
做完后,展开结果对照
B满足这三项已知条件:人数、时间和预算。仍不能凭这些信息确认停车、设备或实际预约成功。
为什么这样做长对话变乱时,可以把当前确定事实、未解决问题和下一步整理出来,再继续。摘要本身也需要你检查。
上下文与 Token
上下文是本次能用的信息;Token 是模型计量信息的片段,不等于固定几个汉字。
没做出来?从这里排查
它反复沿用旧日期
写清“新日期替代旧日期”,删掉无关历史,核对当前任务卡。
压缩后漏了限制
把预算、人数、时间列为必须保留字段,再检查摘要。
换一个例子验证
把一段混乱对话整理成接力卡。
- 写出当前目标、不能改变的条件和已知事实。
- 把已失效的信息单独标明,或从新卡片中删除。
- 新开对话用卡片继续,检查是否还需要补材料。
完成状态仅保存在当前浏览器,可再次点击取消。