说我已经训练了BERT模型进行分类。我想计算每个输入令牌对预测输出的比例影响。
例如-这是非常通用的-如果我有一个模型将输入文本标记为{‘about dogs’ : 0, ‘about cats’ : 1}
,则以下输入句子:
s = 'this is a sentence about a cat'
应该输出非常接近:
1
但是,我想计算出每个输入对最终预测的影响,例如(假设我们要对单词的级别进行标记化,据我所知,这实际上不是这样做的):
{this : .01, is: .005, a : .02, sentence : .0003, about : [some other low prob], a: [another low prob], cat : 0.999999}
直觉上,我认为这意味着对输入句子进行前向传递,然后查看反向传播值?但是我不太确定你会怎么做。有想法吗?
注意 假设一切都在PyTorch中实现。我当前的用例是HuggingFace,但无论如何我都想对此进行概括。