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は、敵対的サンプルを作成するために、主に4つのコンポーネントで構成されるモジュール式システムを使用します:
- Goal Function: 何をもって攻撃の成功とするかを定義します(例:モデルの予測を変更すること)。
- Constraints: 敵対的サンプルが現実的であるか、または元のテキストと類似していることを保証します(例:変更する単語数の制限や品詞の一貫性の維持)。
- Transformation: テキストを修正するために使用される手法(例:類義語への単語の置換や、BERTを使用したマスクされたトークンの予測)。
- Search Method: 最適な修正を見つけるために使用される戦略(例:貪欲法、ビームサーチ、または遺伝的アルゴリズム)。
対象者
モデルの脆弱性を理解したい、新しい敵対的攻撃手法を開発したい、あるいはデータ拡張を通じてデータセットの堅牢性を高めたいと考えているNLP研究者や開発者向けに設計されています。
ハイライト
- Attack Recipes: 学術文献に基づいた実装済みの攻撃ライブラリが含まれています(例:TextFooler、DeepWordBug、BERT-Attack)。
- Data Augmentation: WordNetの類義語、バックトランスレーション、文字の入れ替えなどの手法を使用してデータセットを拡張するための組み込みツール。
- Command-Line Interface: 膨大なコードを書くことなく、簡単なコマンドで複雑な攻撃や拡張を実行できます。
- 幅広いモデルサポート: BERT、DistilBERT、T5を含む様々なNLPモデルに対応しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト