4/15/2026

temperature, top_p , frequency_penalty, max_tokens 概念详解

1️⃣ temperature(温度)——控制“概率分布的平滑程度”

模型本来会输出一个概率分布:

tokenA: 0.7  
tokenB: 0.2  
tokenC: 0.1

temperature 会对这个分布做“拉伸/压缩”:

  • 低温(0~0.3)
    → 分布更尖锐
    → 更接近“选概率最高的词”
    → 更确定、稳定

  • 高温(0.7~1.2)
    → 分布更平滑
    → 小概率词更容易被选中
    → 更发散、有创造性

👉 数学上其实是:
[
P_i = \frac{e^{logits_i / T}}{\sum e^{logits / T}}
]

👉 直觉一句话:

temperature = “敢不敢冒险”


2️⃣ top_p(nucleus sampling)——控制“参与抽奖的候选池”

不是调整概率,而是裁剪候选集合

步骤:

  1. 按概率排序 token

  2. 从高到低累加,直到总概率 ≥ p

  3. 只在这个子集里采样


举个例子:

原始分布:

A: 0.5
B: 0.2
C: 0.15
D: 0.1
E: 0.05

top_p = 0.7:

选:

A (0.5) + B (0.2) = 0.7

👉 只在 {A, B} 里选


👉 直觉一句话:

top_p = “允许多少概率质量参与竞争”


和 temperature 的区别

参数作用本质
temperature改概率分布形状
top_p截断候选集合

👉 组合效果:

  • temperature 决定“洗牌程度”

  • top_p 决定“参与人数”


3️⃣ frequency_penalty ——“你刚说过,就少说点”

这个参数是对已经生成过的 token 做惩罚

👉 逻辑:

出现次数越多 → 概率被压低

举个例子:

生成中:

the cat and the cat and the ...

如果 frequency_penalty > 0:

  • “the”、“cat” 被重复使用

  • 下一次出现概率会下降


👉 数学近似:
[
logits_i = logits_i - \lambda \cdot count(i)
]


👉 直觉一句话:

frequency_penalty = “别复读”


使用场景

场景建议
写文章0.3 ~ 0.8
代码生成0
列表生成0.2

4️⃣ max_tokens ——“最多说多少”

这个最简单,但很多人用错。

👉 它控制的是:

  • 模型最多生成多少 token

  • 不是字数,是 token(大概 1 token ≈ 0.75 英文词 / 1~2 中文字)


关键影响:

1. 截断

如果太小:

答案还没说完 → 被砍掉

2. 成本

token = 钱

3. 推理能力

复杂任务需要更长输出空间:

推理步骤多 → token需求更高

👉 直觉一句话:

max_tokens = “你给模型多少发挥空间”


🔥 参数之间的“联动关系”(重点)

1️⃣ temperature + top_p(最核心组合)

常见策略:

稳定输出:
  temperature = 0.2
  top_p = 0.9

创意输出:
  temperature = 0.8
  top_p = 0.95

极致确定性:
  temperature = 0
  top_p = 1

👉 不建议:

temperature 很高 + top_p 很低

→ 会变得“奇怪但又受限”


2️⃣ frequency_penalty 的副作用

太高会导致:

  • 用奇怪同义词

  • 语句不自然

  • 代码变量名乱飞

👉 所以:

代码任务 = 一定要 0

3️⃣ max_tokens 和幻觉

很关键:

👉 token 不够 → 模型更容易胡编

因为:

  • 推理链被截断

  • 被迫提前收尾


🧠 一个工程视角总结

你可以这样理解这4个参数:

temperature      → 探索程度(exploration)
top_p            → 搜索空间(search space)
frequency_penalty→ 记忆抑制(anti-repetition)
max_tokens       → 计算预算(compute budget)


LLM缓存详解

 可以把“大模型缓存”理解成: 把已经算过的结果(或中间结果)存下来,下次尽量复用 。但这里面其实分几层,不只是简单的“问题→答案”缓存。 1️⃣ 常见的几种缓存类型 (1)KV Cache(推理内部缓存) Transformer 在生成时,会把前面 token 的 Key/Va...