shap.models.TextGeneration

class shap.models.TextGeneration(model=None, tokenizer=None, target_sentences=None, device=None)

使用基础模型生成目标句子/ID。

它为一个模型(预训练的 Transformer 模型或函数)生成目标句子/ID。

__init__(model=None, tokenizer=None, target_sentences=None, device=None)

从预训练的 Transformer 模型或函数创建一个文本生成器模型。

对于预训练的 Transformer 模型,应该传递一个分词器。

参数:
model: 对象或函数

任何预训练的 Transformer 模型或函数的对象,用于生成目标句子/ID。

tokenizer: 对象

一个分词器对象 (PreTrainedTokenizer/PreTrainedTokenizerFast),用于分词句子。

target_sentences: 列表

每个解释行的目标句子。

device: 字符串

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

返回:
numpy.ndarray

目标句子/ID 的数组。

方法

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

从预训练的 Transformer 模型或函数创建一个文本生成器模型。

get_inputs(X[, padding_side])

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

load(in_file[, instantiate])

这旨在被子类覆盖并使用 super 调用。

model_generate(X)

此函数为 TensorFlow 和 PyTorch 模型执行文本生成。

parse_prefix_suffix_for_model_generate_output(output)

计算特殊 token 是否出现在模型生成输出的开头/结尾。

save(out_file)

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

get_inputs(X, padding_side='right')

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

在模型无关的情况下,该函数调用 model(X),预计返回一批输出句子,这些句子被分词以计算输入。

参数:
X: numpy.ndarray

X 是一批句子。

返回:
dict

填充后的源句子 ID 和注意力掩码的字典,以张量形式表示(基于 model_type 为 “pt” 或 “tf”)。

classmethod load(in_file, instantiate=True)

这旨在被子类覆盖并使用 super 调用。

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

model_generate(X)

此函数为 TensorFlow 和 PyTorch 模型执行文本生成。

参数:
X: dict

填充后的源句子 ID 和注意力掩码的字典,以张量形式表示。

返回:
numpy.ndarray

返回目标句子 ID。

parse_prefix_suffix_for_model_generate_output(output)

计算特殊 token 是否出现在模型生成输出的开头/结尾。

参数:
output: 列表

输出 token ID 的列表。

返回:
dict

关于输出 ID 中特殊 token 的前缀和后缀长度的字典。

save(out_file)

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