FreeLB: Enhanced Adversarial Training for Language Understanding
Chen Zhu, Yu Cheng, Zhe Gan, Siqi Sun, Tom Goldstein, Jingjing Liu
University of Maryland, Microsoft Dynamics 365 AI Research
#NLP #BERT #adversarial #ICLR
Версия на архиве: https://arxiv.org/abs/1909.11764
Версия, поданная на ICLR 2020: https://openreview.net/pdf?id=BygzbyHFvB
Кстати, одна из 11 статей, получившая на днях 8 из 8 баллов на blind review ICLR 2020.
Авторы предлагают новую adversarial схему обучения, FreeLB (Free Large-Batch), и показывают её эффективность при обучении трансформеров (BERT и RoBERTa) под NLP задачи из бенчмарков GLUE и ARC. Предлагаемый подход FreeLB применяется на этапе тюнинга обычной трансформер-модели на конкретную задачу.
В качестве общего соображения сообщается, что, в то время, как на задачах CV использование adversarial training приводит к улучшению генерализации и устойчивости модели к шуму за счёт некоторых потерь в точности, на задаче LM иногда наблюдается другой эффект -- улучшается как генерализация, так и точность.
Идея используемого adversarial подхода довольно проста -- после того, как мы сделали lookup за эмбеддингами токенов батча, мы их немного "портим", добавляя шум, и используем такие зашумлённые версии для обучения с тем же таргетом, что и в оригинале. Степень зашумления ограничивается небольшой евклидовой нормой добавляемого тензора шума. При этом позиционные и прочие служебные эмбеддинги не трогаем. В каком-то абстрактном смысле это отдалённо похоже на data augmentation подход. Шум, однако, у нас не случайный, а adversarial, т.е. всякий раз мы пытаемся подсунуть наиболее сложное для сети искажение.
В работе Madry et al. (2018) показано, что для поиска такого сложного зашумления можно использовать PGD (projected gradient descent): метод, в котором градиент проецируется на epsilon-сферу, и это помогает стабилизировать обучение. Проблема в том, для одного надёжного шага "спуска по шуму" нужно накопить несколько (К) forward-backward проходов по сети, что в случае с большими моделями и датасетами совсем не практично -- приводит к удорожанию обучения в К раз. В более поздних работах (модели FreeAT и YOPO) предлагается так или иначе экономить на расчётах, например, делая обновление градиента adversarial шума только раз в К шагов спуска основной модели.
Авторы данной работы предлагают новую схему (FreeLB) одновременной оптимизации сети и подстройки шума: при обработке минибатча будем делать К шагов по градиенту основной модели, накапливая его и пересчитывая оптимальный шум на основании текущего накопленного градиента на каждом шаге, а в конце разово применим итоговый накопленный градиент основной модели. Предлагается некоторое теоретическое обоснование, почему такой подход даёт более устойчивое обучение чем обычный PGD.
Дополнительно обсуждается возможность использования дропаутов при таком обучении (обычно в таких adversarial схемах dropout не используют) -- авторы предлагают фиксировать одинаковую маску дропаута на К шагов, примерно так, как это было сделано в Variational Dropout. Такой подход позволяет использовать dropout одновременно с adversarial training, и на ablation study (таб. 4) показано, что это даёт заметный профит.
В итоге, на тестовых задачах оптимизация с FreeLB показала лучшие результаты, обогнав как ванильные BERT и RoBERTa, так и варианты с PDG, FreeAT и YOPO.
Chen Zhu, Yu Cheng, Zhe Gan, Siqi Sun, Tom Goldstein, Jingjing Liu
University of Maryland, Microsoft Dynamics 365 AI Research
#NLP #BERT #adversarial #ICLR
Версия на архиве: https://arxiv.org/abs/1909.11764
Версия, поданная на ICLR 2020: https://openreview.net/pdf?id=BygzbyHFvB
Кстати, одна из 11 статей, получившая на днях 8 из 8 баллов на blind review ICLR 2020.
Авторы предлагают новую adversarial схему обучения, FreeLB (Free Large-Batch), и показывают её эффективность при обучении трансформеров (BERT и RoBERTa) под NLP задачи из бенчмарков GLUE и ARC. Предлагаемый подход FreeLB применяется на этапе тюнинга обычной трансформер-модели на конкретную задачу.
В качестве общего соображения сообщается, что, в то время, как на задачах CV использование adversarial training приводит к улучшению генерализации и устойчивости модели к шуму за счёт некоторых потерь в точности, на задаче LM иногда наблюдается другой эффект -- улучшается как генерализация, так и точность.
Идея используемого adversarial подхода довольно проста -- после того, как мы сделали lookup за эмбеддингами токенов батча, мы их немного "портим", добавляя шум, и используем такие зашумлённые версии для обучения с тем же таргетом, что и в оригинале. Степень зашумления ограничивается небольшой евклидовой нормой добавляемого тензора шума. При этом позиционные и прочие служебные эмбеддинги не трогаем. В каком-то абстрактном смысле это отдалённо похоже на data augmentation подход. Шум, однако, у нас не случайный, а adversarial, т.е. всякий раз мы пытаемся подсунуть наиболее сложное для сети искажение.
В работе Madry et al. (2018) показано, что для поиска такого сложного зашумления можно использовать PGD (projected gradient descent): метод, в котором градиент проецируется на epsilon-сферу, и это помогает стабилизировать обучение. Проблема в том, для одного надёжного шага "спуска по шуму" нужно накопить несколько (К) forward-backward проходов по сети, что в случае с большими моделями и датасетами совсем не практично -- приводит к удорожанию обучения в К раз. В более поздних работах (модели FreeAT и YOPO) предлагается так или иначе экономить на расчётах, например, делая обновление градиента adversarial шума только раз в К шагов спуска основной модели.
Авторы данной работы предлагают новую схему (FreeLB) одновременной оптимизации сети и подстройки шума: при обработке минибатча будем делать К шагов по градиенту основной модели, накапливая его и пересчитывая оптимальный шум на основании текущего накопленного градиента на каждом шаге, а в конце разово применим итоговый накопленный градиент основной модели. Предлагается некоторое теоретическое обоснование, почему такой подход даёт более устойчивое обучение чем обычный PGD.
Дополнительно обсуждается возможность использования дропаутов при таком обучении (обычно в таких adversarial схемах dropout не используют) -- авторы предлагают фиксировать одинаковую маску дропаута на К шагов, примерно так, как это было сделано в Variational Dropout. Такой подход позволяет использовать dropout одновременно с adversarial training, и на ablation study (таб. 4) показано, что это даёт заметный профит.
В итоге, на тестовых задачах оптимизация с FreeLB показала лучшие результаты, обогнав как ванильные BERT и RoBERTa, так и варианты с PDG, FreeAT и YOPO.