Это второй день моего участия в ноябрьском испытании обновлений, подробности о мероприятии:Вызов последнего обновления 2021 г.
Проблема с БЕРТ
После выпуска BERT таблица лидеров дала самые современные результаты для многих задач НЛП. Однако модель очень большая, что вызывает некоторые проблемы. В статье «АЛЬБЕРТ» эти проблемы разделены на две категории:
лимит памяти
Рассмотрим простую нейронную сеть с одним входным узлом, двумя скрытыми узлами и одним выходным узлом. Даже для такой простой нейронной сети, поскольку каждый узел имеет веса и смещения, всего необходимо изучить 7 параметров.
BERT-large — сложная модель, в ней 24 скрытых слоя, много узлов в сети прямой связи и многоголовый механизм внимания, всего 340 миллионов параметров, если вы хотите тренироваться с нуля, нужно много вычислительный ресурс
деградация модели
Недавняя тенденция исследований в области NLP заключается в использовании все более и более крупных моделей для повышения производительности. Исследование АЛЬБЕРА показывает, что безмозглое суммирование параметров модели может привести к снижению эффективности.
В статье автор провел интересный эксперимент
Если более крупная модель может привести к повышению производительности, почему бы не удвоить количество единиц скрытого слоя самой большой модели BERT (BERT-large) с 1024 единиц до 2048 единиц?
Они называют это «BERT-xlarge». Удивительно, но эта более крупная модель не работает так же хорошо, как BERT-large, как в задаче языкового моделирования, так и в тесте на понимание прочитанного (RACE).
Из графика, приведенного в исходном тексте (ниже), мы видим, как падает производительность
ALBERT
Обзор
ALBERT использует такие методы, как совместное использование параметров и декомпозиция матрицы, чтобы значительно уменьшить параметры модели, и заменяет NSP (прогнозирование следующего предложения) Loss на SOP (прогнозирование порядка предложений) Loss для повышения производительности последующих задач. Но количество слоев ALBERT не уменьшается, поэтомуВремя вывода все еще не улучшилось. Однако уменьшение параметра действительно ускоряет обучение, и ALBERT может масштабироваться до более крупной модели, чем BERT (ALBERT-xxlarge), поэтому он может повысить производительность.
Структура ALBERT в основном такая же, как у BERT, с использованием функций активации Transformer и GELU. Есть три конкретных части инноваций:
- Внедрение факторизации параметров слоя
- Совместное использование параметров между слоями
- Изменить задачи NSP на задачи SOP
Основной эффект первых двух улучшений заключается в уменьшении параметров. Третье улучшение на самом деле не является нововведением, потому что в ходе большой работы выяснилось, что задача NSP в BERT не оказывает положительного влияния.
Factorized Embedding Parameterization
Оригинальная модель BERT и различные предварительно обученные языковые модели на основе Transformer имеют общую черту, а именно,вОтносится к размеру внедрения,Относится к скрытому измерению. Это вызовет проблему: при улучшении скрытого измерения необходимо улучшить и встроенное измерение, что в конечном итоге приведет к квадратичному увеличению количества параметров. Так что автор АЛЬБЕРА будет**иЧтобы отменить привязку **, конкретная операцияДобавить матрицу после внедрения для преобразования размеров.Размерность постоянна, еслиувеличилось, нам нужно толькоЗатем вы можете выполнить операцию масштабирования
Следовательно, ALBERT не сопоставляет исходный однократный вектор напрямую с размером скрытого пространства, но разложенный на две матрицы, исходное количество параметров равно,Указывает размер словарного запаса. Разложенный на два шага, он сводится к,когдаПри значении , такой подход позволяет значительно сократить количество параметров
Например, когда30000,768,При значении 256 количество параметров уменьшается с 23 миллионов до 7,8 миллионов.
Из эксперимента факторинга Embedding видно, что для версии без разделения параметров сувеличивается, эффект постоянно улучшается. Но вариант с совместным использованием параметров, похоже, не тот случай,Самый большой не лучший. В то же время также можно обнаружить, что совместное использование параметров может привести к снижению на 1-2 балла.
Cross-Layer Parameter Sharing
Параметры каждого слоя традиционного Трансформера независимы, в том числе самостоятельное внимание и полная связь каждого слоя. В результате, когда количество слоев увеличивается, количество параметров также значительно увеличивается. Предыдущая работа была направлена на совместное использование только уровня самообслуживания или полносвязного слоя, и некоторые результаты были достигнуты. Авторы ALBERT пытаются разделить параметры всех слоев, что эквивалентно изучению только параметров первого слоя и повторному использованию параметров этого слоя во всех остальных слоях, вместо изучения разных параметров для каждого слоя.
В то же время автор также обнаружил эксперименты о том, что использование совместного использования параметра может эффективно улучшить стабильность модели. Экспериментальные результаты следующие
Берт-база и Альберт используют одинаковое количество слоев и 768 скрытых единиц. В результате Берт-база имеет в общей сложности 110 миллионов параметров, в то время как Альберт имеет только 31 миллион параметров. Благодаря экспериментам, обнаружено, что обмен параметром слоя Feed-File будет иметь относительно большое влияние на точность; влияние совместного использования параметрами внимания является наименьшим
Sentence-Order Prediciton (SOP)
BERTпредставилпредсказание следующего предложенияпроблема бинарной классификации. Это было создано специально для повышения производительности последующих задач, использующих пары предложений, таких как «вывод естественного языка». Но такие документы, как RoBERTa и XLNet, продемонстрировали неэффективность NSP и обнаружили, что его влияние на последующие задачи ненадежно.
Поэтому АЛЬБЕРТ предлагает другую задачу -Предсказание порядка предложений. Ключевые идеи:
- Возьмите два последовательных предложения из одного и того же документа в качестве положительного образца.
- Поменяйте местами эти два предложения и используйте их в качестве отрицательного образца.
SOP повышает производительность при выполнении нескольких последующих задач (SQUAD, MNLI, SST-2, RACE).
Adding Data & Remove Dropout
Вышеприведенный ALBERT использует те же данные обучения, что и BERT. Однако добавление обучающих данных может улучшить производительность модели, поэтому ALBERT обучил в общей сложности 157 ГБ данных после добавления набора данных STORIES. Кроме того, когда обучение достигает 1 млн шагов, модель не подвергалась Overfit для тренировочного набора, поэтому автор напрямую удаляет Dropout, и, наконец, эффект на наборе проверки MLM был значительно улучшен.
Conclusion
Сначала я очень удивился, прочитав эту статью, потому что она напрямую уменьшала BERT той же величины в 10+ раз, давая возможность запускаться обычным пользователям. Однако после тщательного наблюдения за экспериментом было обнаружено, что за уменьшение количества параметров нужно платить.
Обратите внимание, что ускорение — это время обучения, а не время вывода. Время вывода не улучшилось, потому что даже если используется механизм общих параметров, он все равно должен проходить через 12 уровней кодировщиков, поэтому время вывода аналогично BERT.
Параметры, используемые в эксперименте, следующие:
Выводы, которые можно сделать, следующие:
- При одинаковом времени тренировок АЛЬБЕРТ действительно показывает лучшие результаты, чем БЕРТ.
- При том же времени вывода эффект ALBERT base и large не так хорош, как BERT, и разница составляет 2-3 балла.Автор также упомянул в конце, что он будет продолжать искать способы улучшить скорость (Редкое внимание и блокировать внимание)
Кроме того, совмещаяUniversal TransformerВполне возможно, что количество слоев Transformer может динамически регулироваться на этапах обучения и вывода (попрощайтесь с конфигурациями 12, 24, 48). В то же время мы можем найти способы избежать эффекта чистого разделения параметров, ведь чем глубже Transformer, тем больше информации, относящейся к задаче, он узнает, и модуль Transformer можно улучшать, добавляя блоки памяти и персонализируя Embedding для каждый слой.