Модель BERT Дистилляция Дистилляция BERT

искусственный интеллект NLP
Модель BERT Дистилляция Дистилляция BERT

BERT добился хороших результатов во многих задачах НЛП, но размер его модели и вычислительная нагрузка очень велики, и есть еще и более крупные модели, такие как roBERTa и GPT2. Из-за большого размера этих моделей их трудно использовать на некоторых машинах с низкой производительностью, а также их нельзя хорошо использовать в приложениях с высокими требованиями к реальному времени. Поэтому существует много исследований по сжатию модели BERT, среди которых дистилляция модели Дистилляция является лучшим решением.В этой статье представлены два метода сжатия модели BERT, основанные на дистилляции модели.

1. Введение

BERT_bigger.png

На рисунке выше показаны многие модели на основе Transformer.Числа под моделями соответствуют количеству параметров модели в миллионах.Вы можете видеть, что эти модели становятся все больше и больше. Большая часть этих моделей также ограничивает их использование в реальном мире из-за различных факторов:

  • Обучение такой модели стоит больших денег и требует использования дорогих серверов с графическим процессором для обслуживания в масштабе.
  • Если модель слишком велика, время вывода также увеличится, и ее нельзя будет использовать для некоторых задач с высокими требованиями к реальному времени.
  • Существует множество задач машинного обучения, которые необходимо выполнять на терминалах, таких как смартфоны, и в этом случае также необходимо использовать облегченные модели.

Основываясь на вышеуказанных причинах, многие исследования начали сосредотачиваться на сжатии модели BERT.Общими методами сжатия модели являются следующие:

  • Дистилляция модели с использованиембольшая модельобучения полученным знанияммаленькая модель, так что малая модель обладает способностью к обобщению большой модели.
  • Квантование Квантование снижает точность больших моделей и уменьшает модели.
  • Сокращение Сокращение удаляет соединения, которые менее полезны в модели.
  • Совместное использование параметров, совместное использование некоторых параметров в сети, уменьшение количества параметров модели.

предыдущий постРОБЕРТа и АЛЬБЕРТALBERT, представленный в, также является методом сжатия BERT. Он в основном использует совместное использование параметров и декомпозицию матрицы для сжатия BERT. Однако ALBERT только уменьшает параметры модели и не может сократить время ее вывода.

Далее представлены два алгоритма сжатия BERT с использованием дистилляции модели: первый — DistilBERT, который преобразует 12-уровневую базовую модель BERT в 6-уровневую модель BERT, а второй — перегоняет модель BERT в модель BiLSTM.

2. Дистилляция модели

Во-первых, вводится понятие дистилляции модели. Дистилляция модели - это метод сжатия модели. Он был предложен Хинтоном в статье «Дистилляция знаний в нейронной сети». Ниже приведены основные моменты дистилляции модели:

  • Во-первых, вам нужно обучить большую модель, которую также называют моделью учителя.
  • Небольшая модель обучается с использованием выходных данных распределения вероятностей модели учителя, а малая модель называется моделью ученика.
  • При обучении модели учащегося включаются две метки: программная метка соответствует выходному распределению вероятности модели учителя, а жесткая метка является исходной меткой с одним нажатием кнопки.
  • модель, обученная дистилляциейМаленькие модели изучают производительность и возможности обобщения больших моделей..

При обучении с учителем модель будет иметь прогнозируемую цель, обычно однозначную метку, и модели необходимо максимизировать вероятность (softmax или логиты) соответствующей метки во время обучения. В распределении вероятностей предсказания модели правильная категория должна иметь наибольшую вероятность, в то время как другие категории имеют относительно небольшие вероятности, но теТакже должны быть различия в вероятности маловероятностных категорий.Например, вероятность того, что собака окажется волком, должна быть больше, чем вероятность того, что дерево будет предсказано. Эта разница между вероятностями в определенной степени указывает на способность модели к обобщению.Хорошая модель — это не модель, которая хорошо подходит для обучающей выборки, а модель со способностью к обобщению.

Дистилляция модели предполагает, что модель ученика изучит способность модели учителя к обобщению, поэтому целью, используемой при обучении модели, является распределение вероятностей выходных данных модели учителя, которое также называется мягкой целью. Некоторые методы дистилляции моделей также используют во время обучения исходную горячую метку, называемую жесткой целью.

Чтобы лучше изучить способность модели учителя к обобщению, Хинтон предложил формулу softmax-temperature, которая выглядит следующим образом:

softmax_temperature.png

softmax-temperature добавляет к softmax параметр T. Чем ближе T к 0, тем ближе распределение к one-hot, а чем ближе T к бесконечности, тем ближе распределение к среднему распределению. То есть, чем больше T, тем более плавным будет распределение.Выбор подходящего T может сделать модель большего количества учеников более осведомленной о разнообразии распределения категорий модели учителя. В процессе обучения модель учителя и модель ученика используют один и тот же параметр T, а при использовании модели ученика для логического вывода T снова устанавливается на 1, что становится стандартным softmax.

3.DistilBERT

Модель DistilBERT была выпущена компанией HuggingFace, а документ называется «DistilBERT, дистиллированная версия BERT: меньше, быстрее, дешевле и легче». Модель DistilBERT аналогична модели BERT, но DistilBERT имеет только 6 слоев, в то время как BERT-base имеет 12 слоев, DistilBERT имеет всего 66 миллионов параметров, а BERT-base имеет 110 миллионов параметров. DistilBERT по-прежнему может поддерживать хорошую производительность даже при уменьшении параметров и уровней BERT и сохраняет 95% производительности BERT на GLUE.

3.1 Обучение DistilBERT

DistilBERT использует дивергенцию KL в качестве функции потерь, q представляет собой распределение модели ученика, а p представляет распределение выходных данных модели учителя, функция потерь выглядит следующим образом:

KL_dive.png

Окончательная функция потерь DistilBERT получается линейной комбинацией расхождения KL (потери при перегонке) и потерь MLM (моделирование маскированного языка). DistilBERT удаляет встраивание типа маркера и NSP (задача прогнозирования следующего предложения) модели BERT, сохраняет другие механизмы BERT, а затем уменьшает количество слоев BERT до 1/2 исходного.

Кроме того, автор DistilBERT также использовал некоторые приемы оптимизации, такие как использование параметров модели учителя для инициализации модели DistilBERT; использование некоторых методов обучения в RoBERTa, таких как большой пакет, динамическая маска и т. д.

3.2 Экспериментальные результаты DistilBERT

DistilBERT_result.png

Вышеприведенное изображение представляет собой экспериментальный результат DistilBERT на тестовом наборе для разработки GLUE. Видно, что DistilBERT работает лучше, чем ELMo на всех наборах данных, и даже лучше, чем BERT на некоторых наборах данных, а общая производительность также достигла 97% от BERT. , но DistilBERT имеет только 60% параметров BERT.

DistilBERT_time.png

На приведенном выше рисунке показано сравнение различных параметров модели и времени вывода.Видно, что DistilBERT имеет гораздо меньше параметров, чем ELMo и BERT-base, и время вывода также сильно сокращено.

4. Преобразование BERT в BiLSTM

В другой статье «Извлечение специальных знаний из BERT в простые нейронные сети» делается попытка преобразовать модель BERT в модель BiLSTM под названием Distilled BiLSTM. То есть модель учителя — это BERT, а модель ученика — BiLSTM. В статье предлагаются две модели: одна для классификации одного предложения, другая для сопоставления двух предложений.

4.1 Дистиллированная модель BiLSTM

BiLSTM1.png

Приведенное выше изображение является первой моделью BiLSTM, которая используется для классификации одного предложения.Векторы слов всех слов предложения вводятся в BiLSTM, а затем соединяются векторы скрытого слоя прямого и обратного LSTM. вместе и передаются в полносвязную сеть.

BiLSTM2.png

Выше приведена вторая модель BiLSTM, которая используется для сопоставления двух предложений.Скрытые векторы, выдаваемые двумя BiLSTM, равны h1 и h2 соответственно, и эти два вектора необходимо соединить вместе перед классификацией. Формула сращивания h1 и h2 выглядит следующим образом:

BiLSTM_forum.png

4.2 Дистиллированное обучение BiLSTM

Преобразование BERT в модель BiLSTM использует функцию потерь, состоящую из двух частей:

  • Одна часть — это жесткая цель, которая напрямую использует однозначную категорию и значение вероятности, выдаваемое BiLSTM, для вычисления перекрестной энтропии.
  • Одна часть - это мягкая цель, которая использует значения вероятности, выведенные моделью учителя (BERT), и значения вероятности, выведенные BiLSTM, для вычисления среднеквадратичной ошибки MSE.

BiLSTM_loss.png

В процессе обучения слишком маленького набора данных недостаточно для того, чтобы модель ученика усвоила все знания модели учителя, поэтому автор предлагает три метода аугментации данных для расширения данных:

  • Маскировка: используйте тег [mask] для случайной замены слова, например, «У меня есть кошка» на «Я [маскирую] кошку».
  • Замена слов под управлением POS, замена одного слова другим словом с тем же POS, например, «У меня есть кошка» на «У меня есть собака».
  • n-gram, случайным образом выберите n из 1-5, а затем используйте n-gram для удаления других слов.

4.3 Экспериментальные результаты дистиллированного BiLSTM

BiLSTM_result.png

Вышеприведенный результат модели Distilled BiLSTM. Видно, что эффект модели BiLSTM намного лучше, чем у простого использования модели BiLSTM. Влияние на наборы данных SST и QQP даже лучше, чем у ELMo, что указывает на то, что модель может изучить часть способности к обобщению BERT. Однако эффект от Distilled BiLSTM все еще намного хуже, чем от BERT, что указывает на то, что все еще остается много знаний, которые нельзя перенести в BiLSTM.

BiLSTM_result_time.png

Выше приведены параметры и время вывода Distilled BiLSTM, BiLSTM имеет гораздо меньше параметров, чем BERT-большой, в 335 раз меньше, чем BERT-большой, и в 434 раза быстрее, чем BERT-большой. Эффект сжатия очевиден.

5. Резюме

Модель DistilBERT работает относительно лучше, в то время как Distilled BiLSTM сжимает меньше.

Модель DistilBERT использует дивергенцию KL для расчета мягкой цели, в то время как Distilled BiLSTM использует расчет MSE. Причина, указанная HuggingFace в блоге, заключается в том, что DistilBERT обучает языковую модель, в то время как Distilled BiLSTM предназначен для последующих задач классификации, а размер выходного пространства языковой модели намного больше, В этом случае использование MSE может отменить друг друга. между разными логитами.

6. Ссылки