真实面经题目 · 原创解析
大语言模型的 next-token 预测过程是什么,输入 token、上下文、logits/概率分布和解码策略如何共同产生回答?
这题考 LLM 推理基本原理:候选人要能从 tokenization、Transformer 上下文建模、logits、softmax 概率和解码策略讲清楚回答是如何逐 token 生成的。
真实面经题目 · 原创解析
这题考 LLM 推理基本原理:候选人要能从 tokenization、Transformer 上下文建模、logits、softmax 概率和解码策略讲清楚回答是如何逐 token 生成的。
大语言模型生成回答的核心是 next-token prediction,也就是在给定已有上下文 token 的条件下,预测下一个 token 的概率分布。流程可以这样讲:首先,用户输入和系统提示会被 tokenizer 切成 token,并映射成 token id;模型把这些 token id 转成 embedding,加上位置编码或位置相关信息后送入 Transformer。Transformer 的每一层通过 self-attention 让当前位置关注前面上下文中的相关 token,再经过前馈网络和归一化,得到每个位置的隐藏状态。对于生成任务,模型取最后一个位置的隐藏状态,经过输出层投影到整个词表,得到每个候选 token 的 logits。logits 经过 softmax 变成概率分布,表示下一个 token 的可能性。然后解码策略决定选哪个 token:贪心解码选概率最高的,temperature 调整随机性,top-k 或 top-p 限制候选集合,beam search 适合某些确定性任务。选出 token 后,把它追加到上下文,模型再预测下一个 token,如此循环,直到生成停止符、达到长度上限或满足停止条件。训练时模型通过真实下一个 token 计算交叉熵损失;推理时没有标准答案,只按概率和解码策略一步步采样。因此模型不是一次生成整段答案,而是在上下文条件下连续预测下一个 token。
模型不能直接处理原始字符串,而是先用 tokenizer 把系统提示、用户问题、历史对话和检索内容切成 token,并映射为整数 id。token 可能是一个词、一个子词、一个字或符号片段。tokenization 会影响上下文长度、成本和生成颗粒度;同一句话在不同 tokenizer 下 token 数可能不同。
token id 会查表得到 embedding,并加入位置相关信息。Transformer 的自注意力机制让每个位置根据上下文计算表示:它会通过 query、key、value 计算注意力权重,从前面的 token 中聚合相关信息。对于自回归语言模型,当前位置只能看到自己和之前的 token,不能看到未来 token,这由 causal mask 保证。
经过多层 Transformer 后,最后一个位置的隐藏状态代表模型对当前上下文的压缩理解。输出层把这个隐藏状态投影到词表维度,得到每个词表 token 的 logits。logits 不是概率,而是未归一化分数;分数越高,模型认为该 token 越适合作为下一个 token。
logits 经过 softmax 后变成概率分布,总和为 1。temperature 会改变分布形状:低 temperature 让高分 token 更集中,输出更确定;高 temperature 让分布更平,输出更发散。还可以加重复惩罚、频率惩罚或 logit bias 来改变特定 token 的概率。
概率分布只是候选可能性,解码策略决定最终选哪个 token。greedy 每步选概率最高,稳定但可能死板;sampling 按概率随机采样,更有多样性;top-k 只在前 k 个 token 中采样;top-p 选累计概率达到阈值的一组 token;beam search 保留多条候选路径,但在开放式对话中可能显得重复或不自然。
模型选出下一个 token 后,会把它追加到上下文,再预测下一个 token。为了提升效率,推理时通常缓存前面 token 的 key/value,也就是 KV cache,避免每步重复计算全部历史。循环会在生成 eos、遇到停止词、达到最大长度、工具调用边界或安全策略触发时结束。
训练时模型看到输入序列,并用每个位置的真实下一个 token 计算交叉熵损失,更新参数;推理时参数固定,模型根据已有上下文输出概率分布,再由解码策略选 token,逐步生成。
temperature 会缩放 logits。低 temperature 放大高低分差异,使最高概率 token 更容易被选中;高 temperature 缩小差异,让低概率但合理的 token 也有机会出现,因此更随机、更有多样性。
top-k 固定只保留概率最高的 k 个 token,候选数固定;top-p 按累计概率阈值保留候选,分布集中时候选少,分布分散时候选多。top-p 对不同上下文的不确定性更自适应。
自回归生成每步都会复用之前 token 的注意力 key/value。KV cache 把历史 key/value 缓存下来,新一步只计算新 token 的表示并与缓存交互,避免重复计算整段前文。
模型优化的是在上下文下生成高概率 token,而不是直接查询真实世界数据库。上下文缺失、训练知识过期、解码过于发散或提示诱导时,模型可能生成语言上合理但事实不正确的内容。