采样参数与输出随机性:提示为何"时灵时不灵
一句话定义
模型每次生成是从概率分布中抽样,温度与 top-p 决定分布的形状——提示只能移动分布,不能钉死单次输出,这解释了"同一个提示时对时错"。
为什么重要
不做提示工程的人把随机性当玄学;做了提示工程的人把它当测量误差。理解采样机制后你会明白:任何提示改动都应该在多次采样下评估,否则你只是押中了一次骰子。这条心智模型是 自洽性(Self-Consistency):用多次采样投票换稳定(用多次采样换稳定)和 提示版本管理与 A/B 实验(用统计对比做 A/B)的共同前提,也是新手"改一句提示就宣布变好了"这类伪结论的解药。
前置知识
- 分词与上下文:模型如何"读"你的话:生成是逐 token 进行的——每次生成一个 token 都要做一次抽样决策。
直观类比
模型是一个骰子形状可调的掷骰机:你的提示决定每个面的权重(造骰子),温度决定掷得有多"野"。造再好的骰子,单次投掷仍可能出冷门——想证明骰子造好了,要掷一百次数频率,而不是掷一次就下结论。
图示
低温度 T≈0.2 高温度 T≈1.0
████░░░░░░░ ██▆▅▃▂▁▁▁▁
概率集中: 概率平摊:
几乎总选同一个词 长尾词也常被抽中
(稳定/保守) (多样/易偏)核心概念
- Logits 与概率分布:每一步模型为词表中每个 token 打分(logits),softmax 归一化成概率分布,然后从中抽样。
- 温度(Temperature):分布的"锐化旋钮"。温度低(趋近 0)→ 分布尖锐 → 输出确定、保守;温度高 → 分布平缓 → 输出多样、更有创造性也更易跑偏。
- Top-p(核采样):只在累计概率达到 p 的最小 token 集合内抽样,动态截断长尾。
- 贪心解码:温度 ≈ 0 时每步取最大概率 token,输出近似确定。
- 随机种子的边界:部分 API 支持种子,但只承诺同参数近似复现,跨版本/跨部署不保证——不能当作硬复现手段。
原理与机制
提示 → 分布,采样 → 样本。你的每一个提示技巧(示例、CoT、格式约束)都在做同一件事:把概率质量移向你想要的输出区域。移动得越多,单次抽样命中率高;但只要分布不是绝对尖锐,坏样本仍会出现。由此得到提示工程的核心工作流定律:单次实验结论不可信,任何评估都要在固定采样参数下重复 N 次。
参数选择的经验分工:
- 抽取、分类、结构化输出、代码生成 → 低温度(0~0.3),要稳定;
- 创意写作、头脑风暴 → 较高温度(0.7~1.0),要多样性;
- 拿不准时先用 2~3 组参数在评估集上对比(见 评估集构建:黄金样本与失败分类),不要凭感觉定。
公式或模型
温度缩放:对 logits z<sub>i</sub>,采样概率为
P(token<sub>i</sub>) = exp(z<sub>i</sub> / T) / Σ<sub>j</sub> exp(z<sub>j</sub> / T)
T → 0 时退化为 argmax(贪心);T 越大分布越均匀。Top-p 再在按概率降序的 token 上保留累计概率 ≤ p 的前缀集合,重归一化后抽样。两者常组合使用:温度调形状、top-p 截长尾。
实例或案例
案例:分类功能的"灵光乍现"陷阱。 症状:工程师把一条错误分类的提示改了两个字,重跑一次得到正确结果,随即宣布修复。三天后线上同类错误复现。操作步骤:① 固定 temperature=0 做确定性基线;② 在 50 条评估样本上跑改动前后各一遍(样本集见 评估集构建:黄金样本与失败分类);③ 对比通过率而不是对比单次输出;④ 若必须用高温度任务(如文案),同一输入跑 5 次看输出分布。结论模板:"改动 X,在 N=50 样本、T=0 下通过率 78%→91%"——这样的句子才配进变更记录(见 提示版本管理与 A/B 实验)。
排错清单:
- 症状:同提示输出格式时对时错 → 先降温度看是否消失;仍出现则是提示约束不足(转 输出格式控制三件套:指令、示例与结构);
- 症状:想要稳定答案却总在几个近义说法间跳 → 属正常采样行为,若需唯一答案用结构化输出约束(结构化输出:JSON/YAML 与 Schema 约束)或后处理归一;
- 症状:开了种子仍不复现 → 种子只在同版本同参数下近似有效,回归测试应依赖评估集统计而非逐字对比。
常见误区
- "温度 0 = 模型变聪明":温度只改分布形状不改能力;低温度消除多样性也消除自我纠错的备选路径,某些推理任务适度的温度反而更好——应实测而非迷信。
- 把单次输出当提示质量:一次成功可能是运气,评估必须多采样(本条的最重要的行为改变)。
- A/B 测试不控制采样参数:参数不同组则比较无意义,先固定 T 与 top-p 再谈版本差异。
自测题
- 为什么"提示 A 跑一次对、提示 B 跑一次错"不能证明 A 更好?
答:单次输出是分布中的随机样本;正确做法是固定参数、多样本统计通过率(或用 自洽性(Self-Consistency):用多次采样投票换稳定 的多次投票)。
- 分类任务应如何设置采样参数,为什么?
答:低温度(0~0.3)或贪心——要的是稳定命中同一标签,不需要多样性。
- 温度和 top-p 各管什么?
答:温度缩放 logits 调分布锐度;top-p 按累计概率截断长尾,限制抽样候选集。
与其他知识点的关系
自洽性(Self-Consistency):用多次采样投票换稳定 把随机性变成资源(多次采样投票);提示版本管理与 A/B 实验 要求 A/B 实验固定采样参数;自动评估与 LLM-as-Judge 的 LLM-as-Judge 评估本身也是随机过程,需同样处理。
延伸阅读
- 综述:The Prompt Report(Schulhoff et al., 2024)——提示技法与实验规范的系统梳理。
来源
- The Prompt Report: A Systematic Survey of Prompting Techniques (Schulhoff et al.
- 2024)