GPT 模型中的“温度”是多少?

人工智能 机器学习 术语 gpt 语言模型 gpt-3
2021-10-20 15:40:52

谈到 GPT 模型时,温度参数是什么意思?

我知道更高的温度值意味着更多的随机性,但我想知道如何引入随机性。

温度是否意味着我们在权重/激活中添加了噪声,或者我们在 softmax 层中选择令牌时是否添加了随机性?

1个回答

在序列生成模型中,对于大小的词汇表N(单词的数量,单词的部分,任何其他类型的标记),从形式的分布预测下一个标记:

softmax(xi/T)i=1,N,
这里T温度softmax 的输出是下一个令牌将是i- 词汇表中的第一个词。

温度决定了生成模型的贪心程度。

如果温度低,除了对数概率最高的类之外,其他类的采样概率会很小,模型可能会输出最正确的文本,但很无聊,变化很小。

如果温度高,则模型可以以相当高的概率输出除概率最高的单词之外的其他单词。生成的文本会更加多样化,但语法错误和废话生成的可能性更高。

在此处输入图像描述

上图说明了分类分布的低温情况(左)和高温情况之间的差异,其中条形的高度对应于概率。

例子

François Chollet 在第 12 章的Python 深度学习中提供了一个很好的示例。教程的摘录,请参阅此笔记本

import numpy as np

tokens_index = dict(enumerate(text_vectorization.get_vocabulary()))

def sample_next(predictions, temperature=1.0):
    predictions = np.asarray(predictions).astype("float64")
    predictions = np.log(predictions) / temperature
    exp_preds = np.exp(predictions)
    predictions = exp_preds / np.sum(exp_preds)
    probas = np.random.multinomial(1, predictions, 1)
    return np.argmax(probas)