本阶段课程 · AI 与大模型基础
AI、大模型与聊天应用的关系训练与推理:模型怎样学会和生成Token、上下文与多轮对话模型的能力、局限与幻觉
LESSON 03 / 36阅读约 7 分钟

Token、上下文与多轮对话

理解信息怎样进入模型,以及长聊天为什么不等于无限记忆。

Token 是文字进入模型时使用的单位

人阅读文字时会看词、句子和段落;语言模型通常先通过一个叫“分词器”的组件,把文本转成 Token 序列。Token 可以对应一个词、词的一部分、一个字符或其他片段,再用编号表示,方便模型计算。

这不是固定的字数换算。不同模型可能使用不同分词器,同样一句中文在不同模型里可能得到不同数量的 Token。标点、空格、英文缩写和代码也会影响划分。因此,看到“支持多少 Token”时,不能直接当作“支持多少个汉字”。

你无需手工给文本分词。知道这个单位的用途就够了:服务通常用它描述输入输出长度,许多接口也用它统计用量。图片和音频可能另有计量方式,具体需要看所用模型的说明。

上下文包括什么

上下文(context)是模型本次处理时能够使用的信息。它可能包括系统规则、用户问题、选取的历史对话、上传材料中的文字,以及工具刚刚返回的结果。它并不限于输入框中最后一句话。

假设你先说“请把这段通知改写成三句话”,模型给出结果后,你继续说“再自然一点”。第二句话本身没有完整任务,但应用如果把上一段对话一起交给模型,它就能知道要修改哪段通知。

本次内容在回答中起什么作用
“写给第一次参加的朋友”决定读者与表达方式
活动时间、地点和人数提供不能随意更改的事实
上一版通知让“再短一点”有明确修改对象
最新补充:“地点改为二楼”更新本次应该使用的条件

如果新请求没有携带这些内容,也没有通过应用的状态机制取回,模型就不能可靠地知道它们。聊天看起来连续,是应用管理对话的结果,不能理解成模型有一份无限且自动可靠的人类记忆。

上下文窗口为什么有限

模型或服务对一次能处理的信息有容量限制,常被称为上下文窗口。长材料、历史消息、工具结果和输出可能共同占用相关限制;输入和输出怎样共享额度,各服务的规定不完全一样。

超过限制时,应用可能报错,也可能选择较近的消息、压缩历史,或只检索相关片段。你看到页面里仍保存着十万字聊天,不代表模型这次完整看到了十万字。

即使内容都放进去了,也不保证模型准确使用每个细节。旧日期与新日期混在一起、关键限制埋在大量闲聊中,都可能造成误用。窗口大小回答的是“能处理多少”,不直接回答“理解得是否准确”。

怎样组织上下文才更有帮助

对一个正在推进的任务,可以把当前状态整理为四项:目标、必须满足的条件、已经确认的事实、尚待解决的问题。例如“为12人找周日下午的场地,预算600元;A已确认关闭;接下来查B”。这比把过去每一次猜测都保留下来更清楚。

需要更新条件时,写明什么被替换,例如“活动改到周六,原来的周日安排作废”。需要新开对话时,重新提供仍然有效的材料。不要让模型从互相矛盾的历史里替你决定哪一个版本算数。

当资料多到无法每次完整提供时,可以先找相关部分,再交给模型回答。后面的知识库与 RAG 课程讲的,正是这种组织资料的方法。

交互演示 · 上下文装箱实验空间有限时,哪些信息值得留下? 4 分钟 · 教学模拟

检查一下理解

聊天页面保留着全部历史,能否确定模型本次也读到了全部历史?

本节参考与继续阅读

下列章节用于核对概念与机制。本站以中文重新组织讲解,例子和练习为独立编写。

可选练习知道怎样保留当前目标、硬条件和必要证据,不把长聊天当作永远可靠的记忆。
练习目标

知道怎样保留当前目标、硬条件和必要证据,不把长聊天当作永远可靠的记忆。

打开下方“上下文装箱实验”。它用格子表示容量,不是实际 Token 数量。默认勾选当前任务、硬约束、场地资料、表达偏好,容量为12格。

当前要记住的任务
为12人寻找周日下午的场地。总预算600元。B场地可容纳16人、周日可用、总价520元。最后简洁写出结论与依据。

跟着做一遍

下面的结果是本站编写的对照示例。实际工具的措辞可能不同,按每步的关键条件检查即可。

01

先看默认状态

打开实验,保持12格和默认勾选。看右侧哪些材料装进去了。

做完后,展开结果对照
对照示例 · 不要求逐字相同

任务2格+硬约束3格+场地资料4格+表达偏好2格=11格,可以同时放下。

为什么这样做回答现在有目标、有预算,也有场地证据。把关键条件列出来,比直接问“为什么它忘了”更容易排查。

02

缩小空间,观察缺的是哪块

把“可用空间”滑到8格,其他选项不动。

做完后,展开结果对照
对照示例 · 不要求逐字相同

任务和约束占5格,4格的场地资料放不下而被跳过;表达偏好仍可能装入。右侧无法据此确认场地符合要求。

为什么这样做这个实验按固定顺序整份装入。真实应用可能用截断、摘要或检索处理长历史,不能把本实验的规则当成所有产品的实现。

03

整理一张短而完整的接力卡

恢复12格,然后在你常用 AI 工具的新对话里试下列任务卡。

发给 AI 的内容
当前任务:为12人选周日下午的场地。硬条件:总预算不超过600元。已知证据:B容纳16人,周日可用,总价520元。请判断B是否满足已知条件,列出依据;没有核实的信息不要补充。
做完后,展开结果对照
对照示例 · 不要求逐字相同

B满足这三项已知条件:人数、时间和预算。仍不能凭这些信息确认停车、设备或实际预约成功。

为什么这样做长对话变乱时,可以把当前确定事实、未解决问题和下一步整理出来,再继续。摘要本身也需要你检查。

刚才用到的一个新词

上下文与 Token

上下文是本次能用的信息;Token 是模型计量信息的片段,不等于固定几个汉字。

没做出来?从这里排查

它反复沿用旧日期

写清“新日期替代旧日期”,删掉无关历史,核对当前任务卡。

压缩后漏了限制

把预算、人数、时间列为必须保留字段,再检查摘要。

换一个例子验证

把一段混乱对话整理成接力卡。

  1. 写出当前目标、不能改变的条件和已知事实。
  2. 把已失效的信息单独标明,或从新卡片中删除。
  3. 新开对话用卡片继续,检查是否还需要补材料。
检查标准新对话不依赖旧聊天,也能理解当前任务与边界。

完成状态仅保存在当前浏览器,可再次点击取消。