解释问答 Transformer 模型
在此,我们演示如何解释问答模型的输出,该模型预测上下文文本的哪个范围包含给定问题的答案。
[1]:
import numpy as np
import torch
import transformers
import shap
# load the model
pmodel = transformers.pipeline("question-answering")
tokenized_qs = None # variable to store the tokenized data
# define two predictions, one that outputs the logits for the range start,
# and the other for the range end
def f(questions, tokenized_qs, start):
outs = []
for q in questions:
idx = np.argwhere(np.array(tokenized_qs["input_ids"]) == pmodel.tokenizer.sep_token_id)[
0, 0
] # this code assumes that there is only one sentence in data
d = tokenized_qs.copy()
d["input_ids"][:idx] = q[:idx]
d["input_ids"][idx + 1 :] = q[idx + 1 :]
out = pmodel.model.forward(**{k: torch.tensor(d[k]).reshape(1, -1) for k in d})
logits = out.start_logits if start else out.end_logits
outs.append(logits.reshape(-1).detach().numpy())
return outs
def tokenize_data(data):
for q in data:
question, context = q.split("[SEP]")
tokenized_data = pmodel.tokenizer(question, context)
return tokenized_data # this code assumes that there is only one sentence in data
def f_start(questions):
return f(questions, tokenized_qs, True)
def f_end(questions):
return f(questions, tokenized_qs, False)
# attach a dynamic output_names property to the models so we can plot the tokens at each output position
def out_names(inputs):
question, context = inputs.split("[SEP]")
d = pmodel.tokenizer(question, context)
return [pmodel.tokenizer.decode([id]) for id in d["input_ids"]]
f_start.output_names = out_names
f_end.output_names = out_names
解释起始位置
在此,我们解释模型的起始范围预测。请注意,由于模型输出取决于模型输入的长度,因此重要的是我们传递模型的原生 tokenizer 进行掩码,这样当我们隐藏部分文本时,我们可以保留相同数量的 tokens,从而保持每个输出位置的相同含义。
[2]:
data = [
"What is on the table?[SEP]When I got home today I saw my cat on the table, and my frog on the floor.",
] # this code assumes that there is only one sentence in data
tokenized_qs = tokenize_data(data)
explainer_start = shap.Explainer(f_start, shap.maskers.Text(tokenizer=pmodel.tokenizer, output_type="ids"))
shap_values_start = explainer_start(data)
shap.plots.text(shap_values_start)
Partition explainer: 2it [00:32, 32.86s/it]
[0]
输出
[CLS]
什么
是
在
桌子
上
?
[SEP]
当
我
回家
时
今天
我
看到
我的
猫
在
桌子
上
,
和
我的
青蛙
在
桌子
地板
.
[SEP]
输入
0.0
0.498
什么
-0.459
是
0.214
在
0.022
桌子
-0.374
上
-0.937
?
0.0
[SEP]
-0.059
当
-0.049
我
0.026
回家
0.032
时
0.013
今天
-0.0
我
-0.137
看到
-0.078
我的
-0.254
猫
-0.25
在
-0.05
桌子
-0.037
上
-0.126
,
-0.182
和
-0.094
我的
-0.086
青蛙
-0.233 / 3
在地板上
-0.108
.
0.0
输入
0.0
0.498
什么
-0.459
是
0.214
在
0.022
桌子
-0.374
上
-0.937
?
0.0
[SEP]
-0.059
当
-0.049
我
0.026
回家
0.032
时
0.013
今天
-0.0
我
-0.137
看到
-0.078
我的
-0.254
猫
-0.25
在
-0.05
桌子
-0.037
上
-0.126
,
-0.182
和
-0.094
我的
-0.086
青蛙
-0.233 / 3
在地板上
-0.108
.
0.0
输入
0.0
1.481
什么
-0.906
是
-0.26
在
-0.508
桌子
-0.669
上
-2.177
?
0.0
[SEP]
-0.043
当
-0.033
我
0.076
回家
0.082
时
0.164
今天
0.139
我
-0.146
看到
-0.009
我的
-0.236
猫
-0.237
在
-0.02
桌子
-0.027
上
-0.044
,
-0.338
和
-0.226
我的
-0.282
青蛙
-0.185 / 3
在地板上
-0.047
.
0.0
输入
0.0
1.481
什么
-0.906
是
-0.26
在
-0.508
桌子
-0.669
上
-2.177
?
0.0
[SEP]
-0.043
当
-0.033
我
0.076
回家
0.082
时
0.164
今天
0.139
我
-0.146
看到
-0.009
我的
-0.236
猫
-0.237
在
-0.02
桌子
-0.027
上
-0.044
,
-0.338
和
-0.226
我的
-0.282
青蛙
-0.185 / 3
在地板上
-0.047
.
0.0
输入
0.0
0.282
什么
-0.845
是
0.186
在
-0.412
桌子
-0.405
上
-1.745
?
0.0
[SEP]
-0.026
当
-0.016
我
0.106
回家
0.109
时
0.213
今天
0.187
我
-0.068
看到
0.065
我的
-0.246
猫
-0.253
在
0.002
桌子
-0.013
上
-0.046
,
-0.442
和
-0.211
我的
-0.26
青蛙
-0.265 / 3
在地板上
-0.136
.
0.0
输入
0.0
0.282
什么
-0.845
是
0.186
在
-0.412
桌子
-0.405
上
-1.745
?
0.0
[SEP]
-0.026
当
-0.016
我
0.106
回家
0.109
时
0.213
今天
0.187
我
-0.068
看到
0.065
我的
-0.246
猫
-0.253
在
0.002
桌子
-0.013
上
-0.046
,
-0.442
和
-0.211
我的
-0.26
青蛙
-0.265 / 3
在地板上
-0.136
.
0.0
输入
0.0
0.462
什么
0.153
是
0.352
在
-0.81
桌子
-0.447
上
-2.052
?
0.0
[SEP]
-0.01
当
-0.0
我
0.136
回家
0.142
时
0.18
今天
0.158
我
-0.098
看到
0.022
我的
-0.358
猫
-0.402
在
-0.183
桌子
-0.245
上
-0.035
,
-0.354
和
-0.24
我的
-0.269
青蛙
-0.343 / 3
在地板上
-0.184
.
0.0
输入
0.0
0.462
什么
0.153
是
0.352
在
-0.81
桌子
-0.447
上
-2.052
?
0.0
[SEP]
-0.01
当
-0.0
我
0.136
回家
0.142
时
0.18
今天
0.158
我
-0.098
看到
0.022
我的
-0.358
猫
-0.402
在
-0.183
桌子
-0.245
上
-0.035
,
-0.354
和
-0.24
我的
-0.269
青蛙
-0.343 / 3
在地板上
-0.184
.
0.0
输入
0.0
0.545
什么
-0.584
是
0.457
在
0.117
桌子
-0.773
上
-2.561
?
0.0
[SEP]
-0.036
当
-0.023
我
0.137
回家
0.142
时
0.165
今天
0.144
我
-0.141
看到
-0.019
我的
-0.27
猫
-0.291
在
-0.23
桌子
-0.287
上
-0.011
,
-0.32
和
-0.265
我的
-0.266
青蛙
-0.232 / 3
在地板上
-0.063
.
0.0
输入
0.0
0.545
什么
-0.584
是
0.457
在
0.117
桌子
-0.773
上
-2.561
?
0.0
[SEP]
-0.036
当
-0.023
我
0.137
回家
0.142
时
0.165
今天
0.144
我
-0.141
看到
-0.019
我的
-0.27
猫
-0.291
在
-0.23
桌子
-0.287
上
-0.011
,
-0.32
和
-0.265
我的
-0.266
青蛙
-0.232 / 3
在地板上
-0.063
.
0.0
输入
0.0
0.441
什么
-0.508
是
-0.307
在
0.383
桌子
0.25
上
-2.004
?
0.0
[SEP]
-0.067
当
-0.056
我
0.082
回家
0.091
时
0.14
今天
0.117
我
-0.176
看到
-0.045
我的
-0.185
猫
-0.199
在
-0.135
桌子
-0.206
上
-0.009
,
-0.315
和
-0.259
我的
-0.257
青蛙
-0.289 / 3
在地板上
-0.121
.
0.0
输入
0.0
0.441
什么
-0.508
是
-0.307
在
0.383
桌子
0.25
上
-2.004
?
0.0
[SEP]
-0.067
当
-0.056
我
0.082
回家
0.091
时
0.14
今天
0.117
我
-0.176
看到
-0.045
我的
-0.185
猫
-0.199
在
-0.135
桌子
-0.206
上
-0.009
,
-0.315
和
-0.259
我的
-0.257
青蛙
-0.289 / 3
在地板上
-0.121
.
0.0
输入
0.0
0.612
什么
-0.902
是
-0.073
在
-0.194
桌子
-0.913
上
3.542
?
0.0
[SEP]
-0.095
当
-0.09
我
0.072
回家
0.083
时
0.061
今天
0.041
我
-0.151
看到
-0.046
我的
-0.268
猫
-0.275
在
0.014
桌子
0.043
上
-0.127
,
-0.431
和
-0.229
我的
-0.222
青蛙
-0.329 / 3
在地板上
-0.127
.
0.0
输入
0.0
0.612
什么
-0.902
是
-0.073
在
-0.194
桌子
-0.913
上
3.542
?
0.0
[SEP]
-0.095
当
-0.09
我
0.072
回家
0.083
时
0.061
今天
0.041
我
-0.151
看到
-0.046
我的
-0.268
猫
-0.275
在
0.014
桌子
0.043
上
-0.127
,
-0.431
和
-0.229
我的
-0.222
青蛙
-0.329 / 3
在地板上
-0.127
.
0.0
输入
0.0
1.155
什么
-0.141
是
0.108
在
0.293
桌子
-0.469
上
-0.653
?
0.0
[SEP]
-0.027
当
-0.011
我
0.072
回家
0.094
时
0.064
今天
0.046
我
-0.187
看到
-0.074
我的
-0.224
猫
-0.214
在
0.156
桌子
0.187
上
-0.01
,
-0.085
和
-0.058
我的
-0.122
青蛙
-0.02 / 3
在地板上
0.068
.
0.0
输入
0.0
1.155
什么
-0.141
是
0.108
在
0.293
桌子
-0.469
上
-0.653
?
0.0
[SEP]
-0.027
当
-0.011
我
0.072
回家
0.094
时
0.064
今天
0.046
我
-0.187
看到
-0.074
我的
-0.224
猫
-0.214
在
0.156
桌子
0.187
上
-0.01
,
-0.085
和
-0.058
我的
-0.122
青蛙
-0.02 / 3
在地板上
0.068
.
0.0
输入
0.0
0.905
什么
0.193
是
-0.006
在
0.464
桌子
0.012
上
0.71
?
0.0
[SEP]
-0.366
当
-0.443
我
-0.502
回家
-0.454
时
-0.37
今天
-0.354
我
-0.146
看到
-0.096
我的
-0.396
猫
-0.351
在
0.405
桌子
0.485
上
-0.148
,
-0.286
和
-0.133
我的
-0.16
青蛙
0.13 / 3
在地板上
0.149
.
0.0
输入
0.0
0.905
什么
0.193
是
-0.006
在
0.464
桌子
0.012
上
0.71
?
0.0
[SEP]
-0.366
当
-0.443
我
-0.502
回家
-0.454
时
-0.37
今天
-0.354
我
-0.146
看到
-0.096
我的
-0.396
猫
-0.351
在
0.405
桌子
0.485
上
-0.148
,
-0.286
和
-0.133
我的
-0.16
青蛙
0.13 / 3
在地板上
0.149
.
0.0
输入
0.0
0.78
什么
0.145
是
0.048
在
0.458
桌子
-0.114
上
-0.289
?
0.0
[SEP]
0.128
当
0.047
我
-0.309
回家
-0.273
时
-0.579
今天
-0.55
我
-0.079
看到
-0.008
我的
-0.304
猫
-0.269
在
0.327
桌子
0.401
上
-0.081
,
-0.266
和
-0.076
我的
-0.125
青蛙
0.057 / 3
在地板上
0.081
.
0.0
输入
0.0
0.78
什么
0.145
是
0.048
在
0.458
桌子
-0.114
上
-0.289
?
0.0
[SEP]
0.128
当
0.047
我
-0.309
回家
-0.273
时
-0.579
今天
-0.55
我
-0.079
看到
-0.008
我的
-0.304
猫
-0.269
在
0.327
桌子
0.401
上
-0.081
,
-0.266
和
-0.076
我的
-0.125
青蛙
0.057 / 3
在地板上
0.081
.
0.0
输入
0.0
0.711
什么
0.021
是
0.116
在
0.372
桌子
-0.16
上
-0.2
?
0.0
[SEP]
-0.666
当
-0.716
我
-0.439
回家
-0.402
时
-0.681
今天
-0.646
我
-0.035
看到
0.02
我的
-0.321
猫
-0.268
在
0.358
桌子
0.43
上
-0.099
,
-0.299
和
-0.076
我的
-0.096
青蛙
0.092 / 3
在地板上
0.107
.
0.0
输入
0.0
0.711
什么
0.021
是
0.116
在
0.372
桌子
-0.16
上
-0.2
?
0.0
[SEP]
-0.666
当
-0.716
我
-0.439
回家
-0.402
时
-0.681
今天
-0.646
我
-0.035
看到
0.02
我的
-0.321
猫
-0.268
在
0.358
桌子
0.43
上
-0.099
,
-0.299
和
-0.076
我的
-0.096
青蛙
0.092 / 3
在地板上
0.107
.
0.0
输入
0.0
0.652
什么
-0.084
是
0.176
在
0.351
桌子
-0.2
上
-0.237
?
0.0
[SEP]
-0.236
当
-0.166
我
-0.558
回家
-0.474
时
-0.872
今天
-0.834
我
-0.089
看到
-0.023
我的
-0.294
猫
-0.242
在
0.335
桌子
0.409
上
-0.094
,
-0.309
和
-0.074
我的
-0.1
青蛙
0.083 / 3
在地板上
0.097
.
0.0
输入
0.0
0.652
什么
-0.084
是
0.176
在
0.351
桌子
-0.2
上
-0.237
?
0.0
[SEP]
-0.236
当
-0.166
我
-0.558
回家
-0.474
时
-0.872
今天
-0.834
我
-0.089
看到
-0.023
我的
-0.294
猫
-0.242
在
0.335
桌子
0.409
上
-0.094
,
-0.309
和
-0.074
我的
-0.1
青蛙
0.083 / 3
在地板上
0.097
.
0.0
输入
0.0
0.74
什么
-0.071
是
0.18
在
0.301
桌子
-0.336
上
-0.371
?
0.0
[SEP]
-0.051
当
0.024
我
0.159
回家
0.063
时
-0.734
今天
-0.749
我
-0.438
看到
-0.39
我的
-0.256
猫
-0.196
在
0.334
桌子
0.43
上
-0.09
,
-0.295
和
-0.069
我的
-0.108
青蛙
0.072 / 3
在地板上
0.078
.
0.0
输入
0.0
0.74
什么
-0.071
是
0.18
在
0.301
桌子
-0.336
上
-0.371
?
0.0
[SEP]
-0.051
当
0.024
我
0.159
回家
0.063
时
-0.734
今天
-0.749
我
-0.438
看到
-0.39
我的
-0.256
猫
-0.196
在
0.334
桌子
0.43
上
-0.09
,
-0.295
和
-0.069
我的
-0.108
青蛙
0.072 / 3
在地板上
0.078
.
0.0
输入
0.0
1.001
什么
0.188
是
-0.058
在
0.318
桌子
-0.229
上
-0.556
?
0.0
[SEP]
0.061
当
0.111
我
0.64
回家
0.598
时
0.026
今天
0.118
我
-0.883
看到
-0.964
我的
-0.193
猫
-0.147
在
0.311
桌子
0.426
上
-0.058
,
-0.219
和
-0.124
我的
-0.156
青蛙
-0.012 / 3
在地板上
0.03
.
0.0
输入
0.0
1.001
什么
0.188
是
-0.058
在
0.318
桌子
-0.229
上
-0.556
?
0.0
[SEP]
0.061
当
0.111
我
0.64
回家
0.598
时
0.026
今天
0.118
我
-0.883
看到
-0.964
我的
-0.193
猫
-0.147
在
0.311
桌子
0.426
上
-0.058
,
-0.219
和
-0.124
我的
-0.156
青蛙
-0.012 / 3
在地板上
0.03
.
0.0
输入
0.0
1.034
什么
0.103
是
0.008
在
0.274
桌子
-0.221
上
-0.361
?
0.0
[SEP]
0.042
当
0.065
我
0.533
回家
0.523
时
-0.572
今天
-0.976
我
-0.696
看到
-0.761
我的
-0.188
猫
-0.114
在
0.271
桌子
0.382
上
-0.089
,
-0.362
和
-0.15
我的
-0.182
青蛙
0.078 / 3
在地板上
0.104
.
0.0
输入
0.0
1.034
什么
0.103
是
0.008
在
0.274
桌子
-0.221
上
-0.361
?
0.0
[SEP]
0.042
当
0.065
我
0.533
回家
0.523
时
-0.572
今天
-0.976
我
-0.696
看到
-0.761
我的
-0.188
猫
-0.114
在
0.271
桌子
0.382
上
-0.089
,
-0.362
和
-0.15
我的
-0.182
青蛙
0.078 / 3
在地板上
0.104
.
0.0
输入
0.0
1.598
什么
-0.373
是
0.316
在
0.34
桌子
0.729
上
0.391
?
0.0
[SEP]
0.171
当
0.168
我
0.435
回家
0.445
时
0.481
今天
0.391
我
0.396
看到
0.553
我的
0.31
猫
0.347
在
0.226
桌子
0.4
上
-0.057
,
-0.206
和
-0.072
我的
-0.14
青蛙
0.214 / 3
在地板上
0.205
.
0.0
输入
0.0
1.598
什么
-0.373
是
0.316
在
0.34
桌子
0.729
上
0.391
?
0.0
[SEP]
0.171
当
0.168
我
0.435
回家
0.445
时
0.481
今天
0.391
我
0.396
看到
0.553
我的
0.31
猫
0.347
在
0.226
桌子
0.4
上
-0.057
,
-0.206
和
-0.072
我的
-0.14
青蛙
0.214 / 3
在地板上
0.205
.
0.0
输入
0.0
1.125
什么
-0.534
是
0.506
在
0.446
桌子
0.669
上
0.515
?
0.0
[SEP]
0.089
当
0.09
我
0.217
回家
0.237
时
0.521
今天
0.495
我
0.108
看到
0.285
我的
1.1
猫
0.873
在
-0.134
桌子
0.164
上
-0.026
,
-0.134
和
0.003
我的
-0.105
青蛙
0.207 / 3
在地板上
0.163
.
0.0
输入
0.0
1.125
什么
-0.534
是
0.506
在
0.446
桌子
0.669
上
0.515
?
0.0
[SEP]
0.089
当
0.09
我
0.217
回家
0.237
时
0.521
今天
0.495
我
0.108
看到
0.285
我的
1.1
猫
0.873
在
-0.134
桌子
0.164
上
-0.026
,
-0.134
和
0.003
我的
-0.105
青蛙
0.207 / 3
在地板上
0.163
.
0.0
输入
0.0
0.989
什么
-0.005
是
0.321
在
0.269
桌子
-0.26
上
0.063
?
0.0
[SEP]
0.042
当
0.054
我
0.144
回家
0.141
时
0.222
今天
0.181
我
-0.221
看到
-0.137
我的
-0.793
猫
-0.661
在
-0.727
桌子
-0.545
上
-0.41
,
-0.282
和
-0.164
我的
-0.208
青蛙
0.056 / 3
在地板上
0.088
.
0.0
输入
0.0
0.989
什么
-0.005
是
0.321
在
0.269
桌子
-0.26
上
0.063
?
0.0
[SEP]
0.042
当
0.054
我
0.144
回家
0.141
时
0.222
今天
0.181
我
-0.221
看到
-0.137
我的
-0.793
猫
-0.661
在
-0.727
桌子
-0.545
上
-0.41
,
-0.282
和
-0.164
我的
-0.208
青蛙
0.056 / 3
在地板上
0.088
.
0.0
输入
0.0
0.908
什么
0.063
是
0.613
在
0.117
桌子
-0.624
上
-0.131
?
0.0
[SEP]
0.034
当
0.05
我
0.166
回家
0.169
时
0.264
今天
0.234
我
-0.184
看到
-0.088
我的
-0.872
猫
-1.065
在
-0.654
桌子
-0.768
上
-0.755
,
-0.218
和
-0.178
我的
-0.237
青蛙
0.123 / 3
在地板上
0.155
.
0.0
输入
0.0
0.908
什么
0.063
是
0.613
在
0.117
桌子
-0.624
上
-0.131
?
0.0
[SEP]
0.034
当
0.05
我
0.166
回家
0.169
时
0.264
今天
0.234
我
-0.184
看到
-0.088
我的
-0.872
猫
-1.065
在
-0.654
桌子
-0.768
上
-0.755
,
-0.218
和
-0.178
我的
-0.237
青蛙
0.123 / 3
在地板上
0.155
.
0.0
输入
0.0
0.744
什么
-0.075
是
0.448
在
0.325
桌子
-0.393
上
0.043
?
0.0
[SEP]
0.015
当
0.026
我
0.102
回家
0.109
时
0.194
今天
0.173
我
-0.16
看到
-0.038
我的
-0.804
猫
-1.023
在
-0.118
桌子
-0.281
上
-0.777
,
-0.494
和
-0.147
我的
-0.196
青蛙
0.143 / 3
在地板上
0.142
.
0.0
输入
0.0
0.744
什么
-0.075
是
0.448
在
0.325
桌子
-0.393
上
0.043
?
0.0
[SEP]
0.015
当
0.026
我
0.102
回家
0.109
时
0.194
今天
0.173
我
-0.16
看到
-0.038
我的
-0.804
猫
-1.023
在
-0.118
桌子
-0.281
上
-0.777
,
-0.494
和
-0.147
我的
-0.196
青蛙
0.143 / 3
在地板上
0.142
.
0.0
输入
0.0
0.895
什么
-0.047
是
0.272
在
0.194
桌子
0.018
上
0.022
?
0.0
[SEP]
0.019
当
0.028
我
0.148
回家
0.156
时
0.167
今天
0.14
我
-0.158
看到
-0.083
我的
-0.472
猫
-0.49
在
-0.041
桌子
0.026
上
-2.996
,
-1.142
和
-0.233
我的
-0.215
青蛙
0.063 / 3
在地板上
0.144
.
0.0
输入
0.0
0.895
什么
-0.047
是
0.272
在
0.194
桌子
0.018
上
0.022
?
0.0
[SEP]
0.019
当
0.028
我
0.148
回家
0.156
时
0.167
今天
0.14
我
-0.158
看到
-0.083
我的
-0.472
猫
-0.49
在
-0.041
桌子
0.026
上
-2.996
,
-1.142
和
-0.233
我的
-0.215
青蛙
0.063 / 3
在地板上
0.144
.
0.0
输入
0.0
1.233
什么
0.025
是
0.2
在
0.107
桌子
-0.189
上
0.113
?
0.0
[SEP]
0.095
当
0.103
我
0.22
回家
0.213
时
0.17
今天
0.183
我
-0.057
看到
-0.081
我的
-0.425
猫
-0.41
在
0.227
桌子
0.42
上
0.368
,
-3.409
和
-0.45
我的
-0.307
青蛙
-0.188 / 3
在地板上
-0.009
.
0.0
输入
0.0
1.233
什么
0.025
是
0.2
在
0.107
桌子
-0.189
上
0.113
?
0.0
[SEP]
0.095
当
0.103
我
0.22
回家
0.213
时
0.17
今天
0.183
我
-0.057
看到
-0.081
我的
-0.425
猫
-0.41
在
0.227
桌子
0.42
上
0.368
,
-3.409
和
-0.45
我的
-0.307
青蛙
-0.188 / 3
在地板上
-0.009
.
0.0
输入
0.0
1.235
什么
-0.24
是
0.124
在
-0.09
桌子
-0.719
上
0.438
?
0.0
[SEP]
0.067
当
0.087
我
0.312
回家
0.282
时
0.175
今天
0.204
我
-0.051
看到
-0.11
我的
-0.156
猫
-0.098
在
0.195
桌子
0.238
上
-0.13
,
1.735
和
0.41
我的
0.677
青蛙
-0.027 / 3
在地板上
0.188
.
0.0
输入
0.0
1.235
什么
-0.24
是
0.124
在
-0.09
桌子
-0.719
上
0.438
?
0.0
[SEP]
0.067
当
0.087
我
0.312
回家
0.282
时
0.175
今天
0.204
我
-0.051
看到
-0.11
我的
-0.156
猫
-0.098
在
0.195
桌子
0.238
上
-0.13
,
1.735
和
0.41
我的
0.677
青蛙
-0.027 / 3
在地板上
0.188
.
0.0
输入
0.0
0.971
什么
-0.307
是
0.256
在
-0.021
桌子
-0.886
上
0.579
?
0.0
[SEP]
0.122
当
0.163
我
0.335
回家
0.31
时
0.226
今天
0.253
我
0.003
看到
-0.028
我的
-0.131
猫
-0.078
在
0.005
桌子
-0.005
上
0.032
,
0.03
和
1.392
我的
1.712
青蛙
-0.116 / 3
在地板上
0.199
.
0.0
输入
0.0
0.971
什么
-0.307
是
0.256
在
-0.021
桌子
-0.886
上
0.579
?
0.0
[SEP]
0.122
当
0.163
我
0.335
回家
0.31
时
0.226
今天
0.253
我
0.003
看到
-0.028
我的
-0.131
猫
-0.078
在
0.005
桌子
-0.005
上
0.032
,
0.03
和
1.392
我的
1.712
青蛙
-0.116 / 3
在地板上
0.199
.
0.0
输入
0.0
0.838
什么
0.505
是
0.316
在
0.108
桌子
-0.827
上
0.255
?
0.0
[SEP]
0.075
当
0.098
我
0.274
回家
0.254
时
0.205
今天
0.224
我
0.067
看到
0.03
我的
-0.333
猫
-0.325
在
0.003
桌子
0.019
上
-0.203
,
-0.249
和
-0.446
我的
-0.53
青蛙
-0.3 / 3
在地板上
0.135
.
0.0
输入
0.0
0.838
什么
0.505
是
0.316
在
0.108
桌子
-0.827
上
0.255
?
0.0
[SEP]
0.075
当
0.098
我
0.274
回家
0.254
时
0.205
今天
0.224
我
0.067
看到
0.03
我的
-0.333
猫
-0.325
在
0.003
桌子
0.019
上
-0.203
,
-0.249
和
-0.446
我的
-0.53
青蛙
-0.3 / 3
在地板上
0.135
.
0.0
输入
0.0
0.911
什么
0.514
是
0.499
在
-0.044
桌子
-0.882
上
0.21
?
0.0
[SEP]
0.048
当
0.073
我
0.243
回家
0.226
时
0.176
今天
0.199
我
0.053
看到
0.01
我的
-0.219
猫
-0.181
在
-0.107
桌子
-0.091
上
-0.001
,
-0.301
和
-0.206
我的
-0.364
青蛙
-0.558 / 3
在地板上
-0.118
.
0.0
输入
0.0
0.911
什么
0.514
是
0.499
在
-0.044
桌子
-0.882
上
0.21
?
0.0
[SEP]
0.048
当
0.073
我
0.243
回家
0.226
时
0.176
今天
0.199
我
0.053
看到
0.01
我的
-0.219
猫
-0.181
在
-0.107
桌子
-0.091
上
-0.001
,
-0.301
和
-0.206
我的
-0.364
青蛙
-0.558 / 3
在地板上
-0.118
.
0.0
输入
0.0
0.819
什么
0.245
是
0.273
在
-0.003
桌子
-0.431
上
0.246
?
0.0
[SEP]
-0.017
当
-0.001
我
0.143
回家
0.137
时
0.077
今天
0.095
我
-0.036
看到
-0.064
我的
-0.21
猫
-0.191
在
-0.054
桌子
-0.025
上
-0.122
,
-0.308
和
-0.17
我的
-0.274
青蛙
-0.052 / 3
在地板上
0.23
.
0.0
输入
0.0
0.819
什么
0.245
是
0.273
在
-0.003
桌子
-0.431
上
0.246
?
0.0
[SEP]
-0.017
当
-0.001
我
0.143
回家
0.137
时
0.077
今天
0.095
我
-0.036
看到
-0.064
我的
-0.21
猫
-0.191
在
-0.054
桌子
-0.025
上
-0.122
,
-0.308
和
-0.17
我的
-0.274
青蛙
-0.052 / 3
在地板上
0.23
.
0.0
输入
0.0
0.753
什么
-0.243
是
-0.058
在
-0.052
桌子
-0.61
上
0.038
?
0.0
[SEP]
-0.035
当
-0.029
我
0.153
回家
0.149
时
0.109
今天
0.103
我
-0.027
看到
-0.017
我的
-0.214
猫
-0.208
在
-0.039
桌子
0.015
上
-0.32
,
-0.345
和
-0.126
我的
-0.078
青蛙
0.161 / 3
在地板上
0.78
.
0.0
输入
0.0
0.753
什么
-0.243
是
-0.058
在
-0.052
桌子
-0.61
上
0.038
?
0.0
[SEP]
-0.035
当
-0.029
我
0.153
回家
0.149
时
0.109
今天
0.103
我
-0.027
看到
-0.017
我的
-0.214
猫
-0.208
在
-0.039
桌子
0.015
上
-0.32
,
-0.345
和
-0.126
我的
-0.078
青蛙
0.161 / 3
在地板上
0.78
.
0.0
输入
0.0
1.155
什么
-0.141
是
0.108
在
0.293
桌子
-0.469
上
-0.653
?
0.0
[SEP]
-0.027
当
-0.011
我
0.072
回家
0.094
时
0.064
今天
0.046
我
-0.187
看到
-0.074
我的
-0.224
猫
-0.214
在
0.156
桌子
0.187
上
-0.01
,
-0.085
和
-0.058
我的
-0.122
青蛙
-0.02 / 3
在地板上
0.068
.
0.0
输入
0.0
1.155
什么
-0.141
是
0.108
在
0.293
桌子
-0.469
上
-0.653
?
0.0
[SEP]
-0.027
当
-0.011
我
0.072
回家
0.094
时
0.064
今天
0.046
我
-0.187
看到
-0.074
我的
-0.224
猫
-0.214
在
0.156
桌子
0.187
上
-0.01
,
-0.085
和
-0.058
我的
-0.122
青蛙
-0.02 / 3
在地板上
0.068
.
0.0
解释结束位置
这与上面的过程相同,但现在我们解释结束 tokens。
[3]:
explainer_end = shap.Explainer(f_end, pmodel.tokenizer)
shap_values_end = explainer_end(data)
shap.plots.text(shap_values_end)
[0]
输出
[CLS]
什么
是
在
桌子
上
?
[SEP]
当
我
回家
时
今天
我
看到
我的
猫
在
桌子
上
,
和
我的
青蛙
在
桌子
地板
.
[SEP]
输入
0.129
0.424
什么
-0.093
是
0.069
在
0.231
桌子
-0.126
上
-0.635
?
0.0
[SEP]
0.215 / 2
当我
0.233 / 2
回家
0.21 / 4
时今天我看到了我的
-0.292 / 2
桌子上的猫
-0.068 / 2
在桌子上
-0.119
,
-0.217
和
-0.221 / 2
我的青蛙
-0.159 / 3
在地板上
-0.018
.
0.0
输入
0.129
0.424
什么
-0.093
是
0.069
在
0.231
桌子
-0.126
上
-0.635
?
0.0
[SEP]
0.215 / 2
当我
0.233 / 2
回家
0.21 / 4
时今天我看到了我的
-0.292 / 2
桌子上的猫
-0.068 / 2
在桌子上
-0.119
,
-0.217
和
-0.221 / 2
我的青蛙
-0.159 / 3
在地板上
-0.018
.
0.0
输入
0.207
0.528
什么
0.834
是
0.027
在
0.456
桌子
0.173
上
-1.203
?
0.0
[SEP]
0.3 / 2
当我
0.341 / 2
回家
0.729 / 4
时今天我看到了我的
-0.048 / 2
桌子上的猫
0.121 / 2
在桌子上
-0.022
,
-0.319
和
-0.328 / 2
我的青蛙
0.09 / 3
在地板上
0.145
.
0.0
输入
0.207
0.528
什么
0.834
是
0.027
在
0.456
桌子
0.173
上
-1.203
?
0.0
[SEP]
0.3 / 2
当我
0.341 / 2
回家
0.729 / 4
时今天我看到了我的
-0.048 / 2
桌子上的猫
0.121 / 2
在桌子上
-0.022
,
-0.319
和
-0.328 / 2
我的青蛙
0.09 / 3
在地板上
0.145
.
0.0
输入
0.082
0.218
什么
-1.307
是
0.333
在
0.608
桌子
-0.02
上
-1.25
?
0.0
[SEP]
0.292 / 2
当我
0.347 / 2
回家
0.659 / 4
时今天我看到了我的
-0.166 / 2
桌子上的猫
0.079 / 2
在桌子上
0.01
,
-0.385
和
-0.39 / 2
我的青蛙
-0.038 / 3
在地板上
0.036
.
0.0
输入
0.082
0.218
什么
-1.307
是
0.333
在
0.608
桌子
-0.02
上
-1.25
?
0.0
[SEP]
0.292 / 2
当我
0.347 / 2
回家
0.659 / 4
时今天我看到了我的
-0.166 / 2
桌子上的猫
0.079 / 2
在桌子上
0.01
,
-0.385
和
-0.39 / 2
我的青蛙
-0.038 / 3
在地板上
0.036
.
0.0
输入
0.099
0.288
什么
-0.265
是
-0.295
在
-0.833
桌子
-0.442
上
-1.202
?
0.0
[SEP]
0.259 / 2
当我
0.333 / 2
回家
0.578 / 4
时今天我看到了我的
-0.387 / 2
桌子上的猫
-0.304 / 2
在桌子上
-0.004
,
-0.424
和
-0.435 / 2
我的青蛙
-0.188 / 3
在地板上
-0.059
.
0.0
输入
0.099
0.288
什么
-0.265
是
-0.295
在
-0.833
桌子
-0.442
上
-1.202
?
0.0
[SEP]
0.259 / 2
当我
0.333 / 2
回家
0.578 / 4
时今天我看到了我的
-0.387 / 2
桌子上的猫
-0.304 / 2
在桌子上
-0.004
,
-0.424
和
-0.435 / 2
我的青蛙
-0.188 / 3
在地板上
-0.059
.
0.0
输入
0.116
0.32
什么
-0.485
是
-0.085
在
-0.918
桌子
-1.042
上
-1.037
?
0.0
[SEP]
0.219 / 2
当我
0.305 / 2
回家
0.478 / 4
时今天我看到了我的
-0.319 / 2
桌子上的猫
-0.302 / 2
在桌子上
-0.067
,
-0.484
和
-0.499 / 2
我的青蛙
-0.224 / 3
在地板上
-0.061
.
0.0
输入
0.116
0.32
什么
-0.485
是
-0.085
在
-0.918
桌子
-1.042
上
-1.037
?
0.0
[SEP]
0.219 / 2
当我
0.305 / 2
回家
0.478 / 4
时今天我看到了我的
-0.319 / 2
桌子上的猫
-0.302 / 2
在桌子上
-0.067
,
-0.484
和
-0.499 / 2
我的青蛙
-0.224 / 3
在地板上
-0.061
.
0.0
输入
0.131
0.306
什么
-0.566
是
-0.201
在
-0.521
桌子
0.85
上
-1.723
?
0.0
[SEP]
0.325 / 2
当我
0.389 / 2
回家
0.6 / 4
时今天我看到了我的
-0.265 / 2
桌子上的猫
-0.416 / 2
在桌子上
-0.074
,
-0.397
和
-0.413 / 2
我的青蛙
-0.318 / 3
在地板上
-0.098
.
0.0
输入
0.131
0.306
什么
-0.566
是
-0.201
在
-0.521
桌子
0.85
上
-1.723
?
0.0
[SEP]
0.325 / 2
当我
0.389 / 2
回家
0.6 / 4
时今天我看到了我的
-0.265 / 2
桌子上的猫
-0.416 / 2
在桌子上
-0.074
,
-0.397
和
-0.413 / 2
我的青蛙
-0.318 / 3
在地板上
-0.098
.
0.0
输入
0.109
0.35
什么
-0.735
是
-0.215
在
-0.59
桌子
-1.159
上
1.133
?
0.0
[SEP]
-0.036 / 2
当我
0.002 / 2
回家
-0.125 / 4
时今天我看到了我的
-0.402 / 2
桌子上的猫
-0.328 / 2
在桌子上
-0.267
,
-0.477
和
-0.484 / 2
我的青蛙
-0.388 / 3
在地板上
-0.107
.
0.0
输入
0.109
0.35
什么
-0.735
是
-0.215
在
-0.59
桌子
-1.159
上
1.133
?
0.0
[SEP]
-0.036 / 2
当我
0.002 / 2
回家
-0.125 / 4
时今天我看到了我的
-0.402 / 2
桌子上的猫
-0.328 / 2
在桌子上
-0.267
,
-0.477
和
-0.484 / 2
我的青蛙
-0.388 / 3
在地板上
-0.107
.
0.0
输入
0.322
0.95
什么
0.246
是
-0.095
在
0.389
桌子
-0.156
上
-0.878
?
0.0
[SEP]
0.198 / 2
当我
0.162 / 2
回家
-0.235 / 4
时今天我看到了我的
-0.451 / 2
桌子上的猫
0.213 / 2
在桌子上
-0.12
,
-0.368
和
-0.38 / 2
我的青蛙
0.013 / 3
在地板上
0.112
.
0.0
输入
0.322
0.95
什么
0.246
是
-0.095
在
0.389
桌子
-0.156
上
-0.878
?
0.0
[SEP]
0.198 / 2
当我
0.162 / 2
回家
-0.235 / 4
时今天我看到了我的
-0.451 / 2
桌子上的猫
0.213 / 2
在桌子上
-0.12
,
-0.368
和
-0.38 / 2
我的青蛙
0.013 / 3
在地板上
0.112
.
0.0
输入
0.186
0.494
什么
0.286
是
-0.018
在
0.378
桌子
0.192
上
-0.518
?
0.0
[SEP]
-1.257 / 2
当我
-1.011 / 2
回家
-1.252 / 4
时今天我看到了我的
-0.226 / 2
桌子上的猫
0.439 / 2
在桌子上
-0.094
,
-0.204
和
-0.202 / 2
我的青蛙
0.237 / 3
在地板上
0.256
.
0.0
输入
0.186
0.494
什么
0.286
是
-0.018
在
0.378
桌子
0.192
上
-0.518
?
0.0
[SEP]
-1.257 / 2
当我
-1.011 / 2
回家
-1.252 / 4
时今天我看到了我的
-0.226 / 2
桌子上的猫
0.439 / 2
在桌子上
-0.094
,
-0.204
和
-0.202 / 2
我的青蛙
0.237 / 3
在地板上
0.256
.
0.0
输入
0.184
0.487
什么
0.252
是
0.006
在
0.451
桌子
0.026
上
-0.108
?
0.0
[SEP]
-0.905 / 2
当我
-0.563 / 2
回家
-1.16 / 4
时今天我看到了我的
-0.241 / 2
桌子上的猫
0.565 / 2
在桌子上
-0.019
,
-0.176
和
-0.169 / 2
我的青蛙
0.212 / 3
在地板上
0.223
.
0.0
输入
0.184
0.487
什么
0.252
是
0.006
在
0.451
桌子
0.026
上
-0.108
?
0.0
[SEP]
-0.905 / 2
当我
-0.563 / 2
回家
-1.16 / 4
时今天我看到了我的
-0.241 / 2
桌子上的猫
0.565 / 2
在桌子上
-0.019
,
-0.176
和
-0.169 / 2
我的青蛙
0.212 / 3
在地板上
0.223
.
0.0
输入
0.193
0.503
什么
0.303
是
0.083
在
0.428
桌子
0.002
上
-0.341
?
0.0
[SEP]
-2.325 / 2
当我
-2.368 / 2
回家
-0.787 / 4
时今天我看到了我的
-0.229 / 2
桌子上的猫
0.651 / 2
在桌子上
0.0
,
-0.192
和
-0.189 / 2
我的青蛙
0.238 / 3
在地板上
0.244
.
0.0
输入
0.193
0.503
什么
0.303
是
0.083
在
0.428
桌子
0.002
上
-0.341
?
0.0
[SEP]
-2.325 / 2
当我
-2.368 / 2
回家
-0.787 / 4
时今天我看到了我的
-0.229 / 2
桌子上的猫
0.651 / 2
在桌子上
0.0
,
-0.192
和
-0.189 / 2
我的青蛙
0.238 / 3
在地板上
0.244
.
0.0
输入
0.167
0.424
什么
0.386
是
0.023
在
0.462
桌子
0.002
上
-0.681
?
0.0
[SEP]
-0.282 / 2
当我
-0.187 / 2
回家
-0.723 / 4
时今天我看到了我的
-0.365 / 2
桌子上的猫
0.642 / 2
在桌子上
0.014
,
-0.18
和
-0.181 / 2
我的青蛙
0.232 / 3
在地板上
0.219
.
0.0
输入
0.167
0.424
什么
0.386
是
0.023
在
0.462
桌子
0.002
上
-0.681
?
0.0
[SEP]
-0.282 / 2
当我
-0.187 / 2
回家
-0.723 / 4
时今天我看到了我的
-0.365 / 2
桌子上的猫
0.642 / 2
在桌子上
0.014
,
-0.18
和
-0.181 / 2
我的青蛙
0.232 / 3
在地板上
0.219
.
0.0
输入
0.197
0.516
什么
0.392
是
0.007
在
0.44
桌子
-0.066
上
-0.611
?
0.0
[SEP]
-0.403 / 2
当我
-0.508 / 2
回家
0.436 / 4
时今天我看到了我的
-0.298 / 2
桌子上的猫
0.65 / 2
在桌子上
-0.023
,
-0.134
和
-0.139 / 2
我的青蛙
0.254 / 3
在地板上
0.237
.
0.0
输入
0.197
0.516
什么
0.392
是
0.007
在
0.44
桌子
-0.066
上
-0.611
?
0.0
[SEP]
-0.403 / 2
当我
-0.508 / 2
回家
0.436 / 4
时今天我看到了我的
-0.298 / 2
桌子上的猫
0.65 / 2
在桌子上
-0.023
,
-0.134
和
-0.139 / 2
我的青蛙
0.254 / 3
在地板上
0.237
.
0.0
输入
0.217
0.556
什么
0.199
是
-0.041
在
0.405
桌子
-0.067
上
-0.167
?
0.0
[SEP]
-0.273 / 2
当我
-0.271 / 2
回家
-1.916 / 4
时今天我看到了我的
-0.406 / 2
桌子上的猫
0.548 / 2
在桌子上
-0.119
,
-0.207
和
-0.216 / 2
我的青蛙
0.253 / 3
在地板上
0.256
.
0.0
输入
0.217
0.556
什么
0.199
是
-0.041
在
0.405
桌子
-0.067
上
-0.167
?
0.0
[SEP]
-0.273 / 2
当我
-0.271 / 2
回家
-1.916 / 4
时今天我看到了我的
-0.406 / 2
桌子上的猫
0.548 / 2
在桌子上
-0.119
,
-0.207
和
-0.216 / 2
我的青蛙
0.253 / 3
在地板上
0.256
.
0.0
输入
0.236
0.651
什么
0.282
是
0.051
在
0.372
桌子
-0.057
上
-0.126
?
0.0
[SEP]
0.054 / 2
当我
0.096 / 2
回家
-4.062 / 4
时今天我看到了我的
-0.678 / 2
桌子上的猫
0.43 / 2
在桌子上
-0.219
,
-0.262
和
-0.276 / 2
我的青蛙
0.259 / 3
在地板上
0.268
.
0.0
输入
0.236
0.651
什么
0.282
是
0.051
在
0.372
桌子
-0.057
上
-0.126
?
0.0
[SEP]
0.054 / 2
当我
0.096 / 2
回家
-4.062 / 4
时今天我看到了我的
-0.678 / 2
桌子上的猫
0.43 / 2
在桌子上
-0.219
,
-0.262
和
-0.276 / 2
我的青蛙
0.259 / 3
在地板上
0.268
.
0.0
输入
0.307
0.883
什么
0.03
是
0.044
在
0.308
桌子
0.507
上
0.513
?
0.0
[SEP]
0.266 / 2
当我
0.292 / 2
回家
-2.109 / 4
时今天我看到了我的
-1.145 / 2
桌子上的猫
1.007 / 2
在桌子上
-0.177
,
-0.087
和
-0.102 / 2
我的青蛙
0.36 / 3
在地板上
0.337
.
0.0
输入
0.307
0.883
什么
0.03
是
0.044
在
0.308
桌子
0.507
上
0.513
?
0.0
[SEP]
0.266 / 2
当我
0.292 / 2
回家
-2.109 / 4
时今天我看到了我的
-1.145 / 2
桌子上的猫
1.007 / 2
在桌子上
-0.177
,
-0.087
和
-0.102 / 2
我的青蛙
0.36 / 3
在地板上
0.337
.
0.0
输入
0.269
0.839
什么
-0.108
是
0.332
在
0.62
桌子
1.181
上
0.693
?
0.0
[SEP]
0.359 / 2
当我
0.388 / 2
回家
-0.12 / 4
时今天我看到了我的
2.35 / 2
桌子上的猫
2.624 / 2
在桌子上
-0.069
,
-0.157
和
-0.17 / 2
我的青蛙
0.38 / 3
在地板上
0.319
.
0.0
输入
0.269
0.839
什么
-0.108
是
0.332
在
0.62
桌子
1.181
上
0.693
?
0.0
[SEP]
0.359 / 2
当我
0.388 / 2
回家
-0.12 / 4
时今天我看到了我的
2.35 / 2
桌子上的猫
2.624 / 2
在桌子上
-0.069
,
-0.157
和
-0.17 / 2
我的青蛙
0.38 / 3
在地板上
0.319
.
0.0
输入
0.276
0.871
什么
0.007
是
0.205
在
0.377
桌子
0.865
上
0.289
?
0.0
[SEP]
0.382 / 2
当我
0.416 / 2
回家
-0.515 / 4
时今天我看到了我的
-2.21 / 2
桌子上的猫
-1.431 / 2
在桌子上
-0.377
,
-0.339
和
-0.343 / 2
我的青蛙
0.29 / 3
在地板上
0.298
.
0.0
输入
0.276
0.871
什么
0.007
是
0.205
在
0.377
桌子
0.865
上
0.289
?
0.0
[SEP]
0.382 / 2
当我
0.416 / 2
回家
-0.515 / 4
时今天我看到了我的
-2.21 / 2
桌子上的猫
-1.431 / 2
在桌子上
-0.377
,
-0.339
和
-0.343 / 2
我的青蛙
0.29 / 3
在地板上
0.298
.
0.0
输入
0.223
0.6
什么
0.147
是
0.272
在
0.364
桌子
0.448
上
0.257
?
0.0
[SEP]
0.348 / 2
当我
0.385 / 2
回家
-0.035 / 4
时今天我看到了我的
-1.634 / 2
桌子上的猫
-2.821 / 2
在桌子上
-0.277
,
-0.382
和
-0.369 / 2
我的青蛙
0.33 / 3
在地板上
0.324
.
0.0
输入
0.223
0.6
什么
0.147
是
0.272
在
0.364
桌子
0.448
上
0.257
?
0.0
[SEP]
0.348 / 2
当我
0.385 / 2
回家
-0.035 / 4
时今天我看到了我的
-1.634 / 2
桌子上的猫
-2.821 / 2
在桌子上
-0.277
,
-0.382
和
-0.369 / 2
我的青蛙
0.33 / 3
在地板上
0.324
.
0.0
输入
0.241
0.671
什么
0.216
是
0.353
在
0.403
桌子
0.222
上
0.013
?
0.0
[SEP]
0.286 / 2
当我
0.319 / 2
回家
0.282 / 4
时今天我看到了我的
-0.558 / 2
桌子上的猫
-0.025 / 2
在桌子上
1.914
,
-0.52
和
-0.487 / 2
我的青蛙
0.102 / 3
在地板上
0.14
.
0.0
输入
0.241
0.671
什么
0.216
是
0.353
在
0.403
桌子
0.222
上
0.013
?
0.0
[SEP]
0.286 / 2
当我
0.319 / 2
回家
0.282 / 4
时今天我看到了我的
-0.558 / 2
桌子上的猫
-0.025 / 2
在桌子上
1.914
,
-0.52
和
-0.487 / 2
我的青蛙
0.102 / 3
在地板上
0.14
.
0.0
输入
0.268
0.804
什么
0.152
是
0.265
在
0.349
桌子
0.311
上
0.203
?
0.0
[SEP]
0.326 / 2
当我
0.373 / 2
回家
0.264 / 4
时今天我看到了我的
-0.667 / 2
桌子上的猫
-0.695 / 2
在桌子上
-0.718
,
0.59
和
0.522 / 2
我的青蛙
0.118 / 3
在地板上
0.216
.
0.0
输入
0.268
0.804
什么
0.152
是
0.265
在
0.349
桌子
0.311
上
0.203
?
0.0
[SEP]
0.326 / 2
当我
0.373 / 2
回家
0.264 / 4
时今天我看到了我的
-0.667 / 2
桌子上的猫
-0.695 / 2
在桌子上
-0.718
,
0.59
和
0.522 / 2
我的青蛙
0.118 / 3
在地板上
0.216
.
0.0
输入
0.249
0.736
什么
0.173
是
0.193
在
0.226
桌子
0.062
上
0.306
?
0.0
[SEP]
0.427 / 2
当我
0.475 / 2
回家
0.683 / 4
时今天我看到了我的
-0.62 / 2
桌子上的猫
-0.146 / 2
在桌子上
-1.279
,
-2.106
和
-2.076 / 2
我的青蛙
0.004 / 3
在地板上
0.09
.
0.0
输入
0.249
0.736
什么
0.173
是
0.193
在
0.226
桌子
0.062
上
0.306
?
0.0
[SEP]
0.427 / 2
当我
0.475 / 2
回家
0.683 / 4
时今天我看到了我的
-0.62 / 2
桌子上的猫
-0.146 / 2
在桌子上
-1.279
,
-2.106
和
-2.076 / 2
我的青蛙
0.004 / 3
在地板上
0.09
.
0.0
输入
0.251
0.759
什么
-0.092
是
-0.066
在
0.011
桌子
-0.234
上
0.694
?
0.0
[SEP]
0.414 / 2
当我
0.467 / 2
回家
0.47 / 4
时今天我看到了我的
-0.35 / 2
桌子上的猫
-0.142 / 2
在桌子上
-0.569
,
-1.265
和
-1.363 / 2
我的青蛙
0.233 / 3
在地板上
0.336
.
0.0
输入
0.251
0.759
什么
-0.092
是
-0.066
在
0.011
桌子
-0.234
上
0.694
?
0.0
[SEP]
0.414 / 2
当我
0.467 / 2
回家
0.47 / 4
时今天我看到了我的
-0.35 / 2
桌子上的猫
-0.142 / 2
在桌子上
-0.569
,
-1.265
和
-1.363 / 2
我的青蛙
0.233 / 3
在地板上
0.336
.
0.0
输入
0.239
0.875
什么
-0.024
是
0.115
在
0.038
桌子
-0.602
上
0.741
?
0.0
[SEP]
0.537 / 2
当我
0.603 / 2
回家
0.626 / 4
时今天我看到了我的
-0.187 / 2
桌子上的猫
-0.23 / 2
在桌子上
0.027
,
1.01
和
1.028 / 2
我的青蛙
1.128 / 3
在地板上
1.129
.
0.0
输入
0.239
0.875
什么
-0.024
是
0.115
在
0.038
桌子
-0.602
上
0.741
?
0.0
[SEP]
0.537 / 2
当我
0.603 / 2
回家
0.626 / 4
时今天我看到了我的
-0.187 / 2
桌子上的猫
-0.23 / 2
在桌子上
0.027
,
1.01
和
1.028 / 2
我的青蛙
1.128 / 3
在地板上
1.129
.
0.0
输入
0.217
0.801
什么
0.149
是
0.16
在
0.126
桌子
-0.236
上
0.44
?
0.0
[SEP]
0.475 / 2
当我
0.543 / 2
回家
0.757 / 4
时今天我看到了我的
-0.381 / 2
桌子上的猫
-0.018 / 2
在桌子上
0.012
,
-0.116
和
-0.129 / 2
我的青蛙
-2.53 / 3
在地板上
-1.769
.
0.0
输入
0.217
0.801
什么
0.149
是
0.16
在
0.126
桌子
-0.236
上
0.44
?
0.0
[SEP]
0.475 / 2
当我
0.543 / 2
回家
0.757 / 4
时今天我看到了我的
-0.381 / 2
桌子上的猫
-0.018 / 2
在桌子上
0.012
,
-0.116
和
-0.129 / 2
我的青蛙
-2.53 / 3
在地板上
-1.769
.
0.0
输入
0.195
0.602
什么
0.243
是
0.201
在
0.093
桌子
-0.286
上
0.387
?
0.0
[SEP]
0.369 / 2
当我
0.433 / 2
回家
0.675 / 4
时今天我看到了我的
-0.189 / 2
桌子上的猫
0.104 / 2
在桌子上
-0.089
,
-0.002
和
-0.006 / 2
我的青蛙
-3.018 / 3
在地板上
-2.132
.
0.0
输入
0.195
0.602
什么
0.243
是
0.201
在
0.093
桌子
-0.286
上
0.387
?
0.0
[SEP]
0.369 / 2
当我
0.433 / 2
回家
0.675 / 4
时今天我看到了我的
-0.189 / 2
桌子上的猫
0.104 / 2
在桌子上
-0.089
,
-0.002
和
-0.006 / 2
我的青蛙
-3.018 / 3
在地板上
-2.132
.
0.0
输入
0.204
0.816
什么
0.485
是
0.249
在
0.133
桌子
-0.374
上
0.357
?
0.0
[SEP]
0.462 / 2
当我
0.537 / 2
回家
0.866 / 4
时今天我看到了我的
-0.276 / 2
桌子上的猫
0.147 / 2
在桌子上
-0.24
,
0.027
和
-0.0 / 2
我的青蛙
-0.036 / 3
在地板上
0.379
.
0.0
输入
0.204
0.816
什么
0.485
是
0.249
在
0.133
桌子
-0.374
上
0.357
?
0.0
[SEP]
0.462 / 2
当我
0.537 / 2
回家
0.866 / 4
时今天我看到了我的
-0.276 / 2
桌子上的猫
0.147 / 2
在桌子上
-0.24
,
0.027
和
-0.0 / 2
我的青蛙
-0.036 / 3
在地板上
0.379
.
0.0
输入
0.295
0.943
什么
0.027
是
-0.019
在
-0.004
桌子
-0.758
上
0.006
?
0.0
[SEP]
0.256 / 2
当我
0.302 / 2
回家
0.4 / 4
时今天我看到了我的
-0.436 / 2
桌子上的猫
0.083 / 2
在桌子上
-0.444
,
-0.284
和
-0.305 / 2
我的青蛙
0.898 / 3
在地板上
1.874
.
0.0
输入
0.295
0.943
什么
0.027
是
-0.019
在
-0.004
桌子
-0.758
上
0.006
?
0.0
[SEP]
0.256 / 2
当我
0.302 / 2
回家
0.4 / 4
时今天我看到了我的
-0.436 / 2
桌子上的猫
0.083 / 2
在桌子上
-0.444
,
-0.284
和
-0.305 / 2
我的青蛙
0.898 / 3
在地板上
1.874
.
0.0
输入
0.322
0.95
什么
0.246
是
-0.095
在
0.389
桌子
-0.156
上
-0.878
?
0.0
[SEP]
0.198 / 2
当我
0.162 / 2
回家
-0.235 / 4
时今天我看到了我的
-0.451 / 2
桌子上的猫
0.213 / 2
在桌子上
-0.12
,
-0.368
和
-0.38 / 2
我的青蛙
0.013 / 3
在地板上
0.112
.
0.0
输入
0.322
0.95
什么
0.246
是
-0.095
在
0.389
桌子
-0.156
上
-0.878
?
0.0
[SEP]
0.198 / 2
当我
0.162 / 2
回家
-0.235 / 4
时今天我看到了我的
-0.451 / 2
桌子上的猫
0.213 / 2
在桌子上
-0.12
,
-0.368
和
-0.38 / 2
我的青蛙
0.013 / 3
在地板上
0.112
.
0.0
解释匹配函数
在上面的示例中,我们直接解释了来自模型的输出 logits。这要求我们确保仅以保留长度的方式扰动输入,以免更改输出 logits 的含义。一种不太详细但更灵活的方法是仅对模型产生的特定答案进行评分。
[4]:
def make_answer_scorer(answers):
def f(questions):
out = []
for q in questions:
question, context = q.split("[SEP]")
results = pmodel(question, context, topk=20)
values = []
for answer in answers:
value = 0
for result in results:
if result["answer"] == answer:
value = result["score"]
break
values.append(value)
out.append(values)
return out
f.output_names = answers
return f
f_answers = make_answer_scorer(["my cat", "cat", "my frog"])
explainer_answers = shap.Explainer(f_answers, pmodel.tokenizer)
shap_values_answers = explainer_answers(data)
shap.plots.text(shap_values_answers)
[0]
输出
我的猫
猫
我的青蛙
输入
0.001
0.056
什么
-0.013
是
0.002
在
0.049
桌子
0.14
上
0.013
?
0.0
[SEP]
0.013 / 4
当我回家
0.008 / 2
时今天我
0.015
看到
0.097
我的
0.042
猫
0.026
在
0.013
桌子
0.049
上
0.003
,
-0.008
和
-0.042 / 2
我的青蛙
0.034 / 3
在地板上
0.0
.
0.0
输入
0.001
0.056
什么
-0.013
是
0.002
在
0.049
桌子
0.14
上
0.013
?
0.0
[SEP]
0.013 / 4
当我回家
0.008 / 2
时今天我
0.015
看到
0.097
我的
0.042
猫
0.026
在
0.013
桌子
0.049
上
0.003
,
-0.008
和
-0.042 / 2
我的青蛙
0.034 / 3
在地板上
0.0
.
0.0
输入
0.0
-0.055
什么
-0.041
是
0.053
在
0.063
桌子
0.111
上
0.042
?
0.0
[SEP]
-0.008 / 2
当我
-0.023 / 2
回家
0.045 / 2
时今天我
-0.011
看到
0.019
我的
0.043
猫
0.041
在
0.027
桌子
0.048
上
0.018
,
-0.008
和
-0.036 / 2
我的青蛙
0.026 / 3
在地板上
-0.005
.
0.0
输入
0.0
-0.055
什么
-0.041
是
0.053
在
0.063
桌子
0.111
上
0.042
?
0.0
[SEP]
-0.008 / 2
当我
-0.023 / 2
回家
0.045 / 2
时今天我
-0.011
看到
0.019
我的
0.043
猫
0.041
在
0.027
桌子
0.048
上
0.018
,
-0.008
和
-0.036 / 2
我的青蛙
0.026 / 3
在地板上
-0.005
.
0.0
输入
0.004
0.004
什么
-0.016
是
-0.026
在
-0.02
桌子
-0.081
上
0.011
?
0.0
[SEP]
0.002 / 4
当我回家
-0.002 / 2
时今天我
-0.0
看到
-0.003
我的
0.003
猫
0.007
在
-0.005
桌子
-0.035
上
0.018
,
0.036
和
0.048 / 2
我的青蛙
0.031 / 3
在地板上
0.021
.
0.006
输入
0.004
0.004
什么
-0.016
是
-0.026
在
-0.02
桌子
-0.081
上
0.011
?
0.0
[SEP]
0.002 / 4
当我回家
-0.002 / 2
时今天我
-0.0
看到
-0.003
我的
0.003
猫
0.007
在
-0.005
桌子
-0.035
上
0.018
,
0.036
和
0.048 / 2
我的青蛙
0.031 / 3
在地板上
0.021
.
0.006
有更多有帮助的示例的想法吗? 欢迎提交拉取请求以添加到此文档笔记本!