2026-04-30

Question

大模型生成文本时,常见的采样参数有 temperaturetop_ktop_p(nucleus sampling)。

请解释:

  1. 这三个参数分别控制什么?背后的数学逻辑是什么?
  2. 它们之间有什么区别和联系?实际工程中怎么组合使用?

Your Answer

不知道

Review

用户未作答,AI 直接讲解。用户反馈"解释得非常清晰,很喜欢",内容表达质量高、直觉友好,已沉淀为 curated 文章。

Improved Answer

Temperature、Top-K、Top-P 三者都作用于 softmax 之后的 token 概率分布,但职责不同:Temperature 改变分布形状,Top-K 和 Top-P 改变候选范围。

Temperature:调控分布的"锐度"

Logits → 除以 T → softmax。T 是分母,所以:

  • T→0:logits 被放大,概率集中在最高分 token → 近似 greedy decoding
  • T=1:原始分布不变
  • T>1:logits 被缩小,分布趋于平坦 → 输出更随机

本质:Temperature 不改变候选集合,只改变每个 token 被选中的概率。

Top-K:固定数量截断

只保留概率最高的 K 个 token,其余概率置零后重新归一化。

  • K=1 → greedy decoding
  • K=V(词表大小)→ 无截断

问题:K 是固定的,无法适应分布的"陡峭程度"。陡峭时 K=50 仍太冗余,平坦时 K=50 又太激进。

Top-P(nucleus sampling):动态概率累积截断

按概率从高到低排序,累积到 P 为止,只保留这些 token。

  • P=0 → greedy decoding
  • P=1 → 无截断

优势:自适应。分布陡峭时候选少,分布平坦时候选多,解决了 Top-K 的固定截断问题。

三者关系与工程组合

参数 作用对象 效果
Temperature 分布形状 锐化 / 平坦化
Top-K 候选数量 硬截断
Top-P 候选概率 软截断

工程实践中的常见组合:

  • 代码生成:T=0.2, Top-P=0.95 → 低随机性,保留少量不确定性
  • 创意写作:T=0.8~1.0, Top-P=0.9~0.95 → 适度随机,避免离谱
  • RAG / 问答:T=0, Top-P=1 → 确定性输出,Top-P 不截断

注意:Top-K 和 Top-P 同时设置时,取两者交集(更严格的那个生效)。