BertForMultipleChoice如何通过logits判定最可能正确的选项
你对logits的用途猜测是正确的,Hugging Face的BertForMultipleChoice输出的logits存储的是每个选项的未归一化置信度,取值越大的选项,模型判断其为正确选项的概率越高。
logits的维度固定为(batch_size, 选项总数),你给出的示例中batch size为1、选项总数为2,所以logits的shape是[1, 2],两个值分别对应choice0、choice1的置信度。
如果需要得到归一化的概率,可以对logits做softmax处理,如果只需要得到模型判定的最优选项,直接取最大值对应的索引即可,参考代码如下:
# 获取模型预测的最优选项索引 predicted_label = torch.argmax(logits, dim=1).item() # 可选:获取每个选项的归一化正确概率 choice_probs = torch.softmax(logits, dim=1).squeeze().tolist() prob_choice0, prob_choice1 = choice_probs[0], choice_probs[1]
训练阶段模型的优化目标就是让标注正确的选项对应的logit值尽可能高,和交叉熵损失的计算逻辑完全匹配。
内容的提问来源于stack exchange,提问作者user15283025
相关产品推荐
相关产品推荐

