shap.models.TopKLM

class shap.models.TopKLM(model, tokenizer, k=10, generate_topk_token_ids=None, batch_size=128, device=None)[源代码]

为因果/掩码语言模型的前k个标记生成分数(对数几率)。

__init__(model, tokenizer, k=10, generate_topk_token_ids=None, batch_size=128, device=None)[源代码]

获取因果/掩码语言模型和分词器,并为前k个令牌构建一个对数几率输出模型。

参数:
模型: 对象或函数

一个需要解释的预训练变压器模型对象。

tokenizer: 对象

一个分词器对象(PreTrainedTokenizer/PreTrainedTokenizerFast)。

generation_function_for_topk_token_ids: 函数

用于生成前k个token ID的函数。将为这些自定义token ID生成对数几率。

batch_size: int

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

设备: str

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

返回:
numpy.ndarray

使用模型生成前k个token ID的得分(对数几率)。

方法

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

获取因果/掩码语言模型和分词器,并为前k个令牌构建一个对数几率输出模型。

generate_topk_token_ids(X)

为因果/掩码语言模型生成前k个token ID。

get_inputs(X[, padding_side])

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

get_lm_logits(X)

评估一个因果/掩码语言模型,并返回对应于下一个词/掩码词的对数概率。

get_logodds(logits)

计算从logits的对数几率。

get_output_names_and_update_topk_token_ids(X)

获取因果/掩码语言模型中前k个token ID的token名称。

load(in_file[, instantiate])

这是为了被子类重写并通过 super 调用。

save(out_file)

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

update_cache_X(X)

该函数更新原始输入(X)和Causal/Masked LM的top-k token id。

generate_topk_token_ids(X)[源代码]

为因果/掩码语言模型生成前k个token ID。

参数:
X: numpy.ndarray

X 是用于解释行的原始输入句子。

返回:
np.ndarray

前k个token ID的数组。

get_inputs(X, padding_side='right')[源代码]

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

参数:
X: numpy.ndarray

X 是一批文本。

返回:
dict

填充源句子ID和注意力掩码的字典,作为张量(基于similarity_model_type的“pt”或“tf”)。

get_lm_logits(X)[源代码]

评估一个因果/掩码语言模型,并返回对应于下一个词/掩码词的对数概率。

参数:
X: numpy.ndarray

包含一组掩码输入的数组。

返回:
numpy.ndarray

对应于下一个词/被掩码词的逻辑值。

get_logodds(logits)[源代码]

计算从logits的对数几率。

此函数通过 softmax 传递 logits,然后为前 k 个 token ID 计算对数几率。

参数:
logits: numpy.ndarray

从模型生成的logits数组。

返回:
numpy.ndarray

计算对应前k个token ID的对数几率。

get_output_names_and_update_topk_token_ids(X)[源代码]

获取因果/掩码语言模型中前k个token ID的token名称。

参数:
X: np.ndarray

输入(文本)用于解释行。

返回:
列表

输出令牌列表。

classmethod load(in_file, instantiate=True)[源代码]

这是为了被子类重写并通过 super 调用。

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

save(out_file)[源代码]

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

update_cache_X(X)[源代码]

该函数更新原始输入(X)和Causal/Masked LM的top-k token id。

它模仿缓存机制来更新原始输入和需要解释的topk token id,这些更新针对每一行新的解释。

参数:
X: np.ndarray

输入(文本)用于解释行。