from torch import nn
import torch
next_token_scores = torch.FloatTensor([[5, 4, 3, 2, 1]])
res = nn.functional.softmax(next_token_scores, dim=-1)
print(res)
low_temperature = next_token_scores / 0.1
res = nn.functional.softmax(low_temperature, dim=-1)
print(res)
high_temperature = next_token_scores / 2
res = nn.functional.softmax(high_temperature, dim=-1)
print(res)
LLM中temperature起作用的方式朴实无华,softmax函数的特性使得 小数之间更加接近,大数之间更加分离 它的输出结果如下,
tensor([[0.6364, 0.2341, 0.0861, 0.0317, 0.0117]])
tensor([[9.9995e-01, 4.5398e-05, 2.0611e-09, 9.3572e-14, 4.2482e-18]])
tensor([[0.4287, 0.2600, 0.1577, 0.0956, 0.0580]])