大模型中的temperature、top_p和top_k
发布时间
阅读量:
阅读量
在大型语言模型中,temperature,top_p(核采样)以及top_k是调控生成文本多样性和随机性的重要参数,以下将详细阐述它们的作用机制及对比分析
1. Temperature(温度)
作用原理 :
-
数学机制:位于 softmax 函数之前的步骤中,在 logits 输出上按照 temperature 值进行缩放操作以实现概率分布的重新分配。
-
公式:P(x_i) = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)} ,其中 T 代表温度参数。
-
作用 :通过降低温度(接近 0),模型会提高高概率词的重要性并使其输出更加稳定且遵循贪心策略。
- 低 temperature(接近 0) :放大高概率词的权重以增强其重要性,并使模型输出更加确定、保守。
- 高 temperature(>1):平滑概率分布以削弱低概率词的影响,并提高低概率词的重要性以使输出更加随机化和多样化。
典型应用场景 :
- 当您在问答任务中需求准确结果时(例如问题解答),则应当采用T \approx 0.1 \sim 0.5。
- 而当您在创作富有创造力的内容(如诗歌或故事情节)时,则应采用T \approx 0.7 \sim 1.2。
示例 :
- 输入:"上空"是___
- 低 temperature:可能会导致呈现"深邃"色调
- 高 temperature:可能会导致呈现"通透"、"忧郁"或"闪烁星光"
2. top_k(顶部 k 采样)
作用原理 :
每个生成步骤中, 仅选取高概率的 k 个候选词, 然后对选中的词语进行归一化处理, 并从中进行采样. 目的是为了 排除低概率的词语, 平衡生成质量与多样性.
典型设置 :
- (其中 k = 50 为常用设定),但具体数值需根据任务需求进行调整:
- 较小的 k 值(例如在 10 到 30 范围内):将导致输出更为保守,在准确性方面表现更为稳定。
- 较大的 k 值(例如在 100 到 200 范围内):将使输出内容更加丰富多样,在信息量上有显著提升的同时也适当平衡了可能出现的信息噪声。
示例 :
- 设置 k=3,候选词为 {“蓝色”: 0.6, “灰色”: 0.3, “晴朗”: 0.1},其他词被排除。
3. top_p(核采样)
作用原理 :
- 根据概率分布选择累积概率超过阈值 p 的最小候选词集合(按概率降序排列),然后从中采样。 *
典型设置 :
- p = 0.9(常用值),范围建议 0.7 \sim 0.95。
- 小 p :候选词少,输出更确定。
- 大 p :候选词多,输出更多样。
示例 :
- 设置 p=0.9,若前 5 个词累积概率达 0.91,则仅保留这 5 个词。
参数对比与组合使用
| 参数 | 核心区别 | 适用场景 | 组合建议 |
|---|---|---|---|
| temperature | 调整全局概率分布形状 | 控制整体随机性(保守 vs 创意) | 常与 top_k 或 top_p 结合使用 |
| top_k | 固定候选词数量 | 需要稳定排除低概率词的任务 | 可与 top_p 联用(先按 k 筛选,再按 p 截断) |
| top_p | 动态调整候选词数量 | 上下文概率分布差异大的任务(如对话) | 常单独使用或与 temperature 配合 |
常见误区与注意事项
参数冲突 :
在设置 top_k 和 top_p 时,在某些框架中会共同满足条件的情况(比如同时满足‘前 k 个词’且‘累积概率 ≤ p’),需查阅具体实现。
temperature 的陷阱 :
- 当T的值高于1.5时,可能会导致文本出现断裂现象。
- 当T低于0.1时,则可能引发大量重复数据输出。
默认选择 :
通常情况下,在多数场景中应优先选择**top_p**(因为它具有良好的动态适应能力),随后可以根据具体情况调整参数值 temperature
通过科学配置这些参数,在实现生成内容的创新性和控制力之间达到最佳融合。在实践中,建议仅进行少量试验以确定最适合任务的参数组合。
全部评论 (0)
还没有任何评论哟~
