def __init__( self, model: PreTrainedModel, tokenizer: PreTrainedTokenizer, attribution_type: str = "lig", ): """ Args: model (PreTrainedModel): Pretrained huggingface Question Answering model. tokenizer (PreTrainedTokenizer): Pretrained huggingface tokenizer attribution_type (str, optional): The attribution method to calculate on. Defaults to "lig". Raises: AttributionTypeNotSupportedError: [description] """ super().__init__(model, tokenizer) if attribution_type not in SUPPORTED_ATTRIBUTION_TYPES: raise AttributionTypeNotSupportedError( f"""Attribution type '{attribution_type}' is not supported. Supported types are {SUPPORTED_ATTRIBUTION_TYPES}""") self.attribution_type = attribution_type self.attributions: Union[None, LIGAttributions] = None self.start_attributions = None self.end_attributions = None self.input_ids: torch.Tensor = torch.Tensor() self.position = 0
def __init__( self, model: PreTrainedModel, tokenizer: PreTrainedTokenizer, attribution_type: str = "lig", ): """ Args: model (PreTrainedModel): Pretrained huggingface Sequence Classification model. tokenizer (PreTrainedTokenizer): Pretrained huggingface tokenizer attribution_type (str, optional): The attribution method to calculate on. Defaults to "lig". Raises: AttributionTypeNotSupportedError: """ super().__init__(model, tokenizer) if attribution_type not in SUPPORTED_ATTRIBUTION_TYPES: raise AttributionTypeNotSupportedError( f"""Attribution type '{attribution_type}' is not supported. Supported types are {SUPPORTED_ATTRIBUTION_TYPES}""") self.attribution_type = attribution_type self.label2id = model.config.label2id self.id2label = model.config.id2label self.attributions: Union[None, LIGAttributions] = None self.input_ids: torch.Tensor = torch.Tensor() self._single_node_output = False
def __init__( self, model: PreTrainedModel, tokenizer: PreTrainedTokenizer, attribution_type: str = "lig", ): """ Args: model (PreTrainedModel):Pretrained huggingface Sequence Classification model. Must be a NLI model. tokenizer (PreTrainedTokenizer): Pretrained huggingface tokenizer attribution_type (str, optional): The attribution method to calculate on. Defaults to "lig". Raises: AttributionTypeNotSupportedError: [description] ValueError: [description] """ super().__init__(model, tokenizer) if attribution_type not in SUPPORTED_ATTRIBUTION_TYPES: raise AttributionTypeNotSupportedError( f"""Attribution type '{attribution_type}' is not supported. Supported types are {SUPPORTED_ATTRIBUTION_TYPES}""") self.label_exists, self.entailment_key = self._entailment_label_exists( ) if not self.label_exists: raise ValueError( 'Expected label "entailment" in `model.label2id` ') self.entailment_idx = self.label2id[self.entailment_key] self.include_hypothesis = False self.attributions = [] self.internal_batch_size = None self.n_steps = 50
def __init__( self, model: PreTrainedModel, tokenizer: PreTrainedTokenizer, attribution_type: str = "lig", custom_labels: Optional[List[str]] = None, ): """ Args: model (PreTrainedModel): Pretrained huggingface Sequence Classification model. tokenizer (PreTrainedTokenizer): Pretrained huggingface tokenizer attribution_type (str, optional): The attribution method to calculate on. Defaults to "lig". custom_labels (List[str], optional): Applies custom labels to label2id and id2label configs. Labels must be same length as the base model configs' labels. Labels and ids are applied index-wise. Defaults to None. Raises: AttributionTypeNotSupportedError: """ super().__init__(model, tokenizer) if attribution_type not in SUPPORTED_ATTRIBUTION_TYPES: raise AttributionTypeNotSupportedError( f"""Attribution type '{attribution_type}' is not supported. Supported types are {SUPPORTED_ATTRIBUTION_TYPES}""" ) self.attribution_type = attribution_type if custom_labels is not None: if len(custom_labels) != len(model.config.label2id): raise ValueError( f"""`custom_labels` size '{len(custom_labels)}' should match pretrained model's label2id size '{len(model.config.label2id)}'""" ) self.id2label, self.label2id = self._get_id2label_and_label2id_dict( custom_labels ) else: self.label2id = model.config.label2id self.id2label = model.config.id2label self.attributions: Union[None, LIGAttributions] = None self.input_ids: torch.Tensor = torch.Tensor() self._single_node_output = False self.internal_batch_size = None self.n_steps = 50
def __init__( self, text: str, model: PreTrainedModel, tokenizer: PreTrainedTokenizer, attribution_type: str = "lig", ): super().__init__(text, model, tokenizer) if attribution_type not in SUPPORTED_ATTRIBUTION_TYPES: raise AttributionTypeNotSupportedError( f"""Attribution type '{attribution_type}' is not supported. Supported types are {SUPPORTED_ATTRIBUTION_TYPES}""") self.attribution_type = attribution_type self.label2id = model.config.label2id self.id2label = model.config.id2label self.attributions = None self.input_ids = None
def __init__( self, model: PreTrainedModel, tokenizer: PreTrainedTokenizer, attribution_type: str = "lig", ): super().__init__(model, tokenizer) if attribution_type not in SUPPORTED_ATTRIBUTION_TYPES: raise AttributionTypeNotSupportedError( f"""Attribution type '{attribution_type}' is not supported. Supported types are {SUPPORTED_ATTRIBUTION_TYPES}""") self.attribution_type = attribution_type self.attributions: Union[None, LIGAttributions] = None self.start_attributions = None self.end_attributions = None self.input_ids: torch.Tensor = torch.Tensor() self.position = 0
def __init__( self, model: PreTrainedModel, tokenizer: PreTrainedTokenizer, attribution_type: str = "lig", ): super().__init__(model, tokenizer) if attribution_type not in SUPPORTED_ATTRIBUTION_TYPES: raise AttributionTypeNotSupportedError( f"""Attribution type '{attribution_type}' is not supported. Supported types are {SUPPORTED_ATTRIBUTION_TYPES}""") self.attribution_type = attribution_type self.label2id = model.config.label2id self.id2label = model.config.id2label self.attributions: Union[None, LIGAttributions] = None self.input_ids: torch.Tensor = torch.Tensor() self._single_node_output = False