[Перевод] Более эффективное предварительное обучение NLP моделей с ELECTRA
Последние разработки в области предварительного обучения языковых моделей привели к значительным успехам в сфере обработки естественного языка (Natural Language Processing, NLP), породив такие высокоэффективные модели, как BERT, RoBERTa, XLNet, ALBERT, T5 и многие другие. Эти методы, имеющие различную архитектуру, тем не менее, объединяет идея использования больших объемов неразмеченных текстовых данных для создания общей модели понимания естественного языка, которая затем дообучается и тонко настраивается для решения конкретных прикладных задач, вроде анализа тональности или построения вопросно-ответных систем.
Существующие методы предварительного обучения сводятся, в основном, к двум категориям:
- языковые модели (Language Model, LM), такие как GPT, которые обрабатывают текст на входе слева направо, предсказывая следующее слово в заданном ранее контексте;
- маскированные языковые модели (Masked Language Model, MLM), такие как BERT, RoBERTa и ALBERT, которые пытаются предсказать маскированные слова исходного текста.
Преимущество MLM заключается в том, что они работают двунаправленно, т.е. «видят» текст по обе стороны от предсказываемого токена, в отличие от LM, обращенных лишь в одну сторону. Однако MLM (и модели вроде XLNet) имеют и недостатки, происходящие из задачи их предварительного обучения: вместо того, чтобы предсказывать каждое слово входной последовательности, они предсказывают лишь небольшую маскированную часть — всего около 15%, что сокращает объемы полученной информации из одного предложения.
Существующие методы предварительного обучения и их недостатки. Стрелки указывают на используемые для получения выхода (прямоугольники) токены. Слева: традиционные языковые модели (например, GPT), использующие лишь левый контекст текущего слова. Справа: маскированные языковые модели (например, BERT), использующие контекст по обе стороны от текущего слова, но предсказывающие только небольшую часть слов из входной последовательности.
В статье «ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators» был предложен другой подход к предварительному обучению языковых моделей, который сохраняет преимущества BERT«а, однако обучается значительно более эффективно. ELECTRA — Эффективно обучающийся энкодер, точно классифицирующий замененные токены (Efficiently Learning an Encoder that Classifies Token Replacements Accurately) — это новый метод предварительного обучения, который превосходит имеющиеся разработки, не увеличивая расходы на вычислительные мощности. Например, ELECTRA показывает тот же результат, что и RoBERTa и XLNet в заданиях бенчмарка понимания естественного языка GLUE, затрачивая, однако, ¼ их вычислительных ресурсов, а также достигает выдающихся результатов в вопросно-ответном бенчмарке SQuAD. Необыкновенная эффективность ELECTRA означает, что она может работать хорошо даже в небольших масштабах: обученная на 1 GPU всего за несколько дней, она может показать лучшую точность (accuracy), чем модель GPT, требующая в 30 раз большую вычислительную мощность. ELECTRA опубликована в открытом доступе как модель поверх TensorFlow и включает в себя набор готовых предобученных языковых моделей.
ELECTRA решает новую задачу предварительного обучения — обнаружение замененного токена (replaced token detection, RTD), для чего обучается двунаправленная модель (как в MLM) на всех входных позициях (как в LM). Вдохновившись генеративно-состязательными сетями (generative adversarial network, GAN), ELECTRA обучается определять «реальные» и «фейковые» входные данные. Вместо того, чтобы зашумлять входную последовательность, поставляя на место слов токен »[MASK]» (как в BERT«е), подход RTD подразумевает замену входных слов на неправильные, но в некоторой степени возможные фейковые слова. Например, на изображении ниже, слово «cooked» может быть заменено на слово «ate». Несмотря на то, что это не совсем бессмысленная замена, новое слово плохо подходит в контексте всей входной последовательности. Решение задачи предварительного обучения требует создания модели (т.н. дискриминатора) для определения того, какие слова из исходной последовательности были заменены, а какие нет. Важно, что эта задача бинарной классификации решается для каждого входного токена, а не для небольшого числа маскированных токенов (15% в случае моделей типа BERT). Это делает RTD более эффективным, чем MLM — модели ELECTRA нужно «увидеть» меньше примеров, чтобы достичь того же результата, т.к. она получает обучающий сигнал от каждого примера. В то же время, RTD позволяет создавать высокорепрезентативные языковые модели, т.к. для решения своей задачи, модели необходимо усвоить точное представление о распределении данных в обучающем наборе данных.
Обнаружение замененного токена обучает двунаправленную модель на каждой из входных позиций.
Токены для замены производятся другой нейронной сетью, называемой генератором. И хотя генератором может быть любая модель, которая производит выходное распределение над токенами, в ELECTRA используется небольшая маскированная языковая модель (например BERT-модель с небольшим количеством скрытых слоев), которая обучается совместно с дискриминатором. Несмотря на то, что структура, в которой генератор передает токены дискриминатору, схожа с GAN, разработчики обучали генератор предсказывать маскированные слова на основе максимального правдоподобия, а не состязательно, из-за сложности применения GAN к текстовым данным. Генератор и дискриминатор имеют общие входные эмбеддинги. После предварительного обучения, генератор отбрасывается и дискриминатор (модель ELECTRA) дообучается на конкретной NLP задаче. Все представленные модели имеют архитектуру типа Трансформер.
Более детально о задаче обнаружения замененного токена. Фейковые токены генерируются с помощью небольшой MLM модели, которая обучается совместно с ELECTRA.
Сравнив ELECTRA c другими ведущими NLP моделями, разработчики выявили, что первая ощутимо эффективнее использует вычислительные ресурсы, достигая высот RoBERTa и XLNet с использованием менее 25% от мощности, необходимой для их обучения.
По оси x отложен объем вычислительных ресурсов, использованных для обучения модели (посчитанные в FLOPs), а по оси y — результат GLUE. ELECTRA обучается значительно более эффективно, чем существующие предобученные NLP модели. Отметим, что нынешние лидеры GLUE, такие как T5, не изображены на графике, т.к. требуют значительно больших вычислительных ресурсов (почти в 10 раз больше, чем RoBERTa).
Стремясь достичь еще большей эффективности, разработчики проэкспериментировали с моделью ELECTRA-Small, которая может показать хорошую точность, будучи обученой на одном GPU всего за 4 дня. И хотя она не достигает той точности, которую показывают большие модели, требующие множество TPU для своего обучения, ELECTRA-Small все же показывает достаточно хорошие результаты и даже превосходит GPT, затрачивая всего 1/30 долю вычислительных ресурсов последней.
Наконец, чтобы посмотреть, насколько успешные результаты ELECTRA могут масштабироваться, была обучена модель ELECTRA-Large на больших мощностях (практически равных RoBERTa и составляющих 10% от T5). Эта модель достигает наилучших результатов на воспросно-ответном наборе данных SQuAD 2.0 (см. таблицу ниже) и обходит RoBERTa, XLNet и ALBERT в списке лидеров GLUE. И хотя T5–11b удерживает первое место в GLUE, ELECTRA в 30 раз меньше и требует всего 10% ресурсов, затраченных на обучение T5.
Результаты ELECTRA-Large и других ведущих моделей на наборе данных SQuAD 2.0 (показаны только неансамблированные модели).
В открытый доступ выложен код как предварительного обучения ELECTRA, так и тонкой настройки на прикладных NLP задачах, таких как классификация текста, вопросно-ответные задачи и разметка последовательности. Код поддерживает быстрое обучение маленькой модели ELECTRA на одном GPU. Также выложены веса таких предобученных моделей, как ELECTRA-Large, ELECTRA-Base и ELECTRA-Small. Пока ELECTRA доступна только для английского языка, однако в будущем разработчики планируют предварительно обучить модель и на других языках.