shap.models.TeacherForcing
- class shap.models.TeacherForcing(model, tokenizer=None, similarity_model=None, similarity_tokenizer=None, batch_size=128, device=None)
- 使用 Teacher Forcing 技术为输出文本解释算法生成分数(对数几率)。 - 此类支持为 Transformer 模型以及函数生成对数几率。在模型无关的情况下(模型是函数),它需要 similarity_model 和 similarity_tokenizer 来近似模型生成的目标句子的对数几率分数。 - __init__(model, tokenizer=None, similarity_model=None, similarity_tokenizer=None, batch_size=128, device=None)
- 从给定的文本生成模型构建 Teacher Forcing 模型。 - 参数:
- model: object 或 function
- 任何预训练 Transformer 模型对象或要解释的函数。 
- tokenizer: object
- 分词器对象 (PreTrainedTokenizer/PreTrainedTokenizerFast),用于标记源句子和目标句子。 
- similarity_model: object
- 预训练 Transformer 模型对象,用于模型无关场景中以近似对数几率。 
- similarity_tokenizer: object
- 分词器对象 (PreTrainedTokenizer/PreTrainedTokenizerFast),用于模型无关场景中标记句子。 
- batch_size: int
- 模型推理和计算对数几率的批次大小 (默认=128)。 
- device: str
- 默认情况下,它会推断系统是否具有 GPU 并相应地设置设备。应为 ‘cpu’ 或 ‘cuda’ 或 PyTorch 模型。 
 
- 返回值:
- numpy.ndarray
- 使用模型生成目标句子 ID 的分数(对数几率)。 
 
 
 - 方法 - __init__(model[, tokenizer, ...])- 从给定的文本生成模型构建 Teacher Forcing 模型。 - get_inputs(X[, padding_side])- 该函数标记源句子。 - get_logodds(logits)- 从 logits 计算对数几率。 - get_output_names(output)- 通过使用 similarity_tokenizer 计算输出句子 ID 和输出名称来获取输出标记。 - get_outputs(X)- 该函数标记输出句子并返回 ID。 - 该函数为 Transformer 模型生成 logits。 - load(in_file[, instantiate])- 这旨在被子类覆盖并使用 super 调用。 - model_inference(inputs, output_ids)- 此函数为 TensorFlow 和 PyTorch 模型执行模型推理。 - save(out_file)- 将模型保存到给定的文件流。 - update_output_names(output)- 该函数更新输出标记。 - get_inputs(X, padding_side='right')
- 该函数标记源句子。 - 在模型无关的情况下,该函数调用 model(X),预期返回一批输出句子,这些句子被标记化以计算输入。 - 参数:
- X: numpy.ndarray
- X 可以是一批文本或图像(模型无关的情况)。 
 
- 返回值:
- dict
- 填充的源句子 ID 和注意力掩码的字典,作为张量(“pt” 或 “tf”,取决于 similarity_model_type)。 
 
 
 - get_logodds(logits)
- 从 logits 计算对数几率。 - 此函数将 logits 传递给 softmax,然后计算输出(目标句子)ID 的对数几率。 - 参数:
- logits: numpy.ndarray
- 从模型生成的 logits 数组。 
 
- 返回值:
- numpy.ndarray
- 计算相应输出 ID 的对数几率。 
 
 
 - get_output_names(output)
- 通过使用 similarity_tokenizer 计算输出句子 ID 和输出名称来获取输出标记。 - 参数:
- output: numpy.ndarray
- 解释行的输出(句子/句子 ID)。 
 
- 返回值:
- list
- 输出标记列表。 
 
 
 - get_outputs(X)
- 该函数标记输出句子并返回 ID。 - 参数:
- X: numpy.ndarray
- 解释行的输出(句子/句子 ID)。 
 
- 返回值:
- numpy.ndarray
- 输出(目标句子)ID 数组。 
 
 
 - get_teacher_forced_logits(X, Y)
- 该函数为 Transformer 模型生成 logits。 - 它通过使用 Teacher Forcing 技术为编码器-解码器模型以及仅解码器模型生成 logits。 - 参数:
- X: numpy.ndarray
- 包含掩码输入列表的数组。 
- Y: numpy.ndarray
- 包含目标句子/ID 列表的数组。 
 
- 返回值:
- numpy.ndarray
- 输出(目标句子)ID 的解码器输出 logits。 
 
 
 - classmethod load(in_file, instantiate=True)
- 这旨在被子类覆盖并使用 super 调用。 - 当我们不实例化时,我们返回构造函数参数值。 由于 Serializable 类没有构造函数参数,我们只返回一个空字典。 
 - model_inference(inputs, output_ids)
- 此函数为 TensorFlow 和 PyTorch 模型执行模型推理。 - 参数:
- inputs: dict
- 填充的源句子 ID 和注意力掩码的字典,作为张量。 
- output_ids: numpy.ndarray
- 解码器输出 ID 数组。 
 
- 返回值:
- numpy.ndarray
- 从模型返回输出 logits。 
 
 
 - save(out_file)
- 将模型保存到给定的文件流。 
 - update_output_names(output: ndarray)
- 该函数更新输出标记。 - 它模拟缓存机制,以更新要解释的每一行新解释的输出标记。 - 参数:
- output: numpy.ndarray
- 解释行的输出(句子/句子 ID)。