BERT работает хорошо, но модель слишком большая и медленная, поэтому нужен какой-то способ сжатия модели. TinyBERT — это сжатая модель BERT, предложенная исследователями из Huazhong Technology и Huawei. TinyBERT в основном использует метод дистилляции модели для сжатия, который может сохранить 96% производительности BERT-базы в эксперименте GLUE, но он в 7 раз меньше и в 9 раз быстрее, чем BERT.
1. Введение
Дистилляция модели Дистилляция — это распространенный метод сжатия модели, который сначала обучает большую модель учителя, а затем обучает маленькую модель ученика, используя предсказанные значения, выдаваемые моделью учителя. Модель ученика изучает результаты прогнозирования (значения вероятности) модели учителя, чтобы изучить способность модели учителя к обобщению.
В предыдущих статьях было много исследований по сжатию BERT с использованием перегонки моделей, таких как перегонка BERT в BiLSTM, DistilBERT от Huggingface и т. д."Берт Модель дистилляции БЕРТ"Есть более подробное введение, и детская обувь, не знакомая с модельным перегоном, может обратиться к нему.
Здесь мы в основном вводим другую модель дистилляции BERT, TinyBERT, Функция потерь предыдущей модели дистилляции предназначена в основном для прогнозируемого значения вероятности, выводимого моделью учителя, а функция потерь TinyBERT включает четыре части: потеря слоя встраивания, потеря внимания слоя преобразователя, потеря скрытого состояния слоя преобразователя и потеря последнего слоя предсказания. То есть модель ученика не только изучает прогнозируемую вероятность модели учителя, но также изучает характеристики ее слоя внедрения и слоя преобразователя.
На приведенном выше рисунке показана структура TinyBERT (ученик) и BERT (учитель).Видно, что TinyBERT уменьшает количество слоев BERT и уменьшает размер скрытого слоя BERT.
2.TinyBERT
Функция потерь в процессе дистилляции TinyBERT в основном включает следующие четыре функции:
- Встраивание функции потерь слоя
- Функция потери внимания слоя трансформатора
- Функция потери скрытого состояния слоя трансформатора
- Функция потерь уровня прогнозирования
Давайте сначала посмотрим на метод отображения каждого слоя во время дистилляции TinyBERT.
2.1 Метод сопоставления дистилляции TinyBERT
Предположим, что TinyBERT имеет M слоев Transformer, а BERT имеет N слоев Transformer. Уровни, в основном задействованные в дистилляции TinyBERT, — это слой внедрения (с номером 0), уровень преобразователя (с номером от 1 до M) и выходной слой (с номером M+1).
Нам нужно сопоставить каждый слой TinyBERT со слоем, который нужно изучить в BERT, а затем провести дистилляцию. Соответствующая функция имеет вид g(m) = n, где m — номер уровня TinyBERT, а n — номер уровня BERT.
Для слоя внедрения при дистилляции TinyBERT слой внедрения (0) соответствует слою внедрения (0) BERT, то есть g(0) = 0.
Для выходного уровня выходной уровень (M+1) TinyBERT соответствует выходному уровню (N+1) BERT, то есть g(M+1) = N+1.
Для среднего слоя трансформатора TinyBERT использует метод дистилляции k-слоев, т. е. g(m) = m × N / M. Например, TinyBERT имеет 4 уровня Transformer, а BERT имеет 12 уровней Transformer, затем первый уровень TinyBERT Transformer изучает третий уровень BERT, а второй уровень TinyBERT изучает шестой уровень BERT.
2.2 Встраивание функции потерь слоя
ESявляется вложением TinyBERT,ET— вложение BERT, l — длина последовательности предложений, d' — размерность вложения TinyBERT, d — размерность вложения BERT. Поскольку это сжатие модели BERT, d'
Размер внедрения отличается, и потери нельзя рассчитать напрямую, поэтому TInyBERT добавляет матрицу сопоставления.We(d'×d) матрица,ESПосле умножения на матрицу отображения размерность будет такой же, какETТакой же. Потери при встраивании представляют собой среднеквадратичную ошибку MSE из двух.
2.3 Функция потери внимания уровня преобразователя
TinyBERT имеет две функции потерь на уровне преобразователя, первая — это потеря внимания, как показано на следующем рисунке.
Потеря внимания в основном надеется, что матрица оценки внимания, выводимая частью TinyBERT Multi-Head Attention, может быть близка к матрице оценки внимания BERT. Поскольку некоторые исследования показали, что матрица оценки внимания, полученная BERT, может содержать семантические знания, такие как грамматика и взаимосвязи, для получения подробной информации обратитесь к статье «На что смотрит BERT? Анализ внимания BERT». TinyBERT изучает функцию внимания BERT с помощью следующей функции потерь, h представляет количество головок в режиме Multi-Head Attention.
2.4 Функция потери скрытого состояния уровня трансформатора
Вторая функция потерь TinyBERT на уровне Transformer — это скрытые потери, как показано на рисунке ниже.
Потеря скрытого состояния аналогична потере встраивания, Формула расчета следующая, и она также должна пройти через матрицу отображения.
2.5 Функция потерь уровня прогнозирования
Функция потерь слоя предсказания принимает кросс-энтропию, и формула расчета выглядит следующим образом, где t - значение температуры дистилляции модели,zT- прогнозируемая вероятность BERT, аzSэто прогнозируемая вероятность TinyBERT.
3. Двухэтапный метод обучения TinyBERT
BERT имеет два этапа обучения, первый этап обучения предназначен для обучения предварительно обученной модели (предварительно обученный BERT), а второй этап обучения настраивается для конкретных последующих задач (точно настроенный BERT). Процесс дистилляции TinyBERT также разделен на две стадии.
- На первом этапе TinyBERT использует предварительно обученный BERT для обработки General TinyBERT на крупномасштабном общем наборе данных.
- На втором этапе TinyBERT использует увеличение данных для обучения модели для конкретной задачи с помощью точно настроенного BERT.