shap.models.TopKLM

class shap.models.TopKLM(model, tokenizer, k=10, generate_topk_token_ids=None, batch_size=128, device=None)

为因果/掩码语言模型的 top-k 个 tokens 生成分数(对数几率)。

__init__(model, tokenizer, k=10, generate_topk_token_ids=None, batch_size=128, device=None)

接受因果/掩码语言模型和分词器,并为 top-k 个 tokens 构建对数几率输出模型。

参数:
model: object 或 function

要解释的任何预训练 Transformer 模型的对象。

tokenizer: object

分词器对象 (PreTrainedTokenizer/PreTrainedTokenizerFast)。

generation_function_for_topk_token_ids: function

用于生成 top-k token ids 的函数。将为这些自定义 token ids 生成对数几率。

batch_size: int

模型推理和计算对数几率的批次大小 (默认=128)。

device: str

默认情况下,它会推断系统是否具有 GPU 并相应地设置设备。应为 ‘cpu’ 或 ‘cuda’ 或 PyTorch 模型。

返回:
numpy.ndarray

使用模型生成 top-k token ids 的分数(对数几率)。

方法

__init__(model, tokenizer[, k, ...])

接受因果/掩码语言模型和分词器,并为 top-k 个 tokens 构建对数几率输出模型。

generate_topk_token_ids(X)

为因果/掩码语言模型生成 top-k token ids。

get_inputs(X[, padding_side])

该函数对源语句进行分词。

get_lm_logits(X)

评估因果/掩码语言模型并返回与下一个词/掩码词对应的 logits。

get_logodds(logits)

从 logits 计算对数几率。

get_output_names_and_update_topk_token_ids(X)

获取因果/掩码语言模型的 top-k token ids 的 token 名称。

load(in_file[, instantiate])

这旨在被子类重写并使用 super 调用。

save(out_file)

将模型保存到给定的文件流。

update_cache_X(X)

该函数模拟缓存机制,以更新原始输入 (X) 和要解释的 top-k token ids,并为每一行新的解释进行更新。

generate_topk_token_ids(X) ndarray

为因果/掩码语言模型生成 top-k token ids。

参数:
X: numpy.ndarray

X 是解释行的原始输入语句。

返回:
np.ndarray

top-k token ids 的数组。

get_inputs(X, padding_side='right')

该函数对源语句进行分词。

参数:
X: numpy.ndarray

X 是一批文本。

返回:
dict

填充后的源语句 ids 和注意力掩码的字典,以 tensors(“pt” 或 “tf”,取决于 similarity_model_type)。

get_lm_logits(X)

评估因果/掩码语言模型并返回与下一个词/掩码词对应的 logits。

参数:
X: numpy.ndarray

包含掩码输入的列表的数组。

返回:
numpy.ndarray

与下一个词/掩码词对应的 Logits。

get_logodds(logits)

从 logits 计算对数几率。

此函数将 logits 传递给 softmax,然后计算 top-k token ids 的对数几率。

参数:
logits: numpy.ndarray

从模型生成的 logits 数组。

返回:
numpy.ndarray

计算相应 top-k token ids 的对数几率。

get_output_names_and_update_topk_token_ids(X)

获取因果/掩码语言模型的 top-k token ids 的 token 名称。

参数:
X: np.ndarray

解释行的输入(文本)。

返回:
list

输出 tokens 的列表。

classmethod load(in_file, instantiate=True)

这旨在被子类重写并使用 super 调用。

当不进行实例化时,我们返回构造函数参数值。由于 Serializable 类没有构造函数参数,我们只返回一个空字典。

save(out_file)

将模型保存到给定的文件流。

update_cache_X(X)

该函数模拟缓存机制,以更新原始输入 (X) 和要解释的 top-k token ids,并为每一行新的解释进行更新。

它模拟缓存机制,以更新原始输入和要解释的 topk token ids,并为每一行新的解释进行更新。

参数:
X: np.ndarray

解释行的输入(文本)。