本文目录
聊天窗口里,模型的回答通常不是整段一次性蹦出来,而更像:先把你的整段提问读进“工作记忆”,再在光标后面一个 Token 一个 Token往下续写。
你现在只需要先抓住两个阶段:
- Prefill(预填充):把用户已有的整段提示一次读完,记下后面续写要用的笔记。
- Decode(解码):每轮只新写一个 Token,追加到上下文,再写下一个。
下面的交互可以点三次「生成下一个 Token」,看上下文怎样从提示长成句子。
回答在光标后面逐格出现
自回归推理
Prefill 建缓存,Decode 一个一个往外蹦
温度与 Top-K / Top-P 只改变“怎么选”,不会改模型参数。
Prefill:一次处理已有上下文,写入各层 KV Cache。
候选(经 Top-K / Top-P 筛选)
下一步将写入「正在」推理通常分两段。Prefill 一次处理用户已有的整段上下文,建立每层过去位置的 Key/Value。随后进入 Decode:每轮根据当前最后位置的表示预测一个 Token,把它追加到上下文,再继续下一轮。
**KV Cache(键值缓存)**可以想成:旧段落已经整理好的笔记。写新字时不必把整段提示从头再算一遍 K/V,只需计算新位置,并读取缓存里的旧笔记。这节省了大量重复工作,但上下文越长,笔记本越厚,占用也越大。
从分布中选哪一个:敢不敢选冷门词
模型每一步都会给出一长串候选分数(Logits),再变成概率。**Temperature(温度)**控制“敢不敢选冷门词”:较低温度让高分候选更集中,较高温度让分布更平缓。Top-K 只保留分数最高的 K 个候选;Top-P 则保留累计概率达到阈值的一小组候选。
这些采样策略改变“从输出分布怎样选 Token”,不会在对话时重新训练或修改模型参数。相同提示在随机采样下可能得到不同结果。
什么时候停止
生成会在遇到结束 Token、达到长度限制、触发停止串或外部系统中止时结束。也就是说,模型不是先在内部写完整篇再一次吐出;它是自回归(Autoregressive)地一次续写一个 Token。交互里点三次「生成下一个 Token」,上下文才会从提示长成完整句子——每一步的候选分布都依赖已经写出的前缀。
Prefill 为什么可以一次处理整段提示
用户输入的全部 Token 在请求开始时已经可见,因此 Prefill 可以并行计算它们在各层的隐藏状态,并建立对应 K/V 缓存。对于解码器模型,因果掩码仍然存在:提示中的较早位置不会读取右侧位置,但最后位置可以使用整个提示。
Prefill 的工作量通常随输入长度增加,适合 GPU 做大块矩阵运算。它结束时,模型已得到最后位置的 Logits,也已经保存过去 Token 在各层的 K/V,接下来可以选择第一个新 Token。
Decode 为什么通常一次只增加一行
生成一个新 Token 后,模型只需为这个新位置计算新的隐藏状态以及各层 K/V,再与已有缓存交互。旧 Token 的 K/V 不必重复生成,所以缓存能明显减少重复计算。
不过新 Query 仍要读取许多过去 Key/Value,上下文越长,单步读取的缓存越多。KV Cache 节省的是旧位置的重复投影,不会让长上下文成本完全消失。并发请求较多时,缓存占用也会成为显存规划的重要部分。
Temperature、Top-K、Top-P 的先后关系
模型先产生词表 Logits,再由 Temperature 调整分布尖锐程度。之后可以应用 Top-K 或 Top-P 截断候选,重新归一化剩余概率,最后采样一个 Token。
低温度并不保证事实正确,只会让选择更集中于高 Logit 候选;高温度也不是让模型获得新知识,而是增加低分候选被选中的机会。贪心解码则直接选择最大值,结果更确定,但不一定在所有任务上最好。
交互中的候选条形图怎么看
每一步先看上下文末尾,再看候选概率如何随温度变化。点击生成后,被选 Token 会追加到文本,下一轮的输入已经不同,因此新一轮分布必须重新计算。不是从第一次概率表中连续抽取整句话。
如果重置后使用同样设置仍出现不同选择,这是采样的随机性;如果使用确定性选择,则结果可以重复。无论哪种方式,模型参数在整个过程中保持不变。
上下文窗口满了会怎样
上下文窗口统计的是本次请求能容纳的 Token 范围,通常包含提示、历史对话和已经生成的内容。生成越长,可用空间越少。系统可能在达到上限前停止,也可能截断较早内容,具体取决于服务实现。
支持更长上下文不等于模型能同等准确地使用每个位置,也不等于参数量更大。窗口描述可输入的序列容量,参数量描述模型中可训练数字的数量,KV Cache 则描述这次推理为历史 Token 保存的中间状态。
推理与训练的边界
普通推理只执行前向传播:输入 Token、计算隐藏表示、产生 Logits、采样并继续。没有标签比较、损失反传和优化器更新。即使对话持续很久,模型权重也不会因为你的新消息自动学会永久知识。
产品可能把对话保存供未来训练,或使用外部记忆与检索系统,但那是模型推理之外的系统能力。区分“上下文暂时可见”和“参数被训练改变”,就不会把聊天记录与模型长期学习混为一谈。