python - 计算输入标记对 BERT(或其他分类器)输出概率的影响
问题描述
假设我已经训练了一个用于分类的 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,但无论如何我还是想概括一下。
解决方案
推荐阅读
- amazon-web-services - Helm 创建的 Kubernetes 命名空间和资源不会删除
- c++ - 错误:未在此范围内声明“standardToMilitary”
- mysql - union all 同一张表需要显示不同的数据
- java - 我的 App Engine 前端实例使用情况如何?
- reactjs - 将状态添加到“推送”反应路由器?
- jsonata - Jsonata,合并对象数组
- sql - 此子查询上的联合
- node.js - Node JS 中的架构与控制器、服务和存储库
- html - 我不知道如何编写这个程序。我想让程序询问用户速度和时间,并使用循环显示总数
- python - Django,一页上有 2 个表单,一个表单使用另一个表单的数据