DeBERTa: Decoding-enhanced BERT with Disentangled Attention
Pengcheng He, Xiaodong Liu, Jianfeng Gao, Weizhu Chen
Статья:
https://arxiv.org/abs/2006.03654
Код:
https://github.com/microsoft/DeBERTa
Модель в Transformers:
https://huggingface.co/transformers/model_doc/deberta.html
Пост:
https://www.microsoft.com/en-us/research/blog/microsoft-deberta-surpasses-human-performance-on-the-superglue-benchmark/
В зоопарке с бертами громкое пополнение. Microsoft захватил лидерство в SuperGLUE (
https://super.gluebenchmark.com/leaderboard) с моделью DeBERTa (итоговый скор 90.3), попутно превзойдя human baseline (скор 89.8) на этом бенчмарке. В затылок лидеру дышит гугловая T5 + Meena, также превосходящая человека (90.2). Гугл пока про этот свой прорыв отмалчивается.
Что за зверь эта DeBERTa?
По большому счёту DeBERTa — это RoBERTa с двумя усовершенствованиями.
1) Разделённый механизм внимания (disentangled attention), в котором каждый токен кодируется двумя векторами: вектор контента и вектор позиции (относительной), для работы с которыми заведены отдельные матрицы.
В оригинальном трансформере, как вы помните, вектор был один и представлял собой сумму контентного и позиционного эмбеддинга. В оригинальной работе были абсолютные позиционные эмбеддинги, считавшиеся через синусы, в последующих работах также были относительные, но важно, что они арифметически суммировались с контентными в один итоговый вектор эмбеддинга (H), который дальше и прилетал на вход каждого слоя self-attention.
Здесь на вход пролетает пара {H, P}, где H — это по-прежнему контентные эмбеддинги (на входе посчитанные для BPE-токенов, а далее — выходы с предыдущих слоёв self-attention), а P — относительные позиционные эмбеддинги, кодирующие связь токена на позиции i с токеном на позиции j, которые считаются из относительного расстояния между i и j.
Вес внимания между двумя такими {H, P} состоял бы из четырёх компонент: content-to-content (как в оригинале), content-to-position, position-to-content и position-to-position. От последнего отказываются, потому что он вроде как не добавляет новой информации при использовании относительных позиций. В итоге получается, что к традицинным контентным K,Q,V добавляются позиционные Q_r и K_r и соответствующие им матрицы проекций.
Ну и нормализуют теперь не на корень из d, а на корень из 3d.
2) Enhanced mask decoder (EMD), где перед финальным софтмаксом, когда модель должна уже декодировать замаскированные токены при обучении с MLM (Masked Language Model), к контекстным эмбеддингам добавляются _абсолютные_ позиционные (важно, в механизме внимания были _относительные_ позиционные эмбеддинги). Потому что, по мнению авторов, абсолютная позиция слова в некоторых случаях критична для предсказания.
Декодером это называется несколько некорректно, потому что речь по большому счёту идёт про энкодер трансформера (помните, BERT — это чисто encoder часть полного трансформера), декодера в его хитрым маскированным вниманием тут нет.
Авторы говорят, что через EMD можно добавлять в модель другую полезную информацию, но это тема на будущее (когда Гугл обгонит на SuperGLUE, видимо).
Правда, в статье описана адаптация DeBERTa к авторегрессионной генерации, где эта хитрая треугольная маска появляется.
Также в работе применяют virtual adversarial training алгоритм под названием Scale-invariant-Fine-Tuning (SiFT), который создаёт adversarial examples путём изменения эмбеддингов слов (причём нормализованных эмбеддингов, типа так лучше), а модель должна на них выдавать распределение как на оригинальных данных. Внимательное изучение SiFT тоже оставили на будущее.
Экспериментальная часть богата.
Сравнивают large модели BERT, RoBERTa, XLNet, ELECTRA и кое-где ALBERT и Megatron. DeBERTa рулит. И этот результат получают при обучении примерно на половине данных по сравнению с RoBERTa и XLNet. Также DeBERTa обходит по качеству Megatron-1.3B, который в три раза толще.
DeBERTa-base также побеждает RoBERTa/XLNet-base.
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram