shap.models.文本生成

class shap.models.TextGeneration(model=None, tokenizer=None, target_sentences=None, device=None)[源代码]

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

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

__init__(model=None, tokenizer=None, target_sentences=None, device=None)[源代码]

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

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

参数:
模型: 对象或函数

任何预训练的transformer模型或函数的对象,其目标句子/id将被生成。

tokenizer: 对象

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

target_sentences: list

每个解释行都有一个目标句子。

设备: str

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

返回:
numpy.ndarray

目标句子/id 的数组。

方法

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

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

get_inputs(X[, padding_side])

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

load(in_file[, instantiate])

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

model_generate(X)

此函数为 tensorflow 和 pytorch 模型执行文本生成。

parse_prefix_suffix_for_model_generate_output(output)

计算模型生成的输出中是否存在特殊标记在开头/结尾。

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 ID的列表。

返回:
dict

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

save(out_file)[源代码]

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