File size: 918 Bytes
4943752 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
"""
Attack Recipe Class
========================
"""
from abc import ABC, abstractmethod
from textattack import Attack
class AttackRecipe(Attack, ABC):
"""A recipe for building an NLP adversarial attack from the literature."""
@staticmethod
@abstractmethod
def build(model_wrapper, **kwargs):
"""Creates pre-built :class:`~textattack.Attack` that correspond to
attacks from the literature.
Args:
model_wrapper (:class:`~textattack.models.wrappers.ModelWrapper`):
:class:`~textattack.models.wrappers.ModelWrapper` that contains the victim model and tokenizer.
This is passed to :class:`~textattack.goal_functions.GoalFunction` when constructing the attack.
kwargs:
Additional keyword arguments.
Returns:
:class:`~textattack.Attack`
"""
raise NotImplementedError()
|