1.8 用参数改变 GPT 的想象力

在之前的文章中,我们已经学会了四种不同的 Prompt 通用优化的技巧。而在这一章中,我们将一起来认识两个可以直接调整 GPT 的想象力的 Prompt 优化技巧——温度(Temperature)和 Top-p。

什么是温度(Temperature)和 Top-p

相信已经有一部分读者听说过温度(Temperature)和 Top-p 这两个参数,而不少基于 API 的 GPT 产品允许用户直接设定温度(Temperature)和 Top-p,虽然它们的具体作用方式有所不同,但都可以被用来控制最终生成结果。

没有听说过的也不要着急,让我们从头开始捋一捋为什么这两个参数可以控制生成内容的多样性和质量。

Temperature(温度)

温度是一个正实数,用于控制生成文本的随机性多样性。在生成过程中,模型会为每个可能的下一个词分配一个概率,而调整温度,则可以影响这些概率分布的形状。

  • 当温度接近 0 时(但不能为 0),输出文本会变得更加确定性,模型更倾向于选择具有较高概率的词。这可能导致生成的文本质量较高,但多样性较低。

  • 当温度接近 1 时,输出文本的随机性增加,模型会更平衡地从概率分布中选择词汇。这可能使生成的文本具有更高的多样性,但质量可能不如较低温度时的输出。

  • 当温度大于 1 时,输出文本的随机性会进一步增加,模型更可能选择具有较低概率的词。这可能导致生成的文本具有较高的多样性,但质量可能较差。

左:温度越低,模型会选择概率更高的词;左:温度越高,模型也更有可能会选择概率更低的词

Top-p

Top-p1 则是另一种生成策略,它根据概率分布的累积概率来选择候选词。具体来说,模型将根据词汇的概率对其进行排序,然后选择一个子集,使得这个子集的累积概率至少为 p(一个 0 到 1 之间的实数)。

  • 当 p 接近 1 时,生成的文本将包含几乎所有可能的词汇,导致较高的随机性和多样性。

  • 当 p 较小时,生成的文本将仅包含具有较高概率的词汇,降低随机性并提高输出质量。然而,过低的 p 值可能导致模型过于保守,生成的文本过于重复或单调。

为了便于理解,我们这里可以举个不是很恰当的例子。假设我们有一个语言模型,它正在尝试预测句子中的下一个单词。模型会根据它所学到的知识,为每个可能的单词分配一个概率值。例如,如果句子是「我喜欢吃苹果和____」,那么模型可能会为「香蕉」分配 0.4 的概率,为「橙子」分配 0.2 的概率,为「鸭梨」分配 0.2 的概率,为「披萨」分配 0.1 的概率,为 「汉堡」 分配 0.1 的概率。

我们先设定一个阈值 p=0.8,再按照概率值从大到小对所有可能的单词进行排序,并在阈值内选择尽可能多的词。在这个例子中,我们会选择「香蕉」「橙子」「鸭梨」,三者的可能性等于 0.8,而如果再加上「披萨」累积概率就会超过阈值 p。

最后,模型会在「香蕉」「橙子」「鸭梨」随机选择一个单词作为预测结果。在这个例子中,我们有 50% 的几率会选择「香蕉」,25% 的几率选择「橙子」,25% 的几率选择「鸭梨」。其中这一步中的概率还会被 Temperature 温度所影响。

简单来说就是 Temperature 越高生成内容越放飞自我,更有创意,越低越贴近参考的知识;Top-p 越高生成的内容越喜欢用多样的表达方式,越低则越单调。

我们平时使用 New Bing 就提供的有创造力、平衡和精确三个模式,不同模式背后不仅 Prompt 不同,Temperature 和 Top-p 也是有明显区别的。

如何使用这两个参数

虽然,这两个参数一般都是后台发送请求时由开发者指定的,不过我们依然可以在输入框中加上这两个参数,来直接控制每次对话 GPT 时的这两个参数。而且得益于训练集,即使是在你输入 Prompt 之后再加上这两个参数,也能起到调整生成内容多样性和质量的效果。

具体的使用方法是在你的 Prompt 后面新建一行,直接输入:生成参数 Temperature=0.2 或者 生成参数 Top-p=0.5,你可以尝试多个数值,达到适合自己需求的结果。在使用的时候,一定要提醒 GPT 本身要注意这个参数,比如我就是加上了「生成参数」这样的提示。

不同 Temperature 和 Top-p 生成内容的对比
不同 Temperature 和 Top-p 生成内容的对比

总体来说,如果你想内容更加有创意,那就往高调 Temperature;如果你想内容更严谨,就往低调 Temperature;如果你想内容更活泼,那就往高调 Top-p;如果你想内容更严肃,就往低调 Top-p。

参数调整优化法的优势

  • 更大的控制权:通过调整 temperature 和 top-p,你可以更精确地控制 AI 的行为,使其在创新性与精确性、多样性与一致性之间取得理想的平衡。

  • 针对性地优化:每个应用或场景可能需要不同的输出特性。例如,创新写作可能需要较高的 temperature 和 top-p 来生成更多元、富有创意的文本,而新闻摘要或学术报告可能需要较低的 temperature 和 top-p 来保持准确性和专业性。这种方法可以让你根据需求定制模型的行为。

  • 简单易用:这种优化方法只需要在 prompt 后面添加一行代码,非常简单易用。这对于没有技术背景的用户尤其有用,你可以轻松地控制 AI 的输出,无须了解复杂的机器学习理论或编程技术。

  • 实时调整:你可以在每次输入时调整 temperature 和 top-p,无须等待模型重新训练或调优。这使得你可以在实时交互中根据需要动态调整模型的行为。

参数调整优化法适合的问题类型

  • 创新性写作:例如,写故事、诗歌或歌词等。这些任务通常需要较高的 temperature 和 top-p 以增加创新性和多样性。

  • 学术或技术性写作:例如,写学术论文、技术报告或新闻摘要等。这些任务可能需要较低的 temperature 和 top-p 以确保准确性和一致性。

  • 问题回答:例如,回答客户服务中的常见问题或参加问答游戏等。这些任务可能需要适中的 temperature 和 top-p,既需要准确的答案,又需要一定的多样性。

  • 情感对话:例如,为聊天机器人或虚拟助手等应用生成自然、友好地对话。这些任务可能需要适中到较高的 temperature 和 top-p 以增加对话的自然性和多样性。

  • 生成创意建议:例如,为用户生成创新的产品设计、营销策略或业务想法等。这些任务可能需要较高的 temperature 和 top-p 以增加创新性。

  • 教育或培训应用:例如,为教育软件生成各种难度的练习题或为员工培训生成模拟情境等。这些任务可能需要不同的 temperature 和 top-p,根据目标群体的能力和需要进行调整。

简单来讲任何使用语言模型的任务,都可以通过调整 temperature 和 top-p 来优化模型的行为,以更好地贴合你的需求。

总结

参数调整优化法和零样本思维链一样,都是简单、有效、易用也无需提前准备的 Prompt 优化方法。参数调整优化法也许不适合单独使用,但在配合其他方法时往往能提升另一种方法的效果。在下一章中,我们将一起认识如何让 GPT 在生成内容时就排除你不想要的内容。

  • 1有时也被称为 nucleus sampling

最后更新于