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个令牌构建一个对数几率输出模型。
为因果/掩码语言模型生成前k个token ID。
get_inputs
(X[, padding_side])该函数对源句子进行分词。
评估一个因果/掩码语言模型,并返回对应于下一个词/掩码词的对数概率。
get_logodds
(logits)计算从logits的对数几率。
获取因果/掩码语言模型中前k个token ID的token名称。
load
(in_file[, instantiate])这是为了被子类重写并通过 super 调用。
save
(out_file)将模型保存到给定的文件流中。
该函数更新原始输入(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
输入(文本)用于解释行。
- 返回:
- 列表
输出令牌列表。