Temperature, Top P, Top K

在使用Bedrock的时候,有三个参数:

image-20241007084019254

Temperature、Top P(Nucleus Sampling)、Top K 是生成式 AI 模型(如 GPT)在生成文本时常用的采样策略参数,它们用于控制生成的输出文本的多样性和创造性。

这些参数可以帮助模型在生成时的输出,在确定性(生成相同结果的可能性)和随机性(生成更多样的输出)的平衡之间做出选择。

1. Temperature

Temperature 参数控制模型生成文本时的随机性。它通过调整生成过程中每个可能的下一个词的概率分布,影响输出的多样化程度。

  • 低温度(接近 0):使生成更加确定,模型更可能选择概率最高的词。也就是说,模型会输出更加保守和常规的内容,随机性较低,创意较少。

    • 例如,Temperature = 0.1 时,模型会非常“自信”,几乎总是选择最高概率的下一个词,因此输出更加一致和确定。
  • 高温度:使生成更加随机,模型可能会选择概率较低的词,输出的内容更具创造性和多样性,但也可能更不连贯或“冒险”。

    • 例如,Temperature = 1.0 时,模型的随机性会更大,选择更不确定的词,生成的文本可能更有创意,但也有更大的机会出现错误或不连贯的输出。

    示例

    • 如果 Temperature 设置为 0,模型将总是选择概率最高的词,生成相对一致但缺乏多样性。
    • 如果 Temperature 设置为 1,模型会按正常的概率分布来采样词汇。
    • 如果 Temperature 设置为 2,生成将非常随机,模型有更高的几率选择一些不太可能的词。

总结

  • 低温度:确定性高,生成结果常规。
  • 高温度:随机性高,生成结果更有创意,但可能不连贯。

2. Top K Sampling

Top K 是控制模型生成时只在概率前 K 个最高的候选词中进行采样,而忽略其他较小概率的词。这样可以防止模型选择到一些极端不可能的词,同时保留一定的随机性。

  • K 值:是选择候选词的数量。例如:
    • Top K = 1:模型总是选择概率最高的词(相当于贪心搜索,没有随机性)。
    • Top K = 5:模型从概率最高的前 5 个词中进行随机选择。
    • Top K = 50:模型从概率最高的前 50 个词中进行采样,结果更加多样。

总结

  • Top K 限制了模型只在概率最高的几个选项内进行随机选择,而不是考虑所有的可能词汇。它有助于控制生成的结果更加合理,避免不太可能的词被生成出来。

3. Top P Sampling(Nucleus Sampling)

Top P(又叫 Nucleus Sampling,核采样)是一个更动态的采样策略,它不是固定地选择前 K 个候选词,而是选择累计概率达到 P 的候选词。

  • P 值:是累积概率的阈值。例如:
    • Top P = 0.9:表示选择那些概率累加起来大于等于 90% 的候选词。模型会从概率总和为 90% 的词汇集中进行采样,自动调整候选集的大小(可以是 1 个,也可以是多个)。
    • Top P = 1:相当于没有任何限制,考虑所有可能的候选词(这是完全随机的采样)。

相比于 Top KTop P 更加动态,能够根据每个场景的不同概率分布来确定候选集的大小。它在概率分布非常偏向某些词时,可以收窄采样范围,而在更分散的分布中,允许更多的候选词。

总结

  • Top P 通过根据累积概率的总和决定候选词集合的大小,动态选择最有可能的候选词,既能保持一定的随机性,又能避免生成不合适的结果。

对比:Temperature、Top K 和 Top P

  • Temperature 控制整体随机性。低温度时生成更确定,高温度时生成更随机。
  • Top K 通过限制候选词的数量,在前 K 个最有可能的词中进行随机选择,限制了生成的不确定性。
  • Top P 通过控制候选词的累计概率,在累计概率达到 P 的候选词中采样,它是更动态的策略,可以根据具体的上下文概率分布灵活调整生成的词汇。

如何选择这些参数?

  • Temperature = 1 是默认的设置,较为均衡。如果你想要更加确定的输出,可以将其设置为低于 1(例如 0.7);如果你想要更多创造性和多样性的输出,可以将其设置为高于 1(例如 1.2)。

  • Top KTop P 一般不同时使用,你可以根据需求选择其中一个:

    • 如果你希望模型生成更加“可控”的内容,使用 Top K 限制候选词数量。
    • 如果你希望生成的内容更加灵活且动态调整候选集,使用 Top P 是更好的选择。

实际示例:

  • Temperature

    • 低温度(0.2):生成的文本可能较为保守,较少出错,但不够多样。
    • 高温度(1.5):生成的文本可能更有创造性,但可能会有更多错误和不连贯的内容。
  • Top K

    • Top K = 1:相当于贪心算法,模型总是选择概率最高的词。
    • Top K = 50:模型会从前 50 个候选词中随机选择,输出更具多样性。
  • Top P

    • Top P = 0.9:模型会从累计概率达到 90% 的候选词中选择,确保随机性并避免生成一些极端词汇。

总结

  • Temperature 决定了模型生成的随机性强度
  • Top K 限制了候选词的数量,只从最有可能的 K 个词中选择。
  • Top P 限制了候选词的累积概率,从概率达到 P 的词中选择。

在调整这些参数时,可以根据生成任务的需求选择不同的组合,以在确定性随机性之间找到最合适的平衡。

注意:调整这些参数,不会影响模型的延迟性能