共计 1978 个字符,预计需要花费 5 分钟才能阅读完成。
ChatGPT, GPT-3, GPT-3.5, GPT-4, LLaMA, Bard 等大型语言模型的一个重要的超参数
大型语言模型可能依据给定的上下文或提醒生成新文本,因为神经网络等深度学习技术的提高,这些模型越来越受欢迎。可用于管制生成语言模型行为的要害参数之一是 Temperature 参数。在本文中,咱们将探讨语言生成模型中 Temperature 参数的作用,以及它如何影响生成文本的品质。
Temperature 在模型中的作用
Temperature 是一个超参数,可用于管制生成语言模型中生成文本的随机性和创造性。它用于调整模型的 softmax 输入层中预测词的概率。温度参数定义为在利用 softmax 函数之前用于调整 logits 的比例因子的倒数。
当 Temperature 设置为较低的值时,预测词的概率会变尖利,这意味着抉择最有可能的词的概率更高。这会产生更激进和可预测的文本,因为模型不太可能生成意想不到或不寻常的词。另一方面,当 Temperature 设置为较高值时,预测词的概率被拉平,这意味着所有词被抉择的可能性更大。这会产生更有创意和多样化的文本,因为模型更有可能生成不寻常或意想不到的词。
温度参数通常设置为 0.1 到 1.0 之间的值,具体取决于生成文本中所需的随机性和创造性程度。温度值为 1.0 对应于规范 softmax 函数,其中预测词的概率未按比例缩放。
一般来说,Temperature 越低,GPT- 3 越有可能抉择呈现概率较高的单词。当咱们想要 GPT- 3 解释概念时,它特地有用,因为答案只有一个。如果想要产生想法或实现一个故事,Temperature 设置的更大会给咱们带来更多的多样性。
比如说以下提醒:
Prompt:“The quick brown fox”
Temperature = 0.1:
“The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog.”
Temperature = 0.5:
“The quick brown fox jumped over the lazy dog. The lazy cat was not impressed. The quick brown fox ran away.”
Temperature = 1.0:
“The quick brown fox jumped over the lazy dog. Suddenly, a flock of birds flew overhead, causing the fox to stop in its tracks. It looked up at the sky, wondering where they were going.”
能够看到,Temperature 对生成文本的品质和创造性有重大影响。低值生成更可预测和反复的文本,而高值生成更多样化和创造性的文本。
Temperature 的数学原理解释
神经网络的输入是词汇表中每个单词 (实际上是标记) 的概率分布,通知它这些单词中任何一个可能追随输出文本的可能性。
该概率分布由 softmax 函数计算:
如果将 Temperature 参数 (T) 增加到 softmax 函数,则公式如下:
更深刻的解释 Temperature 参数:
如果当 T 趋于无穷时会产生什么。每个 x_i / T 都会趋于 0,从而失去一个均匀分布。也就是说概率分布变得更“平”,这会导致后果更随机。
当 T 很小 (比方 0.1) 时会产生什么。每个 x_i / T 之间的差别变得更加显著(例如 5 比 1 变成 50 比 10),这样概率分布变得“更尖”,也就是说后果会更确定。
总结
Temperature 参数是语言生成模型中一个重要的超参数,可用于管制生成文本的随机性和创造性。通过调整该参数,能够生成更激进或更有创意的文本,尽管 Temperature 参数是生成高质量文本的弱小工具,但须要留神的是,它并不能进步生成语言模型的性能。因为生成文本的品质高度依赖于训练数据的品质、模型的架构以及其余超参数,如学习率和批处理大小。在设计和训练生成语言模型时,必须思考所有这些因素。
另外就是 Temperature 参数可能并不总是进步生成文本的品质,特地是在训练数据无限或有噪声的状况下。在这种状况下,其余技术,如数据加强、正则化或迁徙学习可能更无效地进步模型的性能。
最初 Temperature 能够管制语言生成模型的行为。通过适当的调整,能够失去咱们冀望的后果。比如说生成更确定的答案能够升高该值,而生成更发散和创造性的答案能够进步该值,所以尝试一下不同的值,看看这些更改对不的提醒有什么影响,这会帮忙咱们更好的取得想要的后果。
https://avoid.overfit.cn/post/04f2376489184f53a6ae9c5d4b43dc97
作者:Lazy Programmer