跳转到内容

06 生成与采样:从概率到文本

  • 理解 logits、softmax 和采样。
  • 知道 temperature、top-k、top-p 的效果。
  • 能解释为什么同一 prompt 会生成不同回答。

模型每一步不是直接吐出一个确定词,而是给出候选 token 的概率分布。采样策略决定“从这个分布里怎么选”。

  • temperature 越低,概率分布越尖锐,输出更保守。
  • top-k 只保留概率最高的 k 个候选。
  • top-p 保留累计概率达到 p 的候选集合。

nanoGPT 的生成逻辑包含 temperature 和 top-k。实际产品还会加停止词、最大 token、重复惩罚、JSON 约束等。

源码:labs/06-sampling/index.mjs

这个实验在同一组 logits 上分别应用 temperature、top-k 和 top-p。

运行:

Terminal window
npm run lab:06

观察低温和高温采样在相同 logits 下可能选出不同 token。

  • temperature 不是“创造力旋钮”这么简单,它改变概率分布形状。
  • top-p 和 top-k 可以组合,但过度限制会让输出死板。
  • 推理模型的“多想一步”通常涉及训练、解码和系统设计,不只是调 temperature。