Расскажу про одну статью, которая перманентно висит у меня во вкладках в браузере: https://arxiv.org/pdf/1908.08962.pdf . Называется Well-Read Students Learn Better: On the Importance of Pre-training Compact Models.
В этой статье рассказывается про уменьшенные версии модели BERT: от самой маленькой - 2 слоя attention, 2 головы attention на каждом слое (Tiny) до базовой - 12 слоев attention, 12 голов на каждом (Base).
Центральная тема статьи - трехэтапный метод обучения этих моделей, называемый Pre-trained Distillation (Figure 1 в статье или Рис. 1 в посте ниже). Имеется в виду следующая схема: сначала маленькая моделька предобучается на стандартной задаче Masked Language Modelling (учится угадывать пропущенные слова в текстах), потом в нее дистиллируются знания из большой модели (маленькую модель учат подражать "поведению" большой - в данном случае ее просто учат выдавать те же выходы, что и большая, на каждом показанном примере из датасета), и только затем происходит обычное дообучение (fine-tuning).
В результате получения столь всестороннего образования маленькие модельки начинают показывать достойные результаты на датасете GLUE (General Language Understanding Evaluation) - лучше, чем при стандартной схеме Pre-Training + Fine-tuning. Ну а самостоятельно испытать способности этих маленьких моделек нам предлагают прямо на хабе huggingface, куда они и были выложены: https://huggingface.co/google/bert_uncased_L-12_H-768_A-12 (правда, я не до конца уверена в том, после какого именно метода обучения выложены веса, об этом будет сказано ниже) .
Кроме сравнения разных методов обучения, авторы проводят еще и анализ того, как ширина и глубина влияют на качество модели. Мне очень понравилась эта тема, и я сильно залипла в график на Рис. 2 (также известный как Figure 6). Здесь PD означает Pre-trained Distillation, PF - Pre-trained Fine-tuning. Красным я отметила результаты, соответствующие размерам моделей, выложенных на huggingface. Справа от графика я поместила кусок из таблицы, выложенной на huggingface по ссылке.
Вроде бы, результаты из таблицы соответствуют результатам обучения после Pre-training (MLM) + Fine-tuning с графика. Но в моем эксперименте Tiny Bert с huggingface на SST-2 показала результат лучше, чем в таблице - на уровне Pre-trained Distillation. Может быть, у меня по-другому разбит датасет SST-2? Или они вставили на страницу в huggingface не ту таблицу и все-таки выложили модели не просто после Pre-training, а после Pre-trained Distillation (хотя тогда неясно, на каком именно датасете проводилась дистилляция, ведь говорится, что она task-specific)? Хотелось бы уточнить у авторов, но они пока не отвечают.
UPD: похоже, в прошлый раз я что-то перепутала. Сейчас перепроверила и убедилась, что точность у как минимум двух небольших моделей с хаба не выше, чем pertained fine-tuning. Видимо, это всё-таки он и есть.
Ну а в общем и целом выводы из графика такие, что при продвинутых методах обучения (D, PD, PF) глубина модели в среднем дает больший выигрыш в качестве, чем ширина, а при простейшем методе (Fine-tuning без предварительного обучения) и глубина, и ширина на датасетах из GLUE помогают мало.
Кроме прочего, авторы сравнивают указанные методы с методом truncation (когда маленькую модель инициализируют некоторым подмножеством весов большой) + distillation, а также изучают влияние того, на каком именно датасете производилась дистилляция, на итоговую точность, в частности, немного написали про явление domain shift (это когда целевая задача и задача дистилляции сильно отличаются).
В общем, получился обстоятельный анализ, который можно использовать как справочный материал для своих исследований.
#объяснения_статей
В этой статье рассказывается про уменьшенные версии модели BERT: от самой маленькой - 2 слоя attention, 2 головы attention на каждом слое (Tiny) до базовой - 12 слоев attention, 12 голов на каждом (Base).
Центральная тема статьи - трехэтапный метод обучения этих моделей, называемый Pre-trained Distillation (Figure 1 в статье или Рис. 1 в посте ниже). Имеется в виду следующая схема: сначала маленькая моделька предобучается на стандартной задаче Masked Language Modelling (учится угадывать пропущенные слова в текстах), потом в нее дистиллируются знания из большой модели (маленькую модель учат подражать "поведению" большой - в данном случае ее просто учат выдавать те же выходы, что и большая, на каждом показанном примере из датасета), и только затем происходит обычное дообучение (fine-tuning).
В результате получения столь всестороннего образования маленькие модельки начинают показывать достойные результаты на датасете GLUE (General Language Understanding Evaluation) - лучше, чем при стандартной схеме Pre-Training + Fine-tuning. Ну а самостоятельно испытать способности этих маленьких моделек нам предлагают прямо на хабе huggingface, куда они и были выложены: https://huggingface.co/google/bert_uncased_L-12_H-768_A-12 (правда, я не до конца уверена в том, после какого именно метода обучения выложены веса, об этом будет сказано ниже) .
Кроме сравнения разных методов обучения, авторы проводят еще и анализ того, как ширина и глубина влияют на качество модели. Мне очень понравилась эта тема, и я сильно залипла в график на Рис. 2 (также известный как Figure 6). Здесь PD означает Pre-trained Distillation, PF - Pre-trained Fine-tuning. Красным я отметила результаты, соответствующие размерам моделей, выложенных на huggingface. Справа от графика я поместила кусок из таблицы, выложенной на huggingface по ссылке.
Вроде бы, результаты из таблицы соответствуют результатам обучения после Pre-training (MLM) + Fine-tuning с графика. Но в моем эксперименте Tiny Bert с huggingface на SST-2 показала результат лучше, чем в таблице - на уровне Pre-trained Distillation. Может быть, у меня по-другому разбит датасет SST-2? Или они вставили на страницу в huggingface не ту таблицу и все-таки выложили модели не просто после Pre-training, а после Pre-trained Distillation (хотя тогда неясно, на каком именно датасете проводилась дистилляция, ведь говорится, что она task-specific)? Хотелось бы уточнить у авторов, но они пока не отвечают.
UPD: похоже, в прошлый раз я что-то перепутала. Сейчас перепроверила и убедилась, что точность у как минимум двух небольших моделей с хаба не выше, чем pertained fine-tuning. Видимо, это всё-таки он и есть.
Ну а в общем и целом выводы из графика такие, что при продвинутых методах обучения (D, PD, PF) глубина модели в среднем дает больший выигрыш в качестве, чем ширина, а при простейшем методе (Fine-tuning без предварительного обучения) и глубина, и ширина на датасетах из GLUE помогают мало.
Кроме прочего, авторы сравнивают указанные методы с методом truncation (когда маленькую модель инициализируют некоторым подмножеством весов большой) + distillation, а также изучают влияние того, на каком именно датасете производилась дистилляция, на итоговую точность, в частности, немного написали про явление domain shift (это когда целевая задача и задача дистилляции сильно отличаются).
В общем, получился обстоятельный анализ, который можно использовать как справочный материал для своих исследований.
#объяснения_статей