QData/TextAttack

TextAttack 🐙 is a Python framework for adversarial attacks, data augmentation, and model training in NLP https://textattack.readthedocs.io/en/master/

해결하는 문제

TextAttack은 모델을 실수하도록 특별히 설계된 입력인 적대적 예제를 생성하여 NLP 모델의 견고성을 테스트할 수 있는 프레임워크를 제공합니다. 또한 사용자가 데이터셋을 증강하여 모델의 일반화 성능을 향상시키고 이러한 공격에 더 탄력적인 모델을 훈련할 수 있도록 합니다.

작동 방식

TextAttack은 적대적 예제를 생성하기 위해 네 가지 주요 구성 요소로 이루어진 모듈형 시스템을 사용합니다:

  1. Goal Function: 무엇이 성공적인 공격을 구성하는지 정의합니다 (예: 모델의 예측 변경).
  2. Constraints: 적대적 예제가 현실적이거나 원본 텍스트와 유사하도록 보장합니다 (예: 변경된 단어 수 제한 또는 품사 일관성 유지).
  3. Transformation: 텍스트를 수정하는 데 사용되는 방법 (예: 유의어로 단어 교체 또는 BERT를 사용한 마스크된 토큰 예측).
  4. Search Method: 최적의 수정을 찾기 위해 사용되는 전략 (예: 탐욕 검색, 빔 검색 또는 유전 알고리즘).

대상 사용자

모델의 취약점을 이해하거나, 새로운 적대적 공격 방법을 개발하거나, 증강을 통해 데이터셋의 견고성을 높이고 싶은 NLP 연구자 및 개발자를 위해 설계되었습니다.

주요 특징

  • Attack Recipes: 학술 문헌에서 가져온 사전 구현된 공격 라이브러리가 포함되어 있습니다 (예: TextFooler, DeepWordBug, BERT-Attack).
  • Data Augmentation: WordNet 유의어, 역번역 및 문자 교체와 같은 기술을 사용하여 데이터셋을 확장하는 내장 도구.
  • Command-Line Interface: 광범위한 코드를 작성하지 않고도 간단한 명령으로 복잡한 공격 또는 증강을 실행할 수 있습니다.
  • 폭넓은 모델 지원: BERT, DistilBERT, T5를 포함한 다양한 NLP 모델과 호환됩니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트