logits和softmax分布
logits
logits是模型的输出分数
在大语言模型里,logits 是每个 token 的“相对偏好分数”,可以是正数、负数或零
# 输入文本
text = "你好"
inputs = tokenizer(text, return_tensors="pt")# 获取模型输出
with torch.no_grad():outputs = model(**inputs) # 输出是 ModelOutput 对象# logits
logits = outputs.logits # shape: [batch_size, seq_len, vocab_size]
print(logits.shape)
print(logits) # 每个 token 对应词表每个 token 的分数# torch.Size([1, 1, 151936])
# tensor([[[ 2.8750, 0.4199, 0.5938, ..., -1.2109, -1.2109, -1.2109]]],
# device='cuda:0', dtype=torch.bfloat16)
softmax
softmax公式
e≈ 2.71828(自然常数)
分母就是对所有 token 的指数求和