LLM的输出配置
→ 只看 top-K/top-P 的过滤结果,其余随机。→ temperature、top-P 全部失效。→ temperature、top-K 都失效。→ top-K & top-P 完全没用。如果这条路径“自我引用”,就会死循环。正如前面所述,正如前面所述……随机跳到了会回到之前内容的词组。→ top-K 完全没意义。→ top-P 等于没设。模型一直走概率最高的路径……
一、三个参数的含义
| temperature | top-K | top-P |
| 调节随机性 高 → 更随机,低 → 更确定 |
选“前 K 个最可能的词” | 选“累计概率达到 P 的词” |
1、举例:
假设模型下一步可能输出 5 个词,概率如下:
| 词 | 概率 |
|---|---|
| A | 0.50 |
| B | 0.25 |
| C | 0.15 |
| D | 0.07 |
| E | 0.03 |
1.1 temperature
| temperature | 输出词 |
| 0(完全确定,模型只会选概率最高的词) | A |
| 1(正常随机,根据原始概率抽取) | A、偶尔 B、偶尔 C |
| 2(概率被“拉平”,差距变小→ B、C、D 概率变高) | A、B、C、D |
| 10(非常随机,概率已经不重要) | A、B、C、D |
1.2 Top-K:
| Top-K | 输出词 |
| 1 | A |
| 2 | A、B |
| 5 | A、B、C、D、E |
1.3 Top-P:
按概率从大到小累加:
A:0.50
A+B:0.75
A+B+C:0.90
A+B+C+D:0.97
A+B+C+D+E:1.00
|
Top-P |
输出词 |
| 0.5 | A |
| 0.9 | A、B、C |
| 1 | 所有词都保留(相当于没用) |
二、组合指标
通常我们都要结合3个一起控制LLM的输出:
1、极端设置会让其他参数失效
A. 温度极端值
-
temperature = 0 → 完全确定
永远只选最高概率
→ top-K & top-P 完全没用 -
temperature 超高(>10)→ 变成随机抽奖
→ 只看 top-K/top-P 的过滤结果,其余随机
B. top-K 极端值
-
top-K = 1 → 只剩一个词可选
→ temperature、top-P 全部失效 -
top-K = 词表大小(非常大)
→ 所有词都通过
→ top-K 完全没意义
C. top-P 极端值
-
top-P = 0(或很小) → 只剩最高概率那个词
→ temperature、top-K 都失效 -
top-P = 1 → 所有词通过
→ top-P 等于没设
2、推荐的默认组合(非常实用)
| 目标 | 推荐参数 |
|---|---|
| 自然、流畅、略有创造性(默认) | T=0.2, P=0.95, K=30 |
| 更有创意 | T=0.9, P=0.99, K=40 |
| 更稳、更保守、不乱写 | T=0.1, P=0.9, K=20 |
| 只有唯一正确答案(数学/代码) | T=0 |
3、“重复循环”是什么?为什么会出现?
你可能见过模型这样输出:
“因此,因此,因此……
正如前面所述,正如前面所述……”
这叫 重复循环 bug。它出现的原因有两种:
原因 A:温度太低 → 路径太固定
模型一直走概率最高的路径
如果这条路径“自我引用”,就会死循环
原因 B:温度太高 → 太随机
随机跳到了会回到之前内容的词组
也会卡死
👉 解决方式:调节 temperature / top-K / top-P,让“确定性”与“随机性”达到平衡。
更多推荐
所有评论(0)