2.3推理过程:Prompt 如何变成回答
本课只解决一个主问题:本单元只解决一个主问题:用户输入 Prompt 后,模型是如何一步步生成回答的?
学习目标
学完本单元后,学习者应该能够:
- 解释模型推理的大致流程。
- 理解 Temperature、Top-p、Top-k 等采样参数的作用。
- 理解上下文长度为什么影响成本和延迟。
- 判断什么时候需要确定性输出,什么时候需要更开放的生成。
先给直觉
模型回答问题不是一次性把整段话从抽屉里拿出来。
更接近的过程是:
- 读入你的 Prompt。
- 计算下一个 Token 的可能性。
- 选出一个 Token。
- 把这个 Token 接到已有文本后面。
- 再计算下一个 Token。
- 重复,直到回答结束。
所以你在聊天产品里看到文字一个字一个字冒出来,不是表演,是生成过程本来就这样。
推理流程
一个简化的推理流程:
用户 Prompt
↓
Tokenizer 切分成 Token
↓
模型读取上下文
↓
计算下一个 Token 的概率分布
↓
采样或选择 Token
↓
把新 Token 加入上下文
↓
重复直到结束
这里最关键的是:模型每一步都在基于当前上下文预测下一个 Token。
概率分布是什么
假设 Prompt 是:
巴黎是法国的
模型可能给出类似这样的下一个 Token 概率:
首都:高
城市:中
一个:低
香蕉:极低
真实模型的候选 Token 很多,概率分布也复杂得多。这个例子只是帮助理解。
模型不是只知道一个答案,而是会计算很多候选 Token 的概率。
Temperature:控制随机性
Temperature 可以粗略理解为控制输出随机性的参数。
较低 Temperature:
- 输出更稳定。
- 更偏向高概率 Token。
- 适合事实回答、分类、格式化、代码修改等任务。
较高 Temperature:
- 输出更多样。
- 更可能选择低概率但有创意的 Token。
- 适合头脑风暴、创意写作、标题候选等任务。
注意:提高 Temperature 不会让模型变聪明,只会让生成更发散。把温度开高解决不了事实错误,它只会让错误更有想象力。
Top-p 与 Top-k
Top-k 是只从概率最高的 k 个 Token 中选择。
Top-p 是只从累计概率达到 p 的候选集合中选择,也叫 nucleus sampling。
它们都用于控制采样范围。
直觉:
- Top-k:只允许前 k 名参加比赛。
- Top-p:只允许最可能的一组选手参加,直到概率总和够了。
具体参数怎么设,取决于模型、任务和产品目标。课程里不鼓励背固定值,因为不同模型和接口可能行为不同。
确定性输出与开放生成
不同任务需要不同生成风格。
更适合确定性的任务
- 信息抽取
- 分类
- JSON 输出
- 代码修复
- 合同条款总结
- 基于资料的问答
这些任务通常希望模型稳定、少发挥。
更适合开放生成的任务
- 创意标题
- 故事灵感
- 头脑风暴
- 多种表达方式
- 广告文案候选
这些任务可以接受多样性。
一个好产品通常不会把所有任务都用同一套采样参数硬套到底。
上下文长度为什么重要
上下文长度决定模型一次能看多少 Token。
上下文里可能包括:
- 系统提示
- 用户问题
- 历史对话
- 上传文档
- RAG 检索片段
- 工具返回结果
- 模型正在生成的回答
上下文越长,不一定越好。
问题包括:
- 成本更高。
- 延迟更大。
- 关键信息可能被噪音淹没。
- 模型可能忽略中间部分或混淆来源。
所以长上下文不是把所有资料一股脑塞进去。更好的方式通常是筛选、摘要、检索和结构化。
延迟、吞吐与成本
推理不是免费的魔法。
影响成本和速度的因素包括:
- 输入 Token 数。
- 输出 Token 数。
- 模型大小。
- 是否使用推理增强能力。
- 并发请求量。
- 是否需要工具调用或检索。
几个基本判断:
- 回答越长,输出成本越高。
- 输入资料越多,输入成本越高。
- 模型越强,通常单次调用越贵。
- 工具调用越多,链路越慢也越容易失败。
这就是为什么 AI 产品必须做成本和延迟设计。
案例
任务 1:
请把下面 20 条用户反馈分类为:价格、功能、性能、服务。
建议:
- 低 Temperature。
- 明确输出格式。
- 要求只使用给定标签。
- 必要时做结果校验。
任务 2:
请为一门 AI 入门课想 20 个有趣但不夸张的文章标题。
建议:
- 可以适当提高多样性。
- 允许输出多个候选。
- 再用人工或模型评分筛选。
同一个模型,不同任务,推理策略应该不同。
常见误区
误区 1:Temperature 高,模型更聪明
不是。Temperature 控制随机性,不提升知识或推理能力。
误区 2:上下文越长越好
不一定。长上下文会带来成本、延迟和噪音问题。
误区 3:模型每次回答不同,说明它不稳定不可用
生成式模型本来就可能有随机性。严肃任务可以通过参数、格式、评估和校验提高稳定性。
误区 4:输出慢只是网速问题
输出慢可能来自模型推理、上下文长度、工具调用、服务负载等多种因素。
动手练习
选一个模型,尝试同一个问题:
请给一门 AI 入门课想 10 个标题,要求不标题党。
分别用更稳定和更发散的设置测试。如果界面不提供参数,就多次重复同一问题,观察差异。
记录:
- 哪些标题更稳定?
- 哪些更有创意?
- 哪些开始变得夸张或不准确?
检查题(自测)
- 模型生成回答时,为什么通常是逐 Token 输出?
- Temperature 控制什么?它不能解决什么?
- 为什么长上下文不是越长越好?
参考答案
- 模型按"预测下一个 Token"的方式生成:每一步根据已有上下文预测下一个 Token,再把它接回去继续预测,所以输出是逐 Token 出现的。
- Temperature 控制采样时的随机性:越高输出越多样,越低越确定。它不能解决事实错误、幻觉和上下文不足,只能调节表达的多样性。
- 长上下文会带来更高成本和注意力负担;无关内容会稀释注意力、干扰模型;超出上下文窗口的部分模型根本看不到。关键是给够完成任务所需的信息。
Takeaway
推理是模型基于上下文逐步生成 Token 的过程。采样参数影响输出风格,上下文长度影响成本和质量。会用模型,不只是会问问题,还要懂一点生成过程。