abs_text_attack.core.interfaces package

Submodules

abs_text_attack.core.interfaces.attack module

class abs_text_attack.core.interfaces.attack.Attack(goal_function: GoalFunction, constraints: List[Constraint | PreTransformationConstraint], transformation: Transformation, search_method: SearchMethod, transformation_cache_size=32768, constraint_cache_size=32768)[исходный код]

Базовые классы: Attack

Abstract class for creating attack. Takes all needed components of textattack Attack class. Via it’s methods we can theoretically tinker with parent class fields/methods or create a new ones. # Добавить метод get_attack_info() с информацией о типе атаки по MITRE ATLAS. # Нужен метод validate() для проверки совместимости атаки с моделью.

abstractmethod static build(model_wrapper, **kwargs)[исходный код]

abs_text_attack.core.interfaces.dataset module

class abs_text_attack.core.interfaces.dataset.DatasetFactory[исходный код]

Базовые классы: object

Class that acts like a Factory for constructing TextAttack dataset.

static to_ta_dataset(dataset, text_column='text', label_column='label')[исходный код]

Function that converts user dataset to TextAttack dataset

Параметры:
  • dataset (HFdataset -- str of hugging) – csv || (HFdataset, split), where

  • now (csv -- path to csv file. !!!For)

  • headers!!! (let's assume that it should contain first column with texts and second column with labels no)

  • (HFdataset

  • two (split) -- tuple of)

  • dataset

  • HFdataset (split -- train/val/test split of)

abs_text_attack.core.interfaces.model module

class abs_text_attack.core.interfaces.model.HFModel(model, model_type='AutoModelForSequenceClassification', tokenizer=None)[исходный код]

Базовые классы: PyTorchModelWrapper

Класс-обертка для моделей с HuggingFace. На данный момент обернуты: - AutoModelForSequenceClassification. Всегда идет вместе с токенизатором, базовый класс для моделей из коробки с HF - pipeline. Токенизатор встроенный, также идет как базовый класс для моделей из коробки с HF - SetFitModel. Модели few-shot обучения. Основаны на SentenceTransformers, но образуют свой класс.

class abs_text_attack.core.interfaces.model.SklearnModel(model, vectorizer)[исходный код]

Базовые классы: ModelWrapper

Class designed specifically for handling sklearn models. Vectorizer should implement transform and model should implement „predict_proba“.

class abs_text_attack.core.interfaces.model.TorchModel[исходный код]

Базовые классы: ModelWrapper

Class designed specifically for handling torch models

tokenize()[исходный код]

Helper method that tokenizes input strings :param inputs: list of input strings :type inputs: list[str] :param strip_prefix: If True, we strip auxiliary characters added to tokens as prefixes (e.g. «##» for BERT, «Ġ» for RoBERTa) :type strip_prefix: bool

Результат:

List of list of tokens as strings

Тип результата:

tokens (list[list[str]])

abs_text_attack.core.interfaces.target module

class abs_text_attack.core.interfaces.target.Target[исходный код]

Базовые классы: ABC

Abstract base class for target class. # Ключевые требования: # 1. Метод оценки успешности атаки по стандартизированным метрикам # 2. Генерация отчетов в нескольких форматах (для CI artifacts) # 3. Классификация уязвимостей по MITRE ATLAS таксономии

abstractmethod build()[исходный код]

Module contents